<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-08-15T23:09:54.621558" 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-08-15T23:09:55.100946" 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-08-15T23:09:55.100462" elapsed="0.000526"/>
</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-08-15T23:09:55.103140" level="INFO">Length is 0.</msg>
<msg time="2026-08-15T23:09:55.103233" 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-08-15T23:09:55.102680" elapsed="0.000583"/>
</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-08-15T23:09:55.103417" elapsed="0.000378"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-15T23:09:55.104819" level="INFO">Logging into '10.30.171.189:22' as 'jenkins'.</msg>
<msg time="2026-08-15T23:09:55.528449" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-186-generic x86_64)

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

 System information as of Sat Aug 15 23:09:33 UTC 2026

  System load:  0.27               Processes:             107
  Usage of /:   20.6% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.189
  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.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


[?2004h[jenkins@releng-51161-103-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-08-15T23:09:55.104346" elapsed="0.424281"/>
</kw>
<msg time="2026-08-15T23:09:55.528719" 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-08-15T23:09:55.103981" elapsed="0.424827"/>
</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-08-15T23:09:55.102221" elapsed="0.426707"/>
</kw>
<msg time="2026-08-15T23:09:55.528983" 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-08-15T23:09:55.101733" elapsed="0.427302"/>
</kw>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-08-15T23:09:55.101194" elapsed="0.427944"/>
</kw>
<return>
<value>${tools_connection}</value>
<status status="PASS" start="2026-08-15T23:09:55.529202" elapsed="0.000053"/>
</return>
<msg time="2026-08-15T23:09:55.529433" 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-08-15T23:09:55.100002" elapsed="0.429458"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-15T23:09:55.530111" 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-08-15T23:09:55.529654" elapsed="0.000502"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-15T23:09:55.532928" 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-08-15T23:09:55.530292" elapsed="0.002697"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Read Until Prompt" owner="SSHLibrary">
<msg time="2026-08-15T23:09:56.040601" level="INFO">[?2004l  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 8053k  100 8053k    0     0  16.5M      0 --:--:-- --:--:-- --:--:-- 16.5M
[?2004h[jenkins@releng-51161-103-1-docker-0 ~]&gt;</msg>
<doc>Consumes and returns the server output until the prompt is found.</doc>
<status status="PASS" start="2026-08-15T23:09:55.534127" elapsed="0.506663"/>
</kw>
<msg time="2026-08-15T23:09:56.041021" 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-08-15T23:09:55.533640" elapsed="0.507446"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:09:56.041684" level="INFO">Executing command 'sudo chmod +x /usr/local/bin/docker-compose'.</msg>
<msg time="2026-08-15T23:09:56.064597" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:09:56.064877" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:09:56.064977" level="INFO">${stderr} = </msg>
<msg time="2026-08-15T23:09:56.065113" 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-08-15T23:09:56.041414" elapsed="0.023787"/>
</kw>
<doc>Install docker-compose on tools system.</doc>
<status status="PASS" start="2026-08-15T23:09:55.096665" elapsed="0.968902"/>
</kw>
<kw name="Pull Netopeer2 Docker Image" owner="NetconfCallHome">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:09:56.066892" level="INFO">Executing command 'docker pull sysrepo/sysrepo-netopeer2:latest'.</msg>
<msg time="2026-08-15T23:10:04.414917" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:10:04.415421" level="INFO">${stdout} = latest: Pulling from sysrepo/sysrepo-netopeer2
399fb1102f3f: Pulling fs layer
d51af753c3d3: Pulling fs layer
6154df8ff988: Pulling fs layer
344aedc9d9b9: Pulling fs layer
c2b2cc7242a0: Pulling fs laye...</msg>
<msg time="2026-08-15T23:10:04.415531" level="INFO">${stderr} = </msg>
<msg time="2026-08-15T23:10:04.415622" 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-08-15T23:09:56.066513" elapsed="8.349161"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:10:04.416654" level="INFO">Executing command 'docker images'.</msg>
<msg time="2026-08-15T23:10:04.530589" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:10:04.530874" level="INFO">${stdout} = IMAGE                              ID             DISK USAGE   CONTENT SIZE   EXTRA
sysrepo/sysrepo-netopeer2:latest   36cc1d841c97        914MB          232MB        </msg>
<msg time="2026-08-15T23:10:04.530981" level="INFO">${stderr} = </msg>
<msg time="2026-08-15T23:10:04.531116" 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-08-15T23:10:04.416176" elapsed="0.114997"/>
</kw>
<doc>Pulls the netopeer image from the docker repository.</doc>
<status status="PASS" start="2026-08-15T23:09:56.065983" elapsed="8.465377"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:10:04.574335" level="INFO">[chan 4] Opened sftp connection (server version 3)</msg>
<msg time="2026-08-15T23:10:04.583088" 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-08-15T23:10:04.531668" elapsed="0.051578"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:10:04.592263" 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-08-15T23:10:04.583608" elapsed="0.008871"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:10:04.593457" level="INFO">Executing command 'sed -i -e 's/ODL_SYSTEM_IP/10.30.171.84/g' docker-compose.yaml'.</msg>
<msg time="2026-08-15T23:10:04.605704" 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-08-15T23:10:04.592929" elapsed="0.012926"/>
</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-08-15T23:10:04.624988" elapsed="0.000524"/>
</kw>
<msg time="2026-08-15T23:10:04.625568" 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-08-15T23:10:04.624641" elapsed="0.000998"/>
</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-08-15T23:10:04.624309" elapsed="0.001414"/>
</kw>
<msg time="2026-08-15T23:10:04.625769" 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-08-15T23:10:04.617367" elapsed="0.008445"/>
</kw>
<msg time="2026-08-15T23:10:04.625927" 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-08-15T23:10:04.616906" elapsed="0.009045"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:10:04.626241" level="INFO">Executing command 'sed -i -e 's/NETCONF_CH_SSH/4334/g' docker-compose.yaml'.</msg>
<msg time="2026-08-15T23:10:04.657013" 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-08-15T23:10:04.626102" elapsed="0.031176"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:10:04.658091" level="INFO">Executing command 'sed -i -e 's/NETCONF_CH_TLS/4335/g' docker-compose.yaml'.</msg>
<msg time="2026-08-15T23:10:04.704938" 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-08-15T23:10:04.657768" elapsed="0.047338"/>
</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-08-15T23:10:04.724426" elapsed="0.000466"/>
</kw>
<msg time="2026-08-15T23:10:04.724949" 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-08-15T23:10:04.724084" elapsed="0.000938"/>
</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-08-15T23:10:04.723754" elapsed="0.001372"/>
</kw>
<msg time="2026-08-15T23:10:04.725267" 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-08-15T23:10:04.716876" elapsed="0.008438"/>
</kw>
<msg time="2026-08-15T23:10:04.725446" 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-08-15T23:10:04.716556" elapsed="0.008916"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-15T23:10:04.725958" 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-08-15T23:10:04.725647" elapsed="0.000342"/>
</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-08-15T23:10:04.740325" elapsed="0.000426"/>
</kw>
<msg time="2026-08-15T23:10:04.740801" 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-08-15T23:10:04.739978" elapsed="0.000875"/>
</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-08-15T23:10:04.739667" elapsed="0.001261"/>
</kw>
<msg time="2026-08-15T23:10:04.740970" 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-08-15T23:10:04.732892" elapsed="0.008122"/>
</kw>
<msg time="2026-08-15T23:10:04.741134" 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-08-15T23:10:04.732644" elapsed="0.008515"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:10:04.741673" 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-08-15T23:10:04.741304" elapsed="0.000396"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-15T23:10:04.742204" 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-08-15T23:10:04.741856" elapsed="0.000390"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-15T23:10:04.745534" 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-08-15T23:10:04.742389" elapsed="0.003192"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-15T23:10:04.749024" 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-08-15T23:10:04.745733" elapsed="0.003349"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-15T23:10:04.752063" 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-08-15T23:10:04.749234" elapsed="0.002876"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-15T23:10:04.755742" 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-08-15T23:10:04.752262" elapsed="0.003526"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-15T23:10:04.759226" 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-08-15T23:10:04.755939" elapsed="0.003332"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-15T23:10:04.762955" 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-08-15T23:10:04.759420" elapsed="0.003582"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-15T23:10:04.766467" 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-08-15T23:10:04.763215" elapsed="0.003298"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:10:04.766755" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./incorrect_ssh_host_rsa_key'.</msg>
<msg time="2026-08-15T23:10:04.890841" 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-08-15T23:10:04.766650" elapsed="0.124375"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:10:04.891737" level="INFO">Executing command 'awk '{print $2}' incorrect_ssh_host_rsa_key.pub'.</msg>
<msg time="2026-08-15T23:10:04.941558" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:10:04.941792" level="INFO">${incorrect_public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+O...</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-08-15T23:10:04.891459" elapsed="0.050386"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-15T23:10:04.949774" level="INFO">${INCORRECT_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+O...</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-08-15T23:10:04.942161" elapsed="0.007724"/>
</kw>
<doc>Get the suite ready for callhome test cases.</doc>
<status status="PASS" start="2026-08-15T23:09:55.096347" elapsed="9.853691"/>
</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-08-15T23:10:04.952439" level="INFO">Creating Session using : alias=session, url=http://10.30.171.84:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7a683ee66910&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-08-15T23:10:04.951881" elapsed="0.000877"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:10:04.953165" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-08-15T23:10:04.993132" 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-08-15T23:10:04.952994" elapsed="0.040235"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:10:04.993597" 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-08-15T23:10:05.430589" 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-08-15T23:10:04.993445" elapsed="0.437417"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:10:05.431736" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-08-15T23:10:05.481011" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:10:05.481314" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nw...</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-08-15T23:10:05.431404" elapsed="0.049976"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-08-15T23:10:05.489360" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nw...</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-08-15T23:10:05.481803" elapsed="0.007629"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-08-15T23:10:04.951473" elapsed="0.538064"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:10:05.529305" 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-08-15T23:10:05.490290" elapsed="0.039147"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:10:05.538096" 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-08-15T23:10:05.529782" elapsed="0.008397"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-08-15T23:10:05.489847" elapsed="0.048419"/>
</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-08-15T23:10:05.543732" elapsed="0.000102"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:05.539168" elapsed="0.004708"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-08-15T23:10:05.544732" 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-08-15T23:10:05.544930" 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-08-15T23:10:05.544517" elapsed="0.000450"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-08-15T23:10:05.545642" 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-08-15T23:10:05.545190" elapsed="0.000512"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:05.544148" elapsed="0.001632"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:05.543921" elapsed="0.001892"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:05.539122" elapsed="0.006725"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:10:05.546438" 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-08-15T23:10:05.546080" elapsed="0.000397"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:10:05.546973" 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-08-15T23:10:05.546672" elapsed="0.000328"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:10:05.547379" 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-08-15T23:10:05.547154" elapsed="0.000251"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:10:05.547762" 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-08-15T23:10:05.547542" elapsed="0.000247"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:06.390862" level="INFO">POST Request : url=http://10.30.171.84: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p"
        }
    }
}
 
 </msg>
<msg time="2026-08-15T23:10:06.391040" level="INFO">POST Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 14-Aug-2026 23:10:06 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:06.391342" 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-08-15T23:10:05.547922" elapsed="0.843484"/>
</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-08-15T23:10:06.391824" elapsed="0.004044"/>
</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-08-15T23:10:05.538637" elapsed="0.857330"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:10:06.396495" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-08-15T23:10:06.682994" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:10:06.683313" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:10:06.683415" 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-08-15T23:10:06.683511" 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-08-15T23:10:06.396225" elapsed="0.287338"/>
</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-08-15T23:10:06.687003" level="INFO">@{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-08-15T23:10:06.686191" 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-08-15T23:10:06.687983" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:06.687412" elapsed="0.000732"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:06.687352" elapsed="0.000857"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:06.734195" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:06.735015" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:06.735136" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:06.698314" elapsed="0.036848"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:06.735547" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:06.735245" elapsed="0.000357"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:06.737809" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:06.735754" elapsed="0.002106"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:06.735629" elapsed="0.002266"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:06.735224" elapsed="0.002696"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:06.738045" elapsed="0.000227"/>
</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-08-15T23:10:06.738618" elapsed="0.002245"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:06.738496" elapsed="0.002407"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:06.743318" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:06.741147" elapsed="0.002323">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:06.740991" elapsed="0.002562">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:06.738339" elapsed="0.005281">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:06.697875" elapsed="0.045859">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:06.685355" elapsed="0.058510">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:08.746685" level="INFO">@{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-08-15T23:10:08.745754" elapsed="0.001002"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:08.747551" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:08.746951" elapsed="0.000731"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:08.746898" elapsed="0.000843"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:08.766859" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:08.767045" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:08.767176" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:08.757479" 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-08-15T23:10:08.767641" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:08.767323" elapsed="0.000376"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:08.769962" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:08.767866" elapsed="0.002148"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:08.767728" elapsed="0.002320"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:08.767291" elapsed="0.002799"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:08.770216" elapsed="0.000179"/>
</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-08-15T23:10:08.770763" elapsed="0.002364"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:08.770633" elapsed="0.002551"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:08.776736" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:08.773489" elapsed="0.003372">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:08.773322" elapsed="0.003646">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:08.770458" elapsed="0.006693">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:08.756852" elapsed="0.020453">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:08.744827" elapsed="0.032618">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:10.780344" level="INFO">@{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-08-15T23:10:10.779345" elapsed="0.001070"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:10.781203" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:10.780606" elapsed="0.000729"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:10.780556" elapsed="0.000834"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:10.801444" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:10.801776" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:10.802029" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:10.791777" elapsed="0.010339"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:10.802973" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:10.802306" elapsed="0.000823"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:10.806687" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:10.803461" elapsed="0.003301"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:10.803187" elapsed="0.003622"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:10.802257" elapsed="0.004584"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:10.807013" elapsed="0.000265"/>
</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-08-15T23:10:10.807751" elapsed="0.002992"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:10.807580" elapsed="0.003220"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:10.814170" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:10.811101" elapsed="0.003269">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:10.810918" elapsed="0.003564">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:10.807361" elapsed="0.007215">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:10.791169" elapsed="0.023560">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:10.778381" elapsed="0.036483">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:12.817741" level="INFO">@{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-08-15T23:10:12.816769" elapsed="0.001044"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:12.818599" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:12.818011" elapsed="0.000718"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:12.817957" elapsed="0.000828"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:12.835865" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:12.836251" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:12.836499" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:12.828367" elapsed="0.008195"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:12.837538" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:12.836751" elapsed="0.000925"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:12.843168" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:12.838031" elapsed="0.005349"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:12.837734" elapsed="0.005732"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:12.836704" elapsed="0.006814"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:12.843814" elapsed="0.000318"/>
</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-08-15T23:10:12.844583" elapsed="0.003200"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:12.844416" elapsed="0.003423"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:12.851157" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:12.848148" elapsed="0.003129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:12.847963" elapsed="0.003415">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:12.844215" elapsed="0.007252">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:12.827892" elapsed="0.023719">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:12.815786" elapsed="0.035962">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:14.854617" level="INFO">@{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-08-15T23:10:14.853698" elapsed="0.000990"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:14.855460" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:14.854874" elapsed="0.000715"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:14.854827" elapsed="0.000817"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:14.876887" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:14.877086" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:14.877243" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:14.867043" elapsed="0.010227"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:14.877647" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:14.877350" elapsed="0.000353"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:14.879875" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:14.877851" elapsed="0.002076"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:14.877728" elapsed="0.002234"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:14.877330" elapsed="0.002655"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:14.880128" elapsed="0.000175"/>
</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-08-15T23:10:14.880625" elapsed="0.002452"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:14.880506" elapsed="0.002628"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:14.886373" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:14.883412" elapsed="0.003086">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:14.883250" elapsed="0.003351">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:14.880365" elapsed="0.006324">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:14.866472" elapsed="0.020363">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:14.852703" elapsed="0.034263">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:16.890161" level="INFO">@{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-08-15T23:10:16.889030" elapsed="0.001210"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:16.891050" elapsed="0.000088"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:16.890445" elapsed="0.000888"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:16.890393" elapsed="0.001006"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:16.915355" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:16.915607" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:16.915771" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:16.904659" elapsed="0.011157"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:16.916375" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:16.915931" elapsed="0.000525"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:16.919649" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:16.916672" elapsed="0.003050"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:16.916491" elapsed="0.003279"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:16.915902" elapsed="0.003899"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:16.919971" elapsed="0.000264"/>
</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-08-15T23:10:16.920685" elapsed="0.003075"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:16.920518" elapsed="0.003299"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:16.927007" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:16.924121" elapsed="0.002997">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:16.923934" elapsed="0.003267">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:16.920322" elapsed="0.006949">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:16.904221" elapsed="0.023156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:16.887982" elapsed="0.039538">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:18.930462" level="INFO">@{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-08-15T23:10:18.929508" elapsed="0.001051"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:18.931484" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:18.930749" elapsed="0.000887"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:18.930699" elapsed="0.000993"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:18.951001" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:18.951209" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:18.951312" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:18.941108" elapsed="0.010231"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:18.951731" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:18.951417" elapsed="0.000380"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:18.954047" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:18.951973" elapsed="0.002144"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:18.951829" elapsed="0.002324"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:18.951398" elapsed="0.002776"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:18.954296" elapsed="0.000176"/>
</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-08-15T23:10:18.954803" elapsed="0.002762"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:18.954681" elapsed="0.002942"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:18.961141" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:18.957911" elapsed="0.003355">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:18.957736" elapsed="0.003636">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:18.954536" elapsed="0.006987">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:18.940489" elapsed="0.021181">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:18.928498" elapsed="0.033308">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:20.964706" level="INFO">@{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-08-15T23:10:20.963778" elapsed="0.000999"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:20.965553" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:20.964965" elapsed="0.000716"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:20.964917" elapsed="0.000818"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:20.984532" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:20.984699" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:20.984797" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:20.975463" elapsed="0.009359"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:20.985211" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:20.984902" elapsed="0.000366"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:20.987796" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:20.985421" elapsed="0.002489"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:20.985292" elapsed="0.002695"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:20.984882" elapsed="0.003154"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:20.988358" 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-08-15T23:10:20.989497" elapsed="0.005019"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:20.989232" elapsed="0.005374"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:20.999679" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:20.995088" elapsed="0.004738">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:20.994787" elapsed="0.005118">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:20.988879" elapsed="0.011087">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:20.974864" elapsed="0.025221">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:20.962798" elapsed="0.037387">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:23.002424" level="INFO">@{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-08-15T23:10:23.001722" elapsed="0.000751"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:23.003041" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:23.002626" elapsed="0.000527"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:23.002584" elapsed="0.000608"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:23.022118" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:23.022356" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:23.022559" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:23.013130" elapsed="0.009477"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:23.023255" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:23.022747" elapsed="0.000614"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:23.026506" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:23.023594" elapsed="0.003056"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:23.023411" elapsed="0.003288"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:23.022712" elapsed="0.004017"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:23.026902" elapsed="0.000268"/>
</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-08-15T23:10:23.027620" elapsed="0.003232"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:23.027447" elapsed="0.003462"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:23.033438" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:23.031217" elapsed="0.002306">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:23.031025" elapsed="0.002576">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:23.027252" elapsed="0.006409">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:23.012689" elapsed="0.021077">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:23.000948" elapsed="0.032913">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:25.036772" level="INFO">@{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-08-15T23:10:25.035803" elapsed="0.001043"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:25.037667" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:25.037040" elapsed="0.000766"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:25.036990" elapsed="0.000875"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:25.058825" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:25.059232" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:25.059545" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:25.047571" elapsed="0.012033"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:25.060458" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:25.059780" elapsed="0.000806"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:25.065921" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:25.060923" elapsed="0.005113"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:25.060640" elapsed="0.005504"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:25.059737" elapsed="0.006457"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:25.066467" elapsed="0.000378"/>
</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-08-15T23:10:25.067576" elapsed="0.002103"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:25.067339" elapsed="0.002379"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:25.072044" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:25.069916" elapsed="0.002222">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:25.069799" elapsed="0.002412">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:25.066965" elapsed="0.005307">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:25.046960" elapsed="0.025416">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:25.034800" elapsed="0.037683">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:27.075423" level="INFO">@{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-08-15T23:10:27.074402" elapsed="0.001096"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:27.076447" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:27.075693" elapsed="0.000997"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:27.075643" elapsed="0.001112"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:27.096184" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:27.096387" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:27.096499" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:27.086231" elapsed="0.010295"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:27.096951" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:27.096618" elapsed="0.000391"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:27.099298" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:27.097187" elapsed="0.002163"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:27.097035" elapsed="0.002349"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:27.096594" elapsed="0.002813"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:27.099529" elapsed="0.000173"/>
</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-08-15T23:10:27.100029" elapsed="0.002475"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:27.099901" elapsed="0.002662"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:27.105953" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:27.102886" elapsed="0.003199">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:27.102718" elapsed="0.003472">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:27.099762" elapsed="0.006512">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:27.085626" elapsed="0.020792">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:27.073417" elapsed="0.033195">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:29.108218" level="INFO">@{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-08-15T23:10:29.107768" elapsed="0.000486"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:29.108635" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:29.108348" elapsed="0.000345"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:29.108325" elapsed="0.000394"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:29.123401" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:29.123568" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:29.123679" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:29.116719" elapsed="0.006986"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:29.124093" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:29.123784" elapsed="0.000366"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:29.126376" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:29.124296" elapsed="0.002132"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:29.124175" elapsed="0.002288"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:29.123764" elapsed="0.002721"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:29.126605" elapsed="0.000172"/>
</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-08-15T23:10:29.127103" elapsed="0.002128"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:29.126968" elapsed="0.002303"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:29.132149" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:29.129469" elapsed="0.002789">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:29.129353" elapsed="0.003008">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:29.126834" elapsed="0.005686">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:29.116292" elapsed="0.016372">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:29.107251" elapsed="0.025546">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:31.135625" level="INFO">@{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-08-15T23:10:31.134692" elapsed="0.001004"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:31.136500" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:31.135890" elapsed="0.000738"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:31.135840" elapsed="0.000844"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:31.157099" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:31.157271" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:31.157368" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:31.147403" elapsed="0.009991"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:31.157771" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:31.157472" elapsed="0.000356"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:31.160013" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:31.157977" elapsed="0.002129"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:31.157852" elapsed="0.002289"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:31.157452" elapsed="0.002711"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:31.160287" elapsed="0.000173"/>
</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-08-15T23:10:31.160949" elapsed="0.005158"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:31.160659" elapsed="0.005540"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:31.171437" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:31.166643" elapsed="0.005067">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:31.166381" elapsed="0.005493">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:31.160518" elapsed="0.011491">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:31.146807" elapsed="0.025506">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:31.133727" elapsed="0.038802">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:33.175475" level="INFO">@{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-08-15T23:10:33.174557" elapsed="0.000989"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:33.176319" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:33.175732" elapsed="0.000716"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:33.175684" elapsed="0.000819"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:33.194192" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:33.194372" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:33.194476" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:33.186417" elapsed="0.008085"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:33.194872" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:33.194580" elapsed="0.000348"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:33.197137" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:33.195097" elapsed="0.002152"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:33.194952" elapsed="0.002332"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:33.194560" elapsed="0.002747"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:33.197430" elapsed="0.000174"/>
</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-08-15T23:10:33.197918" elapsed="0.002639"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:33.197797" elapsed="0.002815"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:33.203862" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:33.200889" elapsed="0.003080">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:33.200728" elapsed="0.003364">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:33.197661" elapsed="0.006519">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:33.185805" elapsed="0.018516">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:33.173575" elapsed="0.030879">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:35.207390" level="INFO">@{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-08-15T23:10:35.206433" elapsed="0.001031"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:35.208246" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:35.207653" elapsed="0.000724"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:35.207603" elapsed="0.000828"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:35.226397" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:35.226580" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:35.226743" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:35.218191" elapsed="0.008579"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:35.227338" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:35.226877" elapsed="0.000540"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:35.230471" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:35.227622" elapsed="0.002920"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:35.227452" elapsed="0.003137"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:35.226844" elapsed="0.003775"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:35.230787" elapsed="0.000239"/>
</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-08-15T23:10:35.231483" elapsed="0.002956"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:35.231316" elapsed="0.003180"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:35.237764" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:35.234772" elapsed="0.003116">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:35.234609" elapsed="0.003373">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:35.231127" elapsed="0.006918">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:35.217763" elapsed="0.020408">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:35.205446" elapsed="0.032822">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:37.241249" level="INFO">@{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-08-15T23:10:37.240277" elapsed="0.001044"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:37.242109" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:37.241515" elapsed="0.000835"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:37.241465" elapsed="0.000947"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:37.260740" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:37.260930" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:37.261093" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:37.252272" elapsed="0.008860"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:37.261653" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:37.261244" elapsed="0.000490"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:37.264822" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:37.261947" elapsed="0.002950"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:37.261768" elapsed="0.003177"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:37.261217" elapsed="0.003759"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:37.265167" elapsed="0.000241"/>
</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-08-15T23:10:37.265836" elapsed="0.003237"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:37.265670" elapsed="0.003463"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:37.272280" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:37.269412" elapsed="0.002945">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:37.269247" elapsed="0.003183">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:37.265486" elapsed="0.007005">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:37.251837" elapsed="0.020757">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:37.239274" elapsed="0.033451">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:39.275623" level="INFO">@{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-08-15T23:10:39.274684" elapsed="0.001008"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:39.276495" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:39.275882" elapsed="0.000745"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:39.275834" elapsed="0.000848"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:39.294851" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:39.295154" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:39.295372" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:39.286693" elapsed="0.008737"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:39.296281" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:39.295603" elapsed="0.000806"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:39.301386" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:39.296734" elapsed="0.004767"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:39.296465" elapsed="0.005115"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:39.295561" elapsed="0.006069"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:39.301902" 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-08-15T23:10:39.303048" elapsed="0.002256"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:39.302783" elapsed="0.002562"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:39.307768" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:39.305545" elapsed="0.002303">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:39.305427" elapsed="0.002498">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:39.302441" elapsed="0.005605">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:39.286074" elapsed="0.022100">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:39.273677" elapsed="0.034597">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:41.311239" level="INFO">@{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-08-15T23:10:41.310284" elapsed="0.001027"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:41.312097" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:41.311504" elapsed="0.000726"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:41.311454" elapsed="0.000830"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:41.331880" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:41.332074" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:41.332188" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:41.322454" elapsed="0.009761"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:41.332591" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:41.332294" elapsed="0.000354"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:41.336237" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:41.332812" elapsed="0.003542"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:41.332673" elapsed="0.003756"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:41.332274" elapsed="0.004206"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:41.336755" 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-08-15T23:10:41.337890" elapsed="0.004508"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:41.337627" elapsed="0.004811"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:41.344781" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:41.342637" elapsed="0.002286">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:41.342520" elapsed="0.002479">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:41.337336" elapsed="0.007740">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:41.322010" elapsed="0.023173">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:41.309289" elapsed="0.036000">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:43.348131" level="INFO">@{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-08-15T23:10:43.347145" elapsed="0.001071"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:43.349040" elapsed="0.000088"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:43.348419" elapsed="0.000799"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:43.348368" elapsed="0.000909"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:43.368989" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:43.369339" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:43.369553" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:43.359812" 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-08-15T23:10:43.370459" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:43.369782" elapsed="0.000799"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:43.376037" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:43.370903" elapsed="0.005292"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:43.370636" elapsed="0.005594"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:43.369740" elapsed="0.006513"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:43.376377" elapsed="0.000175"/>
</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-08-15T23:10:43.376865" elapsed="0.002124"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:43.376745" elapsed="0.002283"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:43.381438" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:43.379252" elapsed="0.002356">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:43.379133" elapsed="0.002568">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:43.376609" elapsed="0.005156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:43.359197" elapsed="0.022672">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:43.346241" elapsed="0.035737">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:45.384866" level="INFO">@{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-08-15T23:10:45.383895" elapsed="0.001042"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:45.385724" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:45.385166" elapsed="0.000737"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:45.385115" elapsed="0.000850"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:45.404507" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:45.404823" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:45.405174" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:45.395661" elapsed="0.009575"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:45.406102" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:45.405415" elapsed="0.000816"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:45.411219" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:45.406571" elapsed="0.004766"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:45.406288" elapsed="0.005127"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:45.405371" elapsed="0.006094"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:45.411740" elapsed="0.000413"/>
</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-08-15T23:10:45.412836" elapsed="0.003529"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:45.412568" elapsed="0.003838"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:45.418811" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:45.416608" elapsed="0.002286">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:45.416490" elapsed="0.002481">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:45.412276" elapsed="0.006756">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:45.395169" elapsed="0.023984">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:45.382912" elapsed="0.036338">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:47.422167" level="INFO">@{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-08-15T23:10:47.421232" elapsed="0.001009"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:47.423021" elapsed="0.000081"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:47.422432" elapsed="0.000861"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:47.422384" elapsed="0.000976"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:47.441657" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:47.441826" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:47.441937" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:47.431954" elapsed="0.010010"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:47.442438" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:47.442042" elapsed="0.000477"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:47.445661" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:47.442727" elapsed="0.003007"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:47.442555" elapsed="0.003227"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:47.442023" elapsed="0.003791"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:47.445988" elapsed="0.000275"/>
</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-08-15T23:10:47.446710" elapsed="0.003087"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:47.446538" elapsed="0.003316"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:47.453040" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:47.450156" elapsed="0.002981">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:47.449969" elapsed="0.003244">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:47.446343" elapsed="0.006932">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:47.431515" elapsed="0.021867">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:47.420272" elapsed="0.033239">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:49.456511" level="INFO">@{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-08-15T23:10:49.455563" elapsed="0.001021"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:49.457374" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:49.456780" elapsed="0.000725"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:49.456728" elapsed="0.000834"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:49.476758" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:49.476931" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:49.477031" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:49.467303" elapsed="0.009775"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:49.477511" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:49.477159" elapsed="0.000431"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:49.480958" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:49.477805" elapsed="0.003225"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:49.477625" elapsed="0.003474"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:49.477139" elapsed="0.003993"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:49.481302" elapsed="0.000246"/>
</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-08-15T23:10:49.481982" elapsed="0.002977"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:49.481815" elapsed="0.003201"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:49.488231" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:49.485316" elapsed="0.003032">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:49.485153" elapsed="0.003301">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:49.481626" elapsed="0.006972">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:49.466879" elapsed="0.021832">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:49.454561" elapsed="0.034247">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:51.491605" level="INFO">@{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-08-15T23:10:51.490684" elapsed="0.000992"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:51.492509" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:51.491860" elapsed="0.000779"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:51.491813" elapsed="0.000883"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:51.512178" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:51.512393" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:51.512532" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:51.503415" elapsed="0.009154"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:51.513108" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:51.512676" elapsed="0.000511"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:51.516278" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:51.513400" elapsed="0.002951"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:51.513223" elapsed="0.003179"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:51.512649" elapsed="0.003784"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:51.516601" elapsed="0.000235"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-08-15T23:10:51.517287" elapsed="0.002970"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:51.517122" elapsed="0.003191"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:51.523611" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:51.520595" elapsed="0.003189">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:51.520432" elapsed="0.003459">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:51.516913" elapsed="0.007063">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:51.502988" elapsed="0.021156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:51.489759" elapsed="0.034576">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:53.527245" level="INFO">@{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-08-15T23:10:53.526320" elapsed="0.000997"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:53.528085" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:53.527503" elapsed="0.000716"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:53.527456" elapsed="0.000818"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:53.545561" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:53.545720" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:53.545827" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:53.537921" elapsed="0.007932"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:53.546245" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:53.545932" elapsed="0.000370"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:53.548494" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:53.546464" elapsed="0.002129"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:53.546327" elapsed="0.002302"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:53.545913" elapsed="0.002765"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:53.548804" elapsed="0.000171"/>
</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-08-15T23:10:53.549302" elapsed="0.002941"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:53.549181" elapsed="0.003120"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:53.555557" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:53.552576" elapsed="0.003084">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:53.552414" elapsed="0.003347">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:53.549031" elapsed="0.006813">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:53.537500" elapsed="0.018485">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:53.525358" elapsed="0.030785">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:55.559043" level="INFO">@{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-08-15T23:10:55.558155" elapsed="0.000989"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:55.559889" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:55.559332" elapsed="0.000688"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:55.559284" elapsed="0.000821"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:55.577779" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:55.577996" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:55.578224" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:55.569150" elapsed="0.009111"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:55.578779" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:55.578371" elapsed="0.000487"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:55.582195" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:55.579092" elapsed="0.003177"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:55.578892" elapsed="0.003426"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:55.578344" elapsed="0.004005"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:55.582519" elapsed="0.000243"/>
</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-08-15T23:10:55.583210" elapsed="0.002969"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:55.583023" elapsed="0.003213"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:55.589528" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:55.586516" elapsed="0.003109">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:55.586351" elapsed="0.003350">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:55.582839" elapsed="0.006923">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:55.568721" elapsed="0.021142">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:55.557158" elapsed="0.032801">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:57.592780" level="INFO">@{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-08-15T23:10:57.591828" elapsed="0.001022"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:57.593626" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:57.593034" elapsed="0.000827"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:57.592988" elapsed="0.000936"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:57.612516" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:57.612691" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:57.612793" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:57.603641" elapsed="0.009177"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:57.613226" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:57.612899" elapsed="0.000383"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:57.615519" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:57.613437" elapsed="0.002134"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:57.613307" elapsed="0.002298"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:57.612878" elapsed="0.002749"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:57.615753" elapsed="0.000173"/>
</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-08-15T23:10:57.616258" elapsed="0.002826"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:57.616138" elapsed="0.003004"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:57.622409" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:57.619429" elapsed="0.003088">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:57.619254" elapsed="0.003364">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:57.615985" elapsed="0.006716">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:57.603007" elapsed="0.019837">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:57.590849" elapsed="0.032188">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:59.625840" level="INFO">@{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-08-15T23:10:59.624920" elapsed="0.000990"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:10:59.626738" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:59.626176" elapsed="0.000690"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:59.626125" elapsed="0.000795"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:10:59.646267" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:10:59.646433" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:10:59.646541" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:10:59.638017" elapsed="0.008551"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:10:59.647079" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:10:59.646646" elapsed="0.000513"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:10:59.650212" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:10:59.647377" elapsed="0.002908"/>
</kw>
<status status="PASS" start="2026-08-15T23:10:59.647194" elapsed="0.003139"/>
</branch>
<status status="PASS" start="2026-08-15T23:10:59.646626" elapsed="0.003737"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:10:59.650531" elapsed="0.000236"/>
</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-08-15T23:10:59.651212" elapsed="0.002967"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:10:59.651026" elapsed="0.003210"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:10:59.656706" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:59.654513" elapsed="0.002276">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:59.654350" elapsed="0.002514">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:10:59.650843" elapsed="0.006130">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:59.637588" elapsed="0.019506">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:59.623961" elapsed="0.033231">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:01.659918" level="INFO">@{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-08-15T23:11:01.659019" 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-08-15T23:11:01.660761" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:01.660196" elapsed="0.000690"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:01.660148" elapsed="0.000792"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:01.680798" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:01.680960" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:01.681078" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:01.671859" elapsed="0.009246"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:01.681477" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:01.681183" elapsed="0.000349"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:01.683925" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:01.681676" elapsed="0.002302"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:01.681556" elapsed="0.002455"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:01.681163" elapsed="0.002871"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:01.684170" elapsed="0.000208"/>
</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-08-15T23:11:01.684689" elapsed="0.002816"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:01.684570" elapsed="0.002994"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:01.691083" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:01.687855" elapsed="0.003418">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:01.687684" elapsed="0.003707">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:01.684435" elapsed="0.007046">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:01.671253" elapsed="0.020377">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:01.658123" elapsed="0.033646">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:03.694657" level="INFO">@{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-08-15T23:11:03.693678" 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="NOT RUN" start="2026-08-15T23:11:03.695535" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:03.694933" elapsed="0.000730"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:03.694878" elapsed="0.000841"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:03.714168" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:03.714349" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:03.714446" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:03.706098" elapsed="0.008375"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:03.714886" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:03.714551" elapsed="0.000412"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:03.718041" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:03.715196" elapsed="0.003015"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:03.714998" elapsed="0.003262"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:03.714531" elapsed="0.003760"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:03.718461" elapsed="0.000236"/>
</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-08-15T23:11:03.719197" elapsed="0.002962"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:03.719003" elapsed="0.003242"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:03.724761" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:03.722525" elapsed="0.002318">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:03.722362" elapsed="0.002557">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:03.718777" elapsed="0.006202">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:03.705669" elapsed="0.019428">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:03.692713" elapsed="0.032482">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:05.727999" level="INFO">@{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-08-15T23:11:05.727040" elapsed="0.001058"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:11:05.728851" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:05.728292" elapsed="0.000691"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:05.728243" elapsed="0.000796"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:05.749673" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:05.749846" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:05.750014" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:05.741182" elapsed="0.008859"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:05.750447" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:05.750142" elapsed="0.000361"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:05.752727" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:05.750658" elapsed="0.002121"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:05.750532" elapsed="0.002281"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:05.750121" elapsed="0.002714"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:05.753045" elapsed="0.000414"/>
</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-08-15T23:11:05.754167" elapsed="0.004687"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:05.753871" elapsed="0.005074"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:05.762389" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:05.759418" elapsed="0.003050">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:05.759159" elapsed="0.003384">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:05.753580" elapsed="0.009022">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:05.740751" elapsed="0.021955">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:05.726049" elapsed="0.036772">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:07.765668" level="INFO">@{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-08-15T23:11:07.764709" 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="NOT RUN" start="2026-08-15T23:11:07.766508" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:07.765921" elapsed="0.000810"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:07.765873" elapsed="0.000919"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:07.785043" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:07.785290" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:07.785427" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:07.777266" elapsed="0.008196"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:07.785994" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:07.785589" elapsed="0.000503"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:07.789161" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:07.786309" elapsed="0.002925"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:07.786127" elapsed="0.003154"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:07.785561" elapsed="0.003752"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:07.789484" elapsed="0.000250"/>
</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-08-15T23:11:07.790184" elapsed="0.003201"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:07.789997" elapsed="0.003446"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:07.795991" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:07.793784" elapsed="0.002302">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:07.793610" elapsed="0.002552">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:07.789810" elapsed="0.006414">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:07.776839" elapsed="0.019491">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:07.763785" elapsed="0.032687">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:09.799369" level="INFO">@{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-08-15T23:11:09.798385" elapsed="0.001054"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:11:09.800250" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:09.799626" elapsed="0.000755"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:09.799577" elapsed="0.000859"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:09.819977" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:09.820161" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:09.820260" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:09.810863" elapsed="0.009424"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:09.820661" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:09.820368" elapsed="0.000350"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:09.822897" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:09.820869" elapsed="0.002079"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:09.820743" elapsed="0.002272"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:09.820348" elapsed="0.002692"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:09.823185" elapsed="0.000172"/>
</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-08-15T23:11:09.823669" elapsed="0.002842"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:09.823549" elapsed="0.003019"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:09.829829" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:09.826847" elapsed="0.003087">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:09.826683" elapsed="0.003362">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:09.823415" elapsed="0.006835">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:09.810289" elapsed="0.020115">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:09.797424" elapsed="0.033116">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:11.833503" level="INFO">@{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-08-15T23:11:11.832491" elapsed="0.001084"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:11:11.834366" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:11.833766" elapsed="0.000731"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:11.833718" elapsed="0.000833"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:11.853618" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:11.853920" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:11.854191" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:11.845224" elapsed="0.009026"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:11.855097" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:11.854426" elapsed="0.000799"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:11.859541" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:11.855551" elapsed="0.004064"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:11.855281" elapsed="0.004384"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:11.854382" elapsed="0.005314"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:11.859867" elapsed="0.000262"/>
</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-08-15T23:11:11.860561" elapsed="0.002931"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:11.860393" elapsed="0.003259"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:11.866925" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:11.863934" elapsed="0.003180">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:11.863771" elapsed="0.003449">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:11.860208" elapsed="0.007097">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:11.844625" elapsed="0.022840">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:11.831539" elapsed="0.036064">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:13.870497" level="INFO">@{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-08-15T23:11:13.869560" elapsed="0.001008"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:11:13.871348" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:13.870755" elapsed="0.000723"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:13.870707" elapsed="0.000825"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:13.890181" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:13.890346" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:13.890445" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:13.881691" elapsed="0.008781"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:13.890842" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:13.890549" elapsed="0.000349"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:13.893107" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:13.891063" elapsed="0.002157"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:13.890923" elapsed="0.002332"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:13.890530" elapsed="0.002747"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:13.893431" elapsed="0.000173"/>
</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-08-15T23:11:13.893917" elapsed="0.003227"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:13.893797" elapsed="0.003405"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:13.900553" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:13.897501" elapsed="0.003159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:13.897318" elapsed="0.003445">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:13.893661" elapsed="0.007187">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:13.881094" elapsed="0.019895">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:13.868570" elapsed="0.032575">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:15.904108" level="INFO">@{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-08-15T23:11:15.903128" elapsed="0.001056"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:11:15.905096" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:15.904459" elapsed="0.000778"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:15.904403" elapsed="0.000895"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:15.924843" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:15.925088" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:15.925304" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:15.916671" elapsed="0.008670"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:15.925866" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:15.925452" elapsed="0.000492"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:15.929079" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:15.926172" elapsed="0.002983"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:15.925979" elapsed="0.003223"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:15.925424" elapsed="0.003809"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:15.929403" elapsed="0.000238"/>
</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-08-15T23:11:15.930095" elapsed="0.003088"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:15.929909" elapsed="0.003333"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:15.936578" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:15.933525" elapsed="0.003177">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:15.933359" elapsed="0.003446">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:15.929720" elapsed="0.007170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:15.916252" elapsed="0.020787">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:15.902140" elapsed="0.035058">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:17.940022" level="INFO">@{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-08-15T23:11:17.939117" elapsed="0.001025"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:11:17.940919" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:17.940346" elapsed="0.000870"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:17.940294" elapsed="0.000996"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:17.961377" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:17.961619" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:17.961769" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:17.952602" 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-08-15T23:11:17.962346" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:17.961917" elapsed="0.000508"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:17.965554" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:17.962632" elapsed="0.002995"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:17.962460" elapsed="0.003214"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:17.961890" elapsed="0.003816"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:17.965874" elapsed="0.000258"/>
</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-08-15T23:11:17.966559" elapsed="0.002979"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:17.966394" elapsed="0.003187"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:17.971962" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:17.969781" elapsed="0.002260">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:17.969664" elapsed="0.002468">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:17.966208" elapsed="0.005984">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:17.952178" elapsed="0.020116">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:17.938171" elapsed="0.034259">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:19.975309" level="INFO">@{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-08-15T23:11:19.974368" elapsed="0.001012"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:11:19.976192" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:19.975567" elapsed="0.000757"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:19.975518" elapsed="0.000862"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:19.995456" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:19.995632" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:19.995736" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:19.986980" elapsed="0.008783"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:19.996203" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:19.995841" elapsed="0.000421"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:19.998443" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:19.996417" elapsed="0.002078"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:19.996288" elapsed="0.002242"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:19.995822" elapsed="0.002731"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:19.998675" elapsed="0.000173"/>
</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-08-15T23:11:19.999175" elapsed="0.002759"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:19.999040" elapsed="0.002951"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:20.005273" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:20.002293" elapsed="0.003086">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:20.002129" elapsed="0.003352">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:19.998905" elapsed="0.006721">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:19.986407" elapsed="0.019365">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:19.973398" elapsed="0.032506">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:22.008769" level="INFO">@{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-08-15T23:11:22.007841" elapsed="0.000997"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:11:22.009611" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:22.009024" elapsed="0.000716"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:22.008975" elapsed="0.000821"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:22.030128" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:22.030289" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:22.030388" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:22.021013" elapsed="0.009401"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:22.030783" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:22.030491" elapsed="0.000347"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:22.033043" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:22.030986" elapsed="0.002124"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:22.030864" elapsed="0.002281"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:22.030471" elapsed="0.002697"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:22.033290" elapsed="0.000174"/>
</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-08-15T23:11:22.033774" elapsed="0.002211"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:22.033655" elapsed="0.002385"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:22.039356" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:22.036360" elapsed="0.003168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:22.036179" elapsed="0.003454">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:22.033520" elapsed="0.006197">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:22.020438" elapsed="0.019419">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:22.006826" elapsed="0.033166">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:24.042720" level="INFO">@{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-08-15T23:11:24.041807" elapsed="0.000981"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:11:24.043566" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:24.042972" elapsed="0.000724"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:24.042925" elapsed="0.000872"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:24.063238" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:24.063405" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:24.063514" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:24.054969" elapsed="0.008571"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:24.063925" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:24.063618" elapsed="0.000363"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:24.066198" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:24.064162" elapsed="0.002143"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:24.064007" elapsed="0.002333"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:24.063599" elapsed="0.002764"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:24.066485" elapsed="0.000173"/>
</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-08-15T23:11:24.066968" elapsed="0.002362"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:24.066849" elapsed="0.002538"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:24.072642" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:24.069665" elapsed="0.003083">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:24.069501" elapsed="0.003347">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:24.066715" elapsed="0.006217">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:24.054390" elapsed="0.018704">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:24.040882" elapsed="0.032350">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:26.075968" level="INFO">@{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-08-15T23:11:26.075084" elapsed="0.000953"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:11:26.076806" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:26.076252" elapsed="0.000708"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:26.076205" elapsed="0.000812"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:26.095956" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:26.096132" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:26.096294" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:26.087772" elapsed="0.008549"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:26.096693" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:26.096401" elapsed="0.000349"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:26.098968" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:26.096912" elapsed="0.002107"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:26.096775" elapsed="0.002293"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:26.096381" elapsed="0.002711"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:26.099218" elapsed="0.000173"/>
</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-08-15T23:11:26.099699" elapsed="0.002482"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:26.099581" elapsed="0.002659"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:26.105527" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:26.102519" elapsed="0.003122">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:26.102355" elapsed="0.003414">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:26.099448" elapsed="0.006424">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:26.087193" elapsed="0.018819">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:26.074157" elapsed="0.032014">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:28.108850" level="INFO">@{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-08-15T23:11:28.107939" elapsed="0.000978"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:11:28.109689" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:28.109139" elapsed="0.000773"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:28.109088" elapsed="0.000886"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:28.130156" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:28.130315" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:28.130413" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:28.121191" elapsed="0.009248"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:28.130830" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:28.130517" elapsed="0.000371"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:28.133082" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:28.131034" elapsed="0.002102"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:28.130912" elapsed="0.002259"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:28.130498" elapsed="0.002696"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:28.133316" elapsed="0.000174"/>
</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-08-15T23:11:28.133803" elapsed="0.002234"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:28.133684" elapsed="0.002430"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:28.139389" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:28.136389" elapsed="0.003105">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:28.136228" elapsed="0.003368">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:28.133548" elapsed="0.006137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:28.120592" elapsed="0.019267">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:28.107027" elapsed="0.033048">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:30.143765" level="INFO">@{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-08-15T23:11:30.142762" elapsed="0.001079"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:11:30.144621" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:30.144029" elapsed="0.000746"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:30.143982" elapsed="0.000865"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:30.164727" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:30.164922" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:30.165032" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:30.156136" elapsed="0.008943"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:30.165455" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:30.165161" elapsed="0.000352"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:30.167701" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:30.165670" elapsed="0.002084"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:30.165539" elapsed="0.002250"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:30.165142" elapsed="0.002669"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:30.167932" elapsed="0.000188"/>
</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-08-15T23:11:30.168430" elapsed="0.002429"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:30.168312" elapsed="0.002604"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:30.174187" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:30.171210" elapsed="0.003091">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:30.171029" elapsed="0.003375">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:30.168177" elapsed="0.006407">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:30.155530" elapsed="0.019202">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:30.141699" elapsed="0.033166">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:32.177742" level="INFO">@{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-08-15T23:11:32.176784" elapsed="0.001028"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:11:32.178597" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:32.178003" elapsed="0.000722"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:32.177954" elapsed="0.000829"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:32.198236" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:32.198395" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:32.198493" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:32.189725" elapsed="0.008794"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:32.198887" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:32.198596" elapsed="0.000346"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:32.201368" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:32.199111" elapsed="0.002309"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:32.198967" elapsed="0.002487"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:32.198577" elapsed="0.002899"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:32.201596" elapsed="0.000172"/>
</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-08-15T23:11:32.202097" elapsed="0.002264"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:32.201962" elapsed="0.002455"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:32.207772" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:32.204696" elapsed="0.003329">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:32.204533" elapsed="0.003622">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:32.201826" elapsed="0.006417">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:32.189158" elapsed="0.019230">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:32.175806" elapsed="0.032718">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:34.211300" level="INFO">@{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-08-15T23:11:34.210365" elapsed="0.001005"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:11:34.212197" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:34.211551" elapsed="0.000776"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:34.211505" elapsed="0.000879"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:34.233129" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:34.233445" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:34.233662" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:34.224124" elapsed="0.009595"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:34.234599" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:34.233923" elapsed="0.000799"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:34.239432" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:34.235086" elapsed="0.004487"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:34.234777" elapsed="0.004848"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:34.233880" elapsed="0.005778"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:34.239843" elapsed="0.000274"/>
</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-08-15T23:11:34.240571" elapsed="0.003147"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:34.240397" elapsed="0.003381"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:34.247183" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:34.244092" elapsed="0.003171">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:34.243898" elapsed="0.003441">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:34.240200" elapsed="0.007199">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:34.223490" elapsed="0.024011">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:34.209416" elapsed="0.038181">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:36.250641" level="INFO">@{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-08-15T23:11:36.249672" elapsed="0.001043"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:11:36.251537" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:36.250910" elapsed="0.000765"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:36.250861" elapsed="0.000870"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:36.269496" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:36.269665" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:36.269829" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:36.261626" elapsed="0.008229"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:36.270247" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:36.269933" elapsed="0.000371"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:36.272471" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:36.270452" elapsed="0.002071"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:36.270330" elapsed="0.002227"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:36.269915" elapsed="0.002665"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:36.272731" elapsed="0.000175"/>
</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-08-15T23:11:36.273315" elapsed="0.003004"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:36.273150" elapsed="0.003225"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:36.279616" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:36.276665" elapsed="0.003055">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:36.276488" elapsed="0.003333">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:36.272962" elapsed="0.006943">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:36.261033" elapsed="0.019013">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:36.248624" elapsed="0.031579">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:38.283148" level="INFO">@{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-08-15T23:11:38.282172" elapsed="0.001051"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:11:38.284046" elapsed="0.000086"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:38.283419" elapsed="0.000919"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:38.283369" elapsed="0.001036"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:38.304745" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:38.304921" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:38.305037" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:38.294926" elapsed="0.010162"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:38.305543" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:38.305185" elapsed="0.000415"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:38.308121" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:38.305760" elapsed="0.002491"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:38.305625" elapsed="0.002708"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:38.305159" elapsed="0.003225"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:38.308656" 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-08-15T23:11:38.309745" elapsed="0.004784"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:11:38.309479" elapsed="0.005136"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:38.319902" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:38.315048" elapsed="0.005054">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:38.314792" elapsed="0.005412">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:11:38.309185" elapsed="0.011079">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:38.294353" elapsed="0.026016">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:38.281146" elapsed="0.039368">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<msg time="2026-08-15T23:11:38.320610" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:10:06.683978" elapsed="91.636748">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:38.320910" elapsed="0.000022"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:11:38.321784" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-08-15T23:11:38.628976" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:11:38.629441" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:11:38.629550" 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-08-15T23:11:38.629650" 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-08-15T23:11:38.321609" elapsed="0.308098"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:38.630973" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:11:38.630254" elapsed="0.000858"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:11:38.631875" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-08-15T23:11:38.927495" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:11:38.927831" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:11:38.927932" 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-08-15T23:11:38.928023" 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-08-15T23:11:38.631471" elapsed="0.296642"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:11:38.928933" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-08-15T23:11:39.003213" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:11:39.003499" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-08-15T23:11:39.003596" level="INFO">${stderr} = </msg>
<msg time="2026-08-15T23:11:39.003684" 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-08-15T23:11:38.928522" elapsed="0.075214"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:11:39.004343" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-08-15T23:11:39.051127" 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-08-15T23:11:39.004121" elapsed="0.047160"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:39.069881" level="INFO">DELETE Request : url=http://10.30.171.84: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=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:39.069944" level="INFO">DELETE Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:39.070106" 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-08-15T23:11:39.051590" elapsed="0.018569"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:39.090431" level="INFO">DELETE Request : url=http://10.30.171.84: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=node0w7pmbnf1eclypxu33da6uyq10.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:39.090627" level="INFO">DELETE Response : url=http://10.30.171.84:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-08-15T23:11:39.090848" 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-08-15T23:11:39.070479" elapsed="0.020407"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-08-15T23:11:38.321290" elapsed="0.769699"/>
</kw>
<doc>Correct credentials should result to successful mount. CONNECTED should be the device status.</doc>
<status status="FAIL" start="2026-08-15T23:10:04.950234" elapsed="94.140874">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8rYKSTXCLsgoqfF9VK5gRo5EZCKDOBN9sgojh366Zx1E0BxaK4IsDORW6BVO8DfgfDEa4R/wqEQpZrHNCESUN3Zi0Z84wwIE7yzke1ery+SLZILW6NZv13k0G/62RBTR5PD0hcEQFECDqG4joklhIpQ29a0i5dKWdO3qFi4nwmP9yd1Ij7zdetTW8rVqyznHMVfULQnFNpXUDC1iEKpcS93IGSotJbTLILoBrFa3sZ66PxyeHkfsXmiwX3quzd0nWXIENBqWUV5EmRN/sPCUnwfF5UNMZ59tdTB4RPwYTDtbbOy8rRamtgtWLdrT5EX0ALQeA5HkKk+KqJANy5u1p","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-08-15T23:11:39.095449" level="INFO">Creating Session using : alias=session, url=http://10.30.171.84:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7a683dd8d310&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-08-15T23:11:39.094541" elapsed="0.001281"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:11:39.096658" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-08-15T23:11:39.110183" 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-08-15T23:11:39.096414" elapsed="0.013907"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:11:39.110869" 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-08-15T23:11:39.559140" 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-08-15T23:11:39.110650" elapsed="0.448738"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:11:39.560185" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-08-15T23:11:39.607561" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:11:39.607809" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SM...</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-08-15T23:11:39.559843" elapsed="0.048026"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-08-15T23:11:39.618165" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SM...</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-08-15T23:11:39.608278" elapsed="0.009957"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-08-15T23:11:39.093875" elapsed="0.524453"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:11:39.654740" 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-08-15T23:11:39.618991" elapsed="0.035833"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:11:39.661992" 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-08-15T23:11:39.655032" elapsed="0.007062"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-08-15T23:11:39.618592" elapsed="0.043588"/>
</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-08-15T23:11:39.667562" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:39.663027" elapsed="0.004608"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-08-15T23:11:39.668476" 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-08-15T23:11:39.668667" 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-08-15T23:11:39.668242" elapsed="0.000517"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-08-15T23:11:39.669438" 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-08-15T23:11:39.668964" elapsed="0.000534"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:39.667863" elapsed="0.001710"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:39.667673" elapsed="0.001933"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:39.662993" elapsed="0.006643"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:11:39.670182" 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-08-15T23:11:39.669815" elapsed="0.000405"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:11:39.670746" 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-08-15T23:11:39.670414" elapsed="0.000370"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:11:39.671344" 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-08-15T23:11:39.670995" elapsed="0.000387"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:11:39.671886" 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-08-15T23:11:39.671573" elapsed="0.000349"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:39.687092" level="INFO">POST Request : url=http://10.30.171.84: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp"
        }
    }
}
 
 </msg>
<msg time="2026-08-15T23:11:39.687213" level="INFO">POST Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 14-Aug-2026 23:11:39 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:39.687425" 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-08-15T23:11:39.672125" elapsed="0.015355"/>
</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-08-15T23:11:39.687812" elapsed="0.004654"/>
</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-08-15T23:11:39.662523" elapsed="0.030080"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:11:39.693313" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-08-15T23:11:39.959140" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:11:39.959416" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:11:39.959519" 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-08-15T23:11:39.959612" 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-08-15T23:11:39.692914" elapsed="0.266749"/>
</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-08-15T23:11:39.962934" level="INFO">@{expected_values} = [ "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-08-15T23:11:39.962103" 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-08-15T23:11:39.963759" elapsed="0.000520"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:39.963212" elapsed="0.001155"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:39.963160" elapsed="0.001261"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:39.981897" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:39.982133" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:39.982317" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:39.974843" elapsed="0.007517"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:39.982893" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:39.982468" elapsed="0.000504"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:39.986009" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:39.983197" elapsed="0.002902"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:39.983006" elapsed="0.003141"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:39.982442" elapsed="0.003735"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:39.986345" elapsed="0.000229"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:39.989994" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:39.987016" elapsed="0.003107">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:39.986852" elapsed="0.003377">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:39.986651" elapsed="0.003664">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:39.974422" elapsed="0.016037">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:39.961338" elapsed="0.029253">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:41.993379" level="INFO">@{expected_values} = [ "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-08-15T23:11:41.992467" elapsed="0.001107"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:11:41.994391" elapsed="0.000466"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:41.993765" elapsed="0.001180"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:41.993716" elapsed="0.001285"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:42.013388" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:42.013549" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:42.013647" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:42.005293" elapsed="0.008381"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:42.014076" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:42.013753" elapsed="0.000382"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:42.016375" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:42.014292" elapsed="0.002136"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:42.014161" elapsed="0.002302"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:42.013734" elapsed="0.002752"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:42.016608" elapsed="0.000171"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:42.019931" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:42.017106" elapsed="0.002931">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:42.016970" elapsed="0.003192">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:42.016836" elapsed="0.003413">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:42.004699" elapsed="0.015692">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:41.991515" elapsed="0.029054">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:44.023312" level="INFO">@{expected_values} = [ "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-08-15T23:11:44.022387" elapsed="0.000996"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:11:44.024188" elapsed="0.000468"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:44.023571" elapsed="0.001173"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:44.023523" elapsed="0.001278"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:44.043964" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:44.044152" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:44.044258" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:44.035133" elapsed="0.009151"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:44.044669" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:44.044363" elapsed="0.000364"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:44.046997" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:44.044876" elapsed="0.002185"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:44.044752" elapsed="0.002347"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:44.044343" elapsed="0.002780"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:44.047246" elapsed="0.000174"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:44.050648" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:44.047761" elapsed="0.002991">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:44.047639" elapsed="0.003216">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:44.047477" elapsed="0.003466">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:44.034540" elapsed="0.016633">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:44.021465" elapsed="0.029849">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:46.054184" level="INFO">@{expected_values} = [ "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-08-15T23:11:46.053252" elapsed="0.001005"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:11:46.055010" elapsed="0.000495"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:46.054451" elapsed="0.001142"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:46.054401" elapsed="0.001249"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:46.077392" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:46.077616" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:46.077766" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:46.067872" elapsed="0.009932"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:46.078343" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:46.077913" elapsed="0.000513"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:46.081481" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:46.078636" elapsed="0.002916"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:46.078462" elapsed="0.003138"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:46.077887" elapsed="0.003744"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:46.081802" elapsed="0.000237"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:46.085509" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:46.082493" elapsed="0.003122">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:46.082324" elapsed="0.003394">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:46.082138" elapsed="0.003731">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:46.067384" elapsed="0.018629">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:46.052237" elapsed="0.033934">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:48.089151" level="INFO">@{expected_values} = [ "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-08-15T23:11:48.088162" elapsed="0.001067"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:11:48.090022" elapsed="0.000528"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:48.089432" elapsed="0.001212"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:48.089381" elapsed="0.001323"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:48.109528" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:48.109754" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:48.109915" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:48.100935" elapsed="0.009018"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:48.110499" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:48.110092" elapsed="0.000487"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:48.113743" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:48.110788" elapsed="0.003028"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:48.110613" elapsed="0.003277"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:48.110037" elapsed="0.003886"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:48.114121" elapsed="0.000242"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:48.118254" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:48.114804" elapsed="0.003636">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:48.114635" elapsed="0.003913">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:48.114445" elapsed="0.004190">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:48.100353" elapsed="0.018427">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:48.087174" elapsed="0.031740">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:50.121712" level="INFO">@{expected_values} = [ "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-08-15T23:11:50.120790" elapsed="0.000991"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:11:50.122555" elapsed="0.000462"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:50.121970" elapsed="0.001166"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:50.121921" elapsed="0.001276"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:50.142420" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:50.142584" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:50.142728" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:50.134913" elapsed="0.007852"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:50.143311" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:50.142874" elapsed="0.000517"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:50.146501" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:50.143614" elapsed="0.003079"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:50.143425" elapsed="0.003318"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:50.142848" elapsed="0.003925"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:50.146944" elapsed="0.000259"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:50.150660" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:50.147634" elapsed="0.003134">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:50.147469" elapsed="0.003403">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:50.147282" elapsed="0.003677">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:50.134501" elapsed="0.016622">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:50.119795" elapsed="0.031465">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:52.154124" level="INFO">@{expected_values} = [ "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-08-15T23:11:52.153194" elapsed="0.001005"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:11:52.154944" elapsed="0.000498"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:52.154386" elapsed="0.001144"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:52.154337" elapsed="0.001248"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:52.174494" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:52.174660" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:52.174822" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:52.165887" elapsed="0.008962"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:52.175248" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:52.174929" elapsed="0.000377"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:52.177519" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:52.175456" elapsed="0.002151"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:52.175331" elapsed="0.002359"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:52.174910" elapsed="0.002831"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:52.178016" elapsed="0.000413"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:52.184280" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:52.179143" elapsed="0.005307">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:52.178849" elapsed="0.005772">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:52.178556" elapsed="0.006253">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:52.165304" elapsed="0.019741">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:52.152200" elapsed="0.033100">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:54.188208" level="INFO">@{expected_values} = [ "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-08-15T23:11:54.187241" elapsed="0.001040"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:11:54.189029" elapsed="0.000526"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:54.188474" elapsed="0.001169"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:54.188423" elapsed="0.001278"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:54.207511" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:54.207689" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:54.207827" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:54.199639" elapsed="0.008224"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:54.208407" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:54.207973" elapsed="0.000514"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:54.211560" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:54.208691" elapsed="0.002941"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:54.208520" elapsed="0.003160"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:54.207946" elapsed="0.003766"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:54.211881" elapsed="0.000262"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:54.215866" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:54.212588" elapsed="0.003383">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:54.212410" elapsed="0.003684">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:54.212223" elapsed="0.003959">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:54.199221" elapsed="0.017103">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:54.186245" elapsed="0.030214">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:56.219332" level="INFO">@{expected_values} = [ "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-08-15T23:11:56.218374" 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-08-15T23:11:56.220185" elapsed="0.000461"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:56.219591" elapsed="0.001144"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:56.219541" elapsed="0.001250"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:56.238939" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:56.239182" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:56.239321" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:56.231265" elapsed="0.008093"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:56.239871" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:56.239467" elapsed="0.000483"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:56.243048" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:56.240195" elapsed="0.002947"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:56.239984" elapsed="0.003207"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:56.239441" elapsed="0.003781"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:56.243392" elapsed="0.000236"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:56.247074" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:56.244076" elapsed="0.003104">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:56.243890" elapsed="0.003393">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:56.243705" elapsed="0.003663">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:56.230836" elapsed="0.016673">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:56.217413" elapsed="0.030295">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:58.249931" level="INFO">@{expected_values} = [ "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-08-15T23:11:58.249319" elapsed="0.000661"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:11:58.250513" elapsed="0.000329"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:58.250138" elapsed="0.000763"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:58.250102" elapsed="0.000839"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:11:58.268444" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:11:58.268720" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:11:58.268893" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:11:58.260222" elapsed="0.008714"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:11:58.269601" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:11:58.269100" elapsed="0.000601"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:11:58.273661" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:58.269975" elapsed="0.003780"/>
</kw>
<status status="PASS" start="2026-08-15T23:11:58.269746" elapsed="0.004066"/>
</branch>
<status status="PASS" start="2026-08-15T23:11:58.269039" elapsed="0.004806"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:11:58.274022" elapsed="0.000273"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:11:58.278530" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:58.274866" elapsed="0.003790">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:58.274616" elapsed="0.004257">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:58.274378" elapsed="0.004612">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:58.259699" elapsed="0.019589">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:58.248585" elapsed="0.030875">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:00.282296" level="INFO">@{expected_values} = [ "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-08-15T23:12:00.281357" elapsed="0.001012"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:00.283187" elapsed="0.000473"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:00.282562" elapsed="0.001189"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:00.282511" elapsed="0.001332"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:00.300392" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:00.300553" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:00.300654" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:00.293166" elapsed="0.007515"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:00.301079" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:00.300759" elapsed="0.000379"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:00.303351" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:00.301294" elapsed="0.002110"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:00.301164" elapsed="0.002276"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:00.300740" elapsed="0.002723"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:00.303587" elapsed="0.000199"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:00.307189" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:00.304115" elapsed="0.003184">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:00.303980" elapsed="0.003424">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:00.303844" elapsed="0.003723">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:00.292733" elapsed="0.014981">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:00.280412" elapsed="0.027478">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:02.310694" level="INFO">@{expected_values} = [ "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-08-15T23:12:02.309765" elapsed="0.001001"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:02.311553" elapsed="0.000469"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:02.310955" elapsed="0.001196"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:02.310907" elapsed="0.001303"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:02.330322" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:02.330488" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:02.330585" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:02.322296" elapsed="0.008315"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:02.331045" elapsed="0.000098"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:02.330689" elapsed="0.000526"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:02.336304" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:02.331551" elapsed="0.004870"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:02.331269" elapsed="0.005230"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:02.330670" elapsed="0.005878"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:02.336820" elapsed="0.000453"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:02.342431" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:02.338003" elapsed="0.004563">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:02.337733" elapsed="0.004911">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:02.337403" elapsed="0.005304">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:02.321693" elapsed="0.021118">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:02.308816" elapsed="0.034091">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:04.345756" level="INFO">@{expected_values} = [ "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-08-15T23:12:04.344811" elapsed="0.001018"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:04.346615" elapsed="0.000520"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:04.346018" elapsed="0.001207"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:04.345969" elapsed="0.001314"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:04.382396" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:04.382618" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:04.382781" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:04.358422" elapsed="0.024389"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:04.383376" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:04.382931" elapsed="0.000508"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:04.385835" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:04.383624" elapsed="0.002329"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:04.383467" elapsed="0.002523"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:04.382899" elapsed="0.003114"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:04.386157" elapsed="0.000184"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:04.388920" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:04.386686" elapsed="0.002319">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:04.386550" elapsed="0.002549">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:04.386406" elapsed="0.002758">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:04.357812" elapsed="0.031463">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:04.343830" elapsed="0.045545">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:06.392168" level="INFO">@{expected_values} = [ "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-08-15T23:12:06.391237" elapsed="0.001004"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:06.392980" elapsed="0.000542"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:06.392426" elapsed="0.001184"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:06.392379" elapsed="0.001288"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:06.411409" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:06.411578" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:06.411739" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:06.403045" elapsed="0.008721"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:06.412168" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:06.411844" elapsed="0.000382"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:06.414427" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:06.412375" elapsed="0.002106"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:06.412252" elapsed="0.002263"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:06.411825" elapsed="0.002713"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:06.414661" elapsed="0.000171"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:06.417543" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:06.415160" elapsed="0.002477">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:06.415021" elapsed="0.002707">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:06.414889" elapsed="0.002906">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:06.402463" elapsed="0.015440">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:06.390281" elapsed="0.027724">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:08.420882" level="INFO">@{expected_values} = [ "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-08-15T23:12:08.419903" 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-08-15T23:12:08.421781" elapsed="0.000522"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:08.421185" elapsed="0.001212"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:08.421133" elapsed="0.001325"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:08.441648" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:08.441969" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:08.442228" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:08.432281" elapsed="0.010007"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:08.443173" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:08.442483" elapsed="0.000820"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:08.447012" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:08.443724" elapsed="0.003388"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:08.443359" elapsed="0.003805"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:08.442438" elapsed="0.004760"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:08.447383" elapsed="0.000288"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:08.451465" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:08.448156" elapsed="0.003432">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:08.447955" elapsed="0.003746">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:08.447756" elapsed="0.004035">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:08.431665" elapsed="0.020281">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:08.418899" elapsed="0.033215">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:10.454940" level="INFO">@{expected_values} = [ "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-08-15T23:12:10.454033" 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-08-15T23:12:10.455814" elapsed="0.000490"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:10.455231" elapsed="0.001160"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:10.455180" elapsed="0.001266"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:10.474869" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:10.475035" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:10.475165" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:10.466461" elapsed="0.008731"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:10.475567" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:10.475274" elapsed="0.000350"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:10.477786" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:10.475770" elapsed="0.002068"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:10.475648" elapsed="0.002224"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:10.475252" elapsed="0.002643"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:10.478064" elapsed="0.000180"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:10.481511" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:10.478554" elapsed="0.003068">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:10.478435" elapsed="0.003291">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:10.478300" elapsed="0.003511">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:10.465834" elapsed="0.016133">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:10.453130" elapsed="0.029064">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:12.485002" level="INFO">@{expected_values} = [ "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-08-15T23:12:12.484025" elapsed="0.001077"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:12.485871" elapsed="0.000494"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:12.485299" elapsed="0.001153"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:12.485245" elapsed="0.001265"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:12.508237" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:12.508450" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:12.508616" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:12.499345" elapsed="0.009318"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:12.509214" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:12.508774" elapsed="0.000520"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:12.512506" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:12.509514" elapsed="0.003085"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:12.509330" elapsed="0.003318"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:12.508747" elapsed="0.003936"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:12.512863" elapsed="0.000260"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:12.518228" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:12.513564" elapsed="0.004744">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:12.513397" elapsed="0.004987">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:12.513201" elapsed="0.005246">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:12.498917" elapsed="0.019683">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:12.483133" elapsed="0.035566">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:14.521565" level="INFO">@{expected_values} = [ "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-08-15T23:12:14.520651" elapsed="0.000983"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:14.522404" elapsed="0.000454"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:14.521819" elapsed="0.001127"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:14.521771" elapsed="0.001231"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:14.540300" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:14.540494" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:14.540593" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:14.532769" elapsed="0.007850"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:14.540995" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:14.540698" elapsed="0.000368"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:14.543265" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:14.541222" elapsed="0.002131"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:14.541093" elapsed="0.002296"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:14.540678" elapsed="0.002733"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:14.543533" elapsed="0.000170"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:14.546950" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:14.544032" elapsed="0.003045">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:14.543896" elapsed="0.003287">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:14.543760" elapsed="0.003591">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:14.532317" elapsed="0.015178">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:14.519713" elapsed="0.027918">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:16.550834" level="INFO">@{expected_values} = [ "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-08-15T23:12:16.550141" elapsed="0.000733"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:16.551281" elapsed="0.000224"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:16.550991" elapsed="0.000553"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:16.550961" elapsed="0.000612"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:16.565670" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:16.565909" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:16.566139" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:16.558424" elapsed="0.007759"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:16.566748" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:16.566304" elapsed="0.000525"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:16.569883" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:16.567034" elapsed="0.002921"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:16.566863" elapsed="0.003140"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:16.566274" elapsed="0.003759"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:16.570225" elapsed="0.000236"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:16.573921" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:16.570889" elapsed="0.003240">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:16.570724" elapsed="0.003514">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:16.570540" elapsed="0.003784">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:16.557986" elapsed="0.016485">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:16.548821" elapsed="0.025782">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:18.577323" level="INFO">@{expected_values} = [ "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-08-15T23:12:18.576415" elapsed="0.000979"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:18.578177" elapsed="0.000481"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:18.577579" elapsed="0.001168"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:18.577531" elapsed="0.001273"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:18.598119" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:18.598441" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:18.598660" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:18.589434" elapsed="0.009284"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:18.599564" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:18.598890" elapsed="0.000799"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:18.603981" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:18.600017" elapsed="0.004121"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:18.599743" elapsed="0.004448"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:18.598848" elapsed="0.005376"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:18.604407" elapsed="0.000249"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:18.608639" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:18.605130" elapsed="0.003621">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:18.604932" elapsed="0.003929">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:18.604738" elapsed="0.004216">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:18.588833" elapsed="0.020297">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:18.575494" elapsed="0.033784">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:20.612221" level="INFO">@{expected_values} = [ "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-08-15T23:12:20.611263" elapsed="0.001035"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:20.613187" elapsed="0.000472"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:20.612526" elapsed="0.001224"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:20.612466" elapsed="0.001343"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:20.632256" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:20.632417" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:20.632579" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:20.624385" elapsed="0.008223"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:20.632990" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:20.632691" elapsed="0.000373"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:20.635264" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:20.633225" elapsed="0.002092"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:20.633094" elapsed="0.002259"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:20.632671" elapsed="0.002705"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:20.635502" elapsed="0.000180"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:20.638735" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:20.636036" elapsed="0.002805">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:20.635912" elapsed="0.003034">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:20.635761" elapsed="0.003272">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:20.623733" elapsed="0.015469">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:20.610269" elapsed="0.029071">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:22.642168" level="INFO">@{expected_values} = [ "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-08-15T23:12:22.641262" 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-08-15T23:12:22.642981" elapsed="0.000486"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:22.642428" elapsed="0.001126"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:22.642381" elapsed="0.001229"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:22.661782" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:22.661941" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:22.662068" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:22.653840" elapsed="0.008256"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:22.662475" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:22.662182" elapsed="0.000349"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:22.664717" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:22.662679" elapsed="0.002090"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:22.662556" elapsed="0.002271"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:22.662163" elapsed="0.002688"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:22.664973" elapsed="0.000194"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:22.668404" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:22.665474" elapsed="0.003036">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:22.665355" elapsed="0.003259">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:22.665223" elapsed="0.003476">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:22.653253" elapsed="0.015604">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:22.640285" elapsed="0.028710">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:24.671881" level="INFO">@{expected_values} = [ "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-08-15T23:12:24.670940" elapsed="0.001010"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:24.672726" elapsed="0.000496"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:24.672167" elapsed="0.001146"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:24.672118" elapsed="0.001253"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:24.690972" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:24.691164" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:24.691269" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:24.683488" elapsed="0.007807"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:24.691667" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:24.691375" elapsed="0.000349"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:24.693915" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:24.691873" elapsed="0.002094"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:24.691748" elapsed="0.002255"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:24.691355" elapsed="0.002671"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:24.694164" elapsed="0.000171"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:24.697534" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:24.694648" elapsed="0.002993">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:24.694527" elapsed="0.003217">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:24.694392" elapsed="0.003439">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:24.682879" elapsed="0.015094">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:24.670012" elapsed="0.028182">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:26.700965" level="INFO">@{expected_values} = [ "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-08-15T23:12:26.700074" elapsed="0.000962"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:26.701870" elapsed="0.000495"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:26.701257" elapsed="0.001198"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:26.701207" elapsed="0.001306"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:26.722463" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:26.722622" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:26.722719" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:26.715392" elapsed="0.007353"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:26.723275" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:26.722826" elapsed="0.000528"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:26.726432" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:26.723562" elapsed="0.002942"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:26.723388" elapsed="0.003164"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:26.722806" elapsed="0.003777"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:26.726753" elapsed="0.000235"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:26.730468" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:26.727438" elapsed="0.003135">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:26.727271" elapsed="0.003406">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:26.727084" elapsed="0.003677">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:26.714963" elapsed="0.016007">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:26.699162" elapsed="0.031969">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:28.733979" level="INFO">@{expected_values} = [ "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-08-15T23:12:28.733026" 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-08-15T23:12:28.734831" elapsed="0.000544"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:28.734272" elapsed="0.001196"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:28.734221" elapsed="0.001304"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:28.754979" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:28.755358" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:28.755601" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:28.746603" elapsed="0.009057"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:28.756516" elapsed="0.000092"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:28.755837" elapsed="0.000843"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:28.761086" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:28.757130" elapsed="0.004031"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:28.756736" elapsed="0.004473"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:28.755794" elapsed="0.005448"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:28.761414" elapsed="0.000238"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:28.765160" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:28.762102" elapsed="0.003167">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:28.761914" elapsed="0.003458">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:28.761728" elapsed="0.003792">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:28.746003" elapsed="0.019665">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:28.732047" elapsed="0.033755">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:30.768707" level="INFO">@{expected_values} = [ "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-08-15T23:12:30.767782" elapsed="0.000996"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:30.769564" elapsed="0.000458"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:30.768971" elapsed="0.001174"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:30.768921" elapsed="0.001284"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:30.788475" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:30.788641" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:30.788744" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:30.779732" elapsed="0.009039"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:30.789176" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:30.788850" elapsed="0.000384"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:30.792187" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:30.789388" elapsed="0.002920"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:30.789259" elapsed="0.003127"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:30.788831" elapsed="0.003605"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:30.792714" elapsed="0.000405"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:30.799264" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:30.793798" elapsed="0.005601">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:30.793533" elapsed="0.005945">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:30.793242" elapsed="0.006298">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:30.779147" elapsed="0.020497">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:30.766818" elapsed="0.032920">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:32.802520" level="INFO">@{expected_values} = [ "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-08-15T23:12:32.801607" elapsed="0.000984"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:32.803372" elapsed="0.000464"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:32.802780" elapsed="0.001163"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:32.802731" elapsed="0.001272"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:32.823891" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:32.824080" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:32.824181" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:32.815005" elapsed="0.009203"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:32.824578" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:32.824288" elapsed="0.000346"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:32.826888" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:32.824800" elapsed="0.002198"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:32.824660" elapsed="0.002381"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:32.824268" elapsed="0.002812"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:32.827206" elapsed="0.000173"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:32.830318" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:32.827695" elapsed="0.002729">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:32.827573" elapsed="0.002954">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:32.827437" elapsed="0.003179">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:32.814429" elapsed="0.016330">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:32.800665" elapsed="0.030232">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:34.833828" level="INFO">@{expected_values} = [ "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-08-15T23:12:34.832844" elapsed="0.001062"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:34.834797" elapsed="0.000532"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:34.834134" elapsed="0.001289"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:34.834081" elapsed="0.001405"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:34.854356" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:34.854589" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:34.854860" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:34.846800" elapsed="0.008099"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:34.855535" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:34.855034" elapsed="0.000582"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:34.858789" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:34.855832" elapsed="0.003031"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:34.855654" elapsed="0.003258"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:34.855001" elapsed="0.003942"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:34.859137" elapsed="0.000244"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:34.862894" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:34.859821" elapsed="0.003183">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:34.859647" elapsed="0.003475">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:34.859460" elapsed="0.003727">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:34.846314" elapsed="0.016982">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:34.831864" elapsed="0.031532">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:36.866162" level="INFO">@{expected_values} = [ "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-08-15T23:12:36.865263" 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-08-15T23:12:36.867111" elapsed="0.000333"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:36.866416" elapsed="0.001087"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:36.866370" elapsed="0.001170"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:36.885932" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:36.886223" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:36.886449" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:36.877498" elapsed="0.008994"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:36.887216" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:36.886665" elapsed="0.000637"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:36.890644" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:36.887551" elapsed="0.003173"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:36.887345" elapsed="0.003429"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:36.886617" elapsed="0.004193"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:36.891018" elapsed="0.000263"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:36.895161" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:36.891712" elapsed="0.003558">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:36.891523" elapsed="0.003860">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:36.891353" elapsed="0.004125">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:36.876736" elapsed="0.018883">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:36.864358" elapsed="0.031380">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:38.898752" level="INFO">@{expected_values} = [ "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-08-15T23:12:38.897758" elapsed="0.001069"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:38.899706" elapsed="0.000524"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:38.899099" elapsed="0.001228"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:38.899007" elapsed="0.001380"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:38.919930" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:38.920187" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:38.920332" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:38.911072" elapsed="0.009297"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:38.920920" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:38.920484" elapsed="0.000517"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:38.924205" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:38.921236" elapsed="0.003051"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:38.921037" elapsed="0.003304"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:38.920456" elapsed="0.003920"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:38.924558" elapsed="0.000242"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:38.928368" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:38.925268" elapsed="0.003210">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:38.925093" elapsed="0.003490">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:38.924881" elapsed="0.003789">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:38.910427" elapsed="0.018389">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:38.896710" elapsed="0.032308">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:40.931861" level="INFO">@{expected_values} = [ "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-08-15T23:12:40.930942" elapsed="0.001014"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:40.932792" elapsed="0.000489"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:40.932204" elapsed="0.001165"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:40.932153" elapsed="0.001272"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:40.951364" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:40.951530" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:40.951646" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:40.944240" elapsed="0.007433"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:40.952167" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:40.951756" elapsed="0.000491"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:40.955469" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:40.952455" elapsed="0.003087"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:40.952283" elapsed="0.003307"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:40.951735" elapsed="0.003886"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:40.955792" elapsed="0.000235"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:40.959531" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:40.956502" elapsed="0.003137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:40.956335" elapsed="0.003407">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:40.956145" elapsed="0.003681">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:40.943791" elapsed="0.016246">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:40.929989" elapsed="0.030245">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:42.963245" level="INFO">@{expected_values} = [ "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-08-15T23:12:42.962223" elapsed="0.001124"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:42.964438" elapsed="0.000511"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:42.963608" elapsed="0.001434"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:42.963540" elapsed="0.001598"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:42.984352" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:42.984540" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:42.984659" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:42.974984" elapsed="0.009703"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:42.985186" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:42.984791" elapsed="0.000455"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:42.989621" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:42.985408" elapsed="0.004377"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:42.985273" elapsed="0.004596"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:42.984764" elapsed="0.005161"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:42.990262" elapsed="0.000574"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:42.997486" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:42.991663" elapsed="0.005991">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:42.991363" elapsed="0.006513">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:42.990959" elapsed="0.007178">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:42.974320" elapsed="0.024058">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:42.961209" elapsed="0.037292">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:45.001456" level="INFO">@{expected_values} = [ "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-08-15T23:12:45.000519" elapsed="0.001029"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:45.002399" elapsed="0.000467"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:45.001765" elapsed="0.001189"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:45.001705" elapsed="0.001305"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:45.021046" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:45.021233" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:45.021331" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:45.012697" elapsed="0.008659"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:45.021728" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:45.021434" elapsed="0.000350"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:45.023993" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:45.021935" elapsed="0.002110"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:45.021808" elapsed="0.002288"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:45.021415" elapsed="0.002704"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:45.024240" elapsed="0.000170"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:45.027832" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:45.024828" elapsed="0.003190">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:45.024662" elapsed="0.003484">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:45.024475" elapsed="0.003760">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:45.012114" elapsed="0.016264">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:44.999503" elapsed="0.029015">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:47.031284" level="INFO">@{expected_values} = [ "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-08-15T23:12:47.030336" elapsed="0.001020"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:47.032180" elapsed="0.000462"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:47.031560" elapsed="0.001168"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:47.031512" elapsed="0.001272"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:47.050911" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:47.051091" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:47.051199" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:47.043317" elapsed="0.007913"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:47.051600" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:47.051311" elapsed="0.000345"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:47.053834" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:47.051810" elapsed="0.002128"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:47.051681" elapsed="0.002292"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:47.051292" elapsed="0.002704"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:47.054134" elapsed="0.000172"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:47.057371" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:47.054646" elapsed="0.002832">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:47.054520" elapsed="0.003066">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:47.054385" elapsed="0.003289">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:47.042694" elapsed="0.015122">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:47.029429" elapsed="0.028524">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:49.060276" level="INFO">@{expected_values} = [ "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-08-15T23:12:49.059540" elapsed="0.000791"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:49.060955" elapsed="0.000442"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:49.060498" elapsed="0.000958"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:49.060449" elapsed="0.001050"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:49.079701" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:49.079907" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:49.080106" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:49.071131" elapsed="0.009004"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:49.080539" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:49.080217" elapsed="0.000401"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:49.082937" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:49.080786" elapsed="0.002204"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:49.080645" elapsed="0.002381"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:49.080197" elapsed="0.002867"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:49.083196" elapsed="0.000185"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:49.088926" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:49.083722" elapsed="0.005382">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:49.083595" elapsed="0.005652">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:49.083446" elapsed="0.005907">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:49.070529" elapsed="0.018977">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:49.058762" elapsed="0.030878">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:51.092573" level="INFO">@{expected_values} = [ "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-08-15T23:12:51.091551" elapsed="0.001095"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:51.093431" elapsed="0.000457"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:51.092831" elapsed="0.001144"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:51.092783" elapsed="0.001247"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:51.112362" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:51.112539" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:51.112636" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:51.104428" elapsed="0.008234"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:51.113035" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:51.112745" elapsed="0.000364"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:51.115288" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:51.113258" elapsed="0.002082"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:51.113134" elapsed="0.002240"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:51.112725" elapsed="0.002673"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:51.115518" elapsed="0.000169"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:51.118161" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:51.115999" elapsed="0.002242">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:51.115879" elapsed="0.002437">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:51.115744" elapsed="0.002635">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:51.103982" elapsed="0.014500">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:51.090619" elapsed="0.027961">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:53.121519" level="INFO">@{expected_values} = [ "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-08-15T23:12:53.120516" elapsed="0.001084"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:53.122437" elapsed="0.000491"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:53.121804" elapsed="0.001214"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:53.121754" elapsed="0.001358"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:53.142387" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:53.142560" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:53.142670" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:53.134293" elapsed="0.008404"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:53.143255" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:53.142793" elapsed="0.000545"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:53.146615" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:53.143591" elapsed="0.003109"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:53.143399" elapsed="0.003355"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:53.142763" elapsed="0.004025"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:53.146965" elapsed="0.000297"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:53.150774" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:53.147703" elapsed="0.003180">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:53.147533" elapsed="0.003455">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:53.147344" elapsed="0.003770">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:53.133820" elapsed="0.017446">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:53.119572" elapsed="0.031914">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:55.154402" level="INFO">@{expected_values} = [ "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-08-15T23:12:55.153487" elapsed="0.000990"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:55.155255" elapsed="0.000453"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:55.154664" elapsed="0.001131"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:55.154616" elapsed="0.001239"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:55.175769" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:55.175991" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:55.176172" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:55.167473" elapsed="0.008736"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:55.176726" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:55.176322" elapsed="0.000483"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:55.179877" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:55.177017" elapsed="0.002934"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:55.176842" elapsed="0.003158"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:55.176295" elapsed="0.003736"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:55.180234" elapsed="0.000235"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:55.184265" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:55.180916" elapsed="0.003457">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:55.180730" elapsed="0.003749">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:55.180546" elapsed="0.004019">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:55.167041" elapsed="0.017734">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:55.152529" elapsed="0.032367">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:57.187984" level="INFO">@{expected_values} = [ "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-08-15T23:12:57.186818" elapsed="0.001281"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:57.188883" elapsed="0.000491"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:57.188323" elapsed="0.001139"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:57.188271" elapsed="0.001248"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:57.207386" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:57.207568" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:57.207675" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:57.199975" elapsed="0.007727"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:57.208135" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:57.207793" elapsed="0.000400"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:57.210462" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:57.208347" elapsed="0.002166"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:57.208220" elapsed="0.002327"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:57.207770" elapsed="0.002799"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:57.210692" elapsed="0.000171"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:57.213981" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:57.211242" elapsed="0.002872">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:57.211116" elapsed="0.003105">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:57.210947" elapsed="0.003433">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:57.199355" elapsed="0.015172">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:57.185808" elapsed="0.028858">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:59.217549" level="INFO">@{expected_values} = [ "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-08-15T23:12:59.216600" elapsed="0.001021"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:12:59.218399" elapsed="0.000454"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:59.217810" elapsed="0.001131"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:59.217761" elapsed="0.001235"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:12:59.237092" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:12:59.237281" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:12:59.237432" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:12:59.229617" elapsed="0.007853"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:12:59.237980" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:12:59.237580" elapsed="0.000500"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:12:59.241159" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:59.238291" elapsed="0.002941"/>
</kw>
<status status="PASS" start="2026-08-15T23:12:59.238117" elapsed="0.003163"/>
</branch>
<status status="PASS" start="2026-08-15T23:12:59.237553" elapsed="0.003759"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:12:59.241482" elapsed="0.000234"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:12:59.245202" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:59.242162" elapsed="0.003185">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:59.241975" elapsed="0.003448">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:59.241791" elapsed="0.003692">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:59.229200" elapsed="0.016385">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:12:59.215607" elapsed="0.030073">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:01.248524" level="INFO">@{expected_values} = [ "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-08-15T23:13:01.247563" elapsed="0.001031"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:13:01.249374" elapsed="0.000456"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:01.248780" elapsed="0.001137"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:01.248732" elapsed="0.001243"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:01.268406" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:01.268588" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:01.268688" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:01.259855" elapsed="0.008859"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:01.269109" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:01.268793" elapsed="0.000374"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:01.271375" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:01.269321" elapsed="0.002158"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:01.269193" elapsed="0.002321"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:01.268773" elapsed="0.002764"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:01.271694" elapsed="0.000177"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:01.275522" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:01.272269" elapsed="0.003376">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:01.272096" elapsed="0.003660">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:01.271929" elapsed="0.003912">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:01.259267" elapsed="0.016715">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:01.246598" elapsed="0.029541">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:03.279169" level="INFO">@{expected_values} = [ "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-08-15T23:13:03.278194" elapsed="0.001049"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:13:03.279994" elapsed="0.000661"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:03.279429" elapsed="0.001322"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:03.279381" elapsed="0.001434"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:03.298704" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:03.298868" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:03.299037" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:03.291213" elapsed="0.007873"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:03.299636" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:03.299201" elapsed="0.000515"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:03.302834" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:03.299926" elapsed="0.002981"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:03.299751" elapsed="0.003204"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:03.299169" elapsed="0.003818"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:03.303185" elapsed="0.000238"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:03.307030" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:03.303857" elapsed="0.003314">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:03.303685" elapsed="0.003564">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:03.303501" elapsed="0.003812">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:03.290750" elapsed="0.016669">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:03.277159" elapsed="0.030372">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:05.310489" level="INFO">@{expected_values} = [ "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-08-15T23:13:05.309501" elapsed="0.001065"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:13:05.311422" elapsed="0.000492"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:05.310763" elapsed="0.001244"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:05.310714" elapsed="0.001386"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:05.329189" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:05.329359" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:05.329470" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:05.322075" elapsed="0.007421"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:05.329868" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:05.329575" elapsed="0.000350"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:05.332130" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:05.330088" elapsed="0.002093"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:05.329950" elapsed="0.002265"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:05.329556" elapsed="0.002682"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:05.332358" elapsed="0.000171"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:05.334987" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:05.332841" elapsed="0.002246">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:05.332721" elapsed="0.002443">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:05.332585" elapsed="0.002642">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:05.321473" elapsed="0.013858">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:05.308520" elapsed="0.026907">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:07.338265" level="INFO">@{expected_values} = [ "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-08-15T23:13:07.337337" elapsed="0.001002"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:13:07.339166" elapsed="0.000479"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:07.338527" elapsed="0.001209"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:07.338478" elapsed="0.001317"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:07.358582" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:07.358743" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:07.358842" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:07.351193" elapsed="0.007676"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:07.359271" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:07.358948" elapsed="0.000422"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:07.362494" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:07.359611" elapsed="0.002956"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:07.359414" elapsed="0.003202"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:07.358929" elapsed="0.003719"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:07.362819" elapsed="0.000255"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:07.366817" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:07.363504" elapsed="0.003419">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:07.363338" elapsed="0.003708">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:07.363152" elapsed="0.004025">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:07.350760" elapsed="0.016569">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:07.336419" elapsed="0.031113">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:09.370506" level="INFO">@{expected_values} = [ "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-08-15T23:13:09.369489" elapsed="0.001094"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:13:09.371418" elapsed="0.000499"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:09.370784" elapsed="0.001228"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:09.370733" elapsed="0.001370"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:09.389719" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:09.389886" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:09.389985" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:09.382338" elapsed="0.007672"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:09.390440" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:09.390111" elapsed="0.000417"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:09.393665" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:09.390752" elapsed="0.002989"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:09.390567" elapsed="0.003224"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:09.390091" elapsed="0.003732"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:09.393996" elapsed="0.000260"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:09.397727" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:09.394687" elapsed="0.003146">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:09.394522" elapsed="0.003414">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:09.394335" elapsed="0.003687">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:09.381903" elapsed="0.016360">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:09.368481" elapsed="0.029948">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:11.401299" level="INFO">@{expected_values} = [ "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-08-15T23:13:11.400331" elapsed="0.001041"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:13:11.402148" elapsed="0.000459"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:11.401558" elapsed="0.001137"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:11.401510" elapsed="0.001241"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:11.420990" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:11.421176" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:11.421287" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:11.413276" elapsed="0.008038"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:11.421835" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:11.421397" elapsed="0.000517"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:11.425075" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:11.422160" elapsed="0.002990"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:11.421950" elapsed="0.003248"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:11.421374" elapsed="0.003856"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:11.425400" elapsed="0.000236"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:11.429164" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:11.426086" elapsed="0.003192">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:11.425899" elapsed="0.003482">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:11.425715" elapsed="0.003822">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:11.412845" elapsed="0.016839">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:11.399366" elapsed="0.030451">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<msg time="2026-08-15T23:13:11.429943" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:11:39.960045" elapsed="91.470084">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:11.430381" elapsed="0.000031"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:13:11.431553" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-08-15T23:13:11.699472" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:13:11.699936" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:13:11.700100" 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-08-15T23:13:11.700201" 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-08-15T23:13:11.431308" elapsed="0.268950"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:11.701644" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:11.700807" elapsed="0.000934"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:13:11.702536" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-08-15T23:13:12.007452" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:13:12.007720" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:13:12.007817" 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-08-15T23:13:12.007908" 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-08-15T23:13:11.702131" elapsed="0.305828"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:13:12.008746" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-08-15T23:13:12.064896" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:13:12.065345" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-08-15T23:13:12.065447" level="INFO">${stderr} = </msg>
<msg time="2026-08-15T23:13:12.065540" 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-08-15T23:13:12.008363" elapsed="0.057350"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:13:12.066458" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-08-15T23:13:12.118705" 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-08-15T23:13:12.066186" elapsed="0.052662"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:12.138205" level="INFO">DELETE Request : url=http://10.30.171.84: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=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:12.138274" level="INFO">DELETE Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:12.138405" 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-08-15T23:13:12.119255" elapsed="0.019186"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:12.147499" level="INFO">DELETE Request : url=http://10.30.171.84: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=node01fna67bf0ku7x2e2iys3zhdrw1.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:12.147865" level="INFO">DELETE Response : url=http://10.30.171.84:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-08-15T23:13:12.148163" 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-08-15T23:13:12.138641" elapsed="0.009583"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-08-15T23:13:11.430846" elapsed="0.717554"/>
</kw>
<doc>Correct credentials should result to successful mount. CONNECTED should be the device status.</doc>
<status status="FAIL" start="2026-08-15T23:11:39.091733" elapsed="93.056790">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDGbSZ6hMM6NYxU/5mFkxHReZFiLvB1dW8Jf1vGddAZ3UVx/W1ou8y/7SFHsVcn24GQsQ60A92aSCj6wqEUQvkXxNh9pJhqZmg1lzj+3yHtGoCfnFi6uDOXTRH7QS00AVooKunE6D+h1aSPmADkWTnuO5MzTioGeBP+SqeMe9SMu2AxJJ9J0ZFKnM+XVdksIRt7iZAoNLv4DqsUZZgKsKM7wEkKMAlSVsNl25/7I4s6dN/tzaNJ4Re/qk+YeleH80q1oaxn+/nP3n2vhdpK2fcfutU/KPg3ZUy/SAxamL9PZkhftgd822gwrrip7Ja4xSprLr95+qxSkNaf/934WzVp","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-08-15T23:13:12.152775" level="INFO">Creating Session using : alias=session, url=http://10.30.171.84:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7a683ddc18d0&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-08-15T23:13:12.152398" elapsed="0.000602"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:13:12.153816" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-08-15T23:13:12.167153" 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-08-15T23:13:12.153516" elapsed="0.013782"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:13:12.167838" 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-08-15T23:13:12.523261" 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-08-15T23:13:12.167617" elapsed="0.355871"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:13:12.524372" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-08-15T23:13:12.574718" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:13:12.574989" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vh...</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-08-15T23:13:12.523993" elapsed="0.051126"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-08-15T23:13:12.585547" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vh...</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-08-15T23:13:12.575559" elapsed="0.010141"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-08-15T23:13:12.151771" elapsed="0.434095"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:13:12.621205" 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-08-15T23:13:12.586854" elapsed="0.034503"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:13:12.628987" 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-08-15T23:13:12.621712" elapsed="0.007381"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-08-15T23:13:12.586453" elapsed="0.042762"/>
</kw>
<kw name="Register global credentials for SSH call-home devices" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-08-15T23:13:12.630259" 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-08-15T23:13:12.630487" 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-08-15T23:13:12.629953" elapsed="0.000571"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:13:12.631166" 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-08-15T23:13:12.630732" elapsed="0.000484"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:13:12.631756" 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-08-15T23:13:12.631419" elapsed="0.000376"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:12.658759" level="INFO">PUT Request : url=http://10.30.171.84: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-08-15T23:13:12.658825" level="INFO">PUT Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 14-Aug-2026 23:13:12 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:12.658947" 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-08-15T23:13:12.631999" elapsed="0.026977"/>
</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-08-15T23:13:12.659175" elapsed="0.002293"/>
</kw>
<arg>root</arg>
<arg>root</arg>
<doc>Set global credentials for SSH call-home devices</doc>
<status status="PASS" start="2026-08-15T23:13:12.629488" elapsed="0.032047"/>
</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-08-15T23:13:12.668815" 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-08-15T23:13:12.668963" 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-08-15T23:13:12.668665" elapsed="0.000324"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-08-15T23:13:12.669498" 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-08-15T23:13:12.669170" elapsed="0.000370"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:12.668404" elapsed="0.001191"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:12.665227" elapsed="0.004391"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-08-15T23:13:12.669796" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:12.669648" elapsed="0.000195"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:12.665197" elapsed="0.004668"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:13:12.670276" 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-08-15T23:13:12.670021" elapsed="0.000282"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:13:12.670662" 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-08-15T23:13:12.670441" elapsed="0.000247"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:13:12.671126" 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-08-15T23:13:12.670872" elapsed="0.000280"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:13:12.671514" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQw...</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-08-15T23:13:12.671291" elapsed="0.000251"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:12.683842" level="INFO">POST Request : url=http://10.30.171.84: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=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"
        }
    }
}
 
 </msg>
<msg time="2026-08-15T23:13:12.683895" level="INFO">POST Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:12.683983" 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-08-15T23:13:12.671676" elapsed="0.012332"/>
</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-08-15T23:13:12.684181" elapsed="0.004318"/>
</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-08-15T23:13:12.661808" elapsed="0.026835"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:13:12.689381" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-08-15T23:13:12.955217" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:13:12.955549" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:13:12.955656" 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-08-15T23:13:12.955756" 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-08-15T23:13:12.688964" elapsed="0.266849"/>
</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-08-15T23:13:12.959600" level="INFO">@{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-08-15T23:13:12.958697" elapsed="0.000968"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:12.960501" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:12.959869" elapsed="0.000766"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:12.959817" elapsed="0.000879"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:12.978044" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:12.978258" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:12.978367" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:12.970919" elapsed="0.007473"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:12.978927" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:12.978478" elapsed="0.000527"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:12.982137" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:12.979234" elapsed="0.003042"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:12.979039" elapsed="0.003287"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:12.978454" elapsed="0.003903"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:12.982529" elapsed="0.000238"/>
</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-08-15T23:13:12.983240" elapsed="0.003067"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:12.983067" elapsed="0.003299"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:12.989705" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:12.986646" elapsed="0.003172">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:12.986483" elapsed="0.003441">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:12.982851" elapsed="0.007157">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:12.970500" elapsed="0.019677">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:12.957848" elapsed="0.032464">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:14.993411" level="INFO">@{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-08-15T23:13:14.992426" elapsed="0.001057"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:14.994317" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:14.993690" elapsed="0.000759"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:14.993636" elapsed="0.000874"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:15.012846" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:15.013105" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:15.013245" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:15.005573" elapsed="0.007770"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:15.013893" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:15.013456" elapsed="0.000519"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:15.017341" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:15.014208" elapsed="0.003206"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:15.014009" elapsed="0.003453"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:15.013429" elapsed="0.004064"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:15.017664" elapsed="0.000259"/>
</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-08-15T23:13:15.018391" elapsed="0.002941"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:15.018221" elapsed="0.003168"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:15.024160" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:15.021665" elapsed="0.002582">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:15.021502" elapsed="0.002825">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:15.018004" elapsed="0.006384">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:15.005150" elapsed="0.019346">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:14.991391" elapsed="0.033201">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:17.027621" level="INFO">@{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-08-15T23:13:17.026613" elapsed="0.001081"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:17.028500" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:17.027896" elapsed="0.000736"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:17.027842" elapsed="0.000851"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:17.045953" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:17.046234" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:17.046335" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:17.039070" elapsed="0.007291"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:17.046742" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:17.046440" elapsed="0.000358"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:17.049004" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:17.046973" elapsed="0.002097"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:17.046823" elapsed="0.002283"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:17.046421" elapsed="0.002707"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:17.049252" elapsed="0.000178"/>
</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-08-15T23:13:17.049757" elapsed="0.002227"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:17.049636" elapsed="0.002404"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:17.055312" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:17.052344" elapsed="0.003078">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:17.052182" elapsed="0.003345">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:17.049492" elapsed="0.006119">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:17.038468" elapsed="0.017288">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:17.025595" elapsed="0.030292">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:19.058789" level="INFO">@{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-08-15T23:13:19.057839" elapsed="0.001021"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:19.059782" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:19.059197" elapsed="0.000715"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:19.059145" elapsed="0.000825"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:19.077987" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:19.078186" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:19.078296" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:19.070042" elapsed="0.008280"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:19.078692" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:19.078400" elapsed="0.000348"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:19.080952" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:19.078901" elapsed="0.002103"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:19.078772" elapsed="0.002266"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:19.078381" elapsed="0.002694"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:19.081199" elapsed="0.000173"/>
</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-08-15T23:13:19.081695" elapsed="0.002937"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:19.081572" elapsed="0.003117"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:19.087951" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:19.084982" elapsed="0.003094">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:19.084802" elapsed="0.003381">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:19.081430" elapsed="0.006836">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:19.069463" elapsed="0.018948">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:19.056840" elapsed="0.031745">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:21.091485" level="INFO">@{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-08-15T23:13:21.090509" elapsed="0.001052"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:21.092410" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:21.091761" elapsed="0.000781"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:21.091710" elapsed="0.000888"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:21.108229" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:21.108426" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:21.108525" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:21.101403" elapsed="0.007148"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:21.108925" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:21.108628" elapsed="0.000354"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:21.112910" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:21.109149" elapsed="0.003813"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:21.109006" elapsed="0.003991"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:21.108609" elapsed="0.004411"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:21.113163" elapsed="0.000176"/>
</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-08-15T23:13:21.113660" elapsed="0.002104"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:21.113539" elapsed="0.002269"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:21.118808" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:21.116069" elapsed="0.002846">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:21.115927" elapsed="0.003090">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:21.113399" elapsed="0.005736">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:21.100978" elapsed="0.018377">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:21.089531" elapsed="0.029955">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:23.122315" level="INFO">@{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-08-15T23:13:23.121386" elapsed="0.001018"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:23.123252" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:23.122604" elapsed="0.000784"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:23.122553" elapsed="0.000889"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:23.142446" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:23.142758" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:23.143022" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:23.134149" elapsed="0.008963"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:23.143934" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:23.143290" elapsed="0.000796"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:23.148635" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:23.144423" elapsed="0.004287"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:23.144146" elapsed="0.004616"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:23.143247" 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-08-15T23:13:23.148977" elapsed="0.000272"/>
</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-08-15T23:13:23.149699" elapsed="0.003167"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:23.149526" elapsed="0.003410"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:23.156490" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:23.153265" elapsed="0.003335">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:23.153088" elapsed="0.003621">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:23.149330" elapsed="0.007534">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:23.133551" elapsed="0.023466">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:23.120439" elapsed="0.036744">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:25.159922" level="INFO">@{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-08-15T23:13:25.158998" elapsed="0.000998"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:25.160769" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:25.160220" elapsed="0.000678"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:25.160174" elapsed="0.000777"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:25.181128" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:25.181311" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:25.181427" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:25.172987" elapsed="0.008466"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:25.181827" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:25.181534" elapsed="0.000349"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:25.184109" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:25.182064" elapsed="0.002097"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:25.181908" elapsed="0.002287"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:25.181514" elapsed="0.002703"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:25.184337" elapsed="0.000171"/>
</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-08-15T23:13:25.184818" elapsed="0.002168"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:25.184697" elapsed="0.002371"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:25.190650" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:25.187364" elapsed="0.003395">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:25.187191" elapsed="0.003751">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:25.184564" elapsed="0.006469">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:25.172372" elapsed="0.018836">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:25.158132" elapsed="0.033217">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:27.194203" level="INFO">@{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-08-15T23:13:27.193283" elapsed="0.000992"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:27.195024" elapsed="0.000080"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:27.194465" elapsed="0.000725"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:27.194416" elapsed="0.000830"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:27.213434" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:27.213747" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:27.213966" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:27.205427" elapsed="0.008598"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:27.214872" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:27.214234" elapsed="0.000765"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:27.219394" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:27.215362" elapsed="0.004106"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:27.215083" elapsed="0.004435"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:27.214190" elapsed="0.005360"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:27.219723" elapsed="0.000237"/>
</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-08-15T23:13:27.220417" elapsed="0.003327"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:27.220251" elapsed="0.003553"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:27.227160" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:27.224108" elapsed="0.003227">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:27.223921" elapsed="0.003522">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:27.220039" elapsed="0.007490">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:27.204810" elapsed="0.022864">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:27.192330" elapsed="0.035480">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:29.230556" level="INFO">@{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-08-15T23:13:29.229646" elapsed="0.000980"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:29.231433" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:29.230813" elapsed="0.000750"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:29.230765" elapsed="0.000854"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:29.248551" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:29.248827" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:29.248969" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:29.241343" elapsed="0.007664"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:29.249563" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:29.249148" elapsed="0.000495"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:29.252852" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:29.249850" elapsed="0.003074"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:29.249677" elapsed="0.003296"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:29.249120" elapsed="0.003885"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:29.253238" elapsed="0.000314"/>
</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-08-15T23:13:29.253986" elapsed="0.003033"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:29.253819" elapsed="0.003277"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:29.260469" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:29.257381" elapsed="0.003206">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:29.257214" elapsed="0.003479">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:29.253631" elapsed="0.007145">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:29.240724" elapsed="0.020194">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:29.228712" elapsed="0.032338">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:31.262993" level="INFO">@{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-08-15T23:13:31.262558" elapsed="0.000469"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:31.263422" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:31.263156" elapsed="0.000324"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:31.263131" elapsed="0.000374"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:31.277154" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:31.277333" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:31.277452" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:31.270330" elapsed="0.007149"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:31.277953" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:31.277572" elapsed="0.000440"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:31.280250" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:31.278180" elapsed="0.002121"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:31.278038" elapsed="0.002298"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:31.277546" elapsed="0.002812"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:31.280482" elapsed="0.000172"/>
</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-08-15T23:13:31.280971" elapsed="0.002146"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:31.280847" elapsed="0.002323"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:31.285504" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:31.283369" elapsed="0.002213">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:31.283252" elapsed="0.002406">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:31.280711" elapsed="0.005007">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:31.269893" elapsed="0.015928">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:31.261877" elapsed="0.024039">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:33.288953" level="INFO">@{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-08-15T23:13:33.287970" elapsed="0.001055"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:33.289820" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:33.289254" elapsed="0.000695"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:33.289201" elapsed="0.000803"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:33.308856" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:33.309106" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:33.309211" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:33.301118" elapsed="0.008123"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:33.309621" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:33.309322" elapsed="0.000357"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:33.311908" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:33.309842" elapsed="0.002119"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:33.309704" elapsed="0.002292"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:33.309302" elapsed="0.002716"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:33.312158" elapsed="0.000179"/>
</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-08-15T23:13:33.312655" elapsed="0.002424"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:33.312535" elapsed="0.002586"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:33.318429" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:33.315420" elapsed="0.003114">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:33.315217" elapsed="0.003422">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:33.312397" elapsed="0.006328">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:33.300510" elapsed="0.018358">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:33.286929" elapsed="0.032072">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:35.321814" level="INFO">@{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-08-15T23:13:35.320873" elapsed="0.001012"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:35.322807" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:35.322212" elapsed="0.000724"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:35.322160" elapsed="0.000831"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:35.339740" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:35.339906" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:35.340005" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:35.333689" elapsed="0.006342"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:35.340485" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:35.340130" elapsed="0.000436"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:35.343781" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:35.340782" elapsed="0.003070"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:35.340600" elapsed="0.003300"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:35.340110" elapsed="0.003821"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:35.344122" elapsed="0.000239"/>
</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-08-15T23:13:35.344793" elapsed="0.003070"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:35.344622" elapsed="0.003299"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:35.351083" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:35.348221" elapsed="0.002941">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:35.348034" elapsed="0.003203">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:35.344438" elapsed="0.006865">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:35.333269" elapsed="0.018137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:35.319937" elapsed="0.031605">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:37.354367" level="INFO">@{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-08-15T23:13:37.353420" elapsed="0.001019"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:37.355214" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:37.354624" elapsed="0.000723"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:37.354576" elapsed="0.000826"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:37.374530" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:37.374694" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:37.374802" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:37.367142" elapsed="0.007686"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:37.375223" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:37.374907" elapsed="0.000374"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:37.377473" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:37.375432" elapsed="0.002092"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:37.375306" elapsed="0.002253"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:37.374888" elapsed="0.002693"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:37.377704" elapsed="0.000170"/>
</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-08-15T23:13:37.378198" elapsed="0.002148"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:37.378077" elapsed="0.002311"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:37.383282" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:37.380599" elapsed="0.002789">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:37.380470" elapsed="0.003022">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:37.377930" elapsed="0.005644">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:37.366531" elapsed="0.017249">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:37.352498" elapsed="0.031418">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:39.386762" level="INFO">@{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-08-15T23:13:39.385824" elapsed="0.001010"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:39.387674" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:39.387022" elapsed="0.000787"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:39.386972" elapsed="0.000892"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:39.404791" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:39.404948" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:39.405047" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:39.397259" elapsed="0.007835"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:39.405476" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:39.405173" elapsed="0.000360"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:39.407930" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:39.405685" elapsed="0.002296"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:39.405559" elapsed="0.002458"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:39.405154" elapsed="0.002885"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:39.408180" elapsed="0.000174"/>
</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-08-15T23:13:39.408662" elapsed="0.002111"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:39.408542" elapsed="0.002271"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:39.413896" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:39.411009" elapsed="0.002993">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:39.410893" elapsed="0.003234">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:39.408408" elapsed="0.005870">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:39.396661" elapsed="0.017765">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:39.384844" elapsed="0.029716">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:41.416557" level="INFO">@{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-08-15T23:13:41.415945" elapsed="0.000660"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:41.417142" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:41.416732" elapsed="0.000502"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:41.416696" elapsed="0.000580"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:41.431355" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:41.431528" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:41.431627" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:41.424131" elapsed="0.007522"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:41.432034" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:41.431732" elapsed="0.000376"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:41.434322" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:41.432257" elapsed="0.002118"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:41.432132" elapsed="0.002279"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:41.431713" elapsed="0.002720"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:41.434561" elapsed="0.000176"/>
</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-08-15T23:13:41.435096" elapsed="0.002124"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:41.434961" elapsed="0.002300"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:41.439585" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:41.437464" elapsed="0.002200">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:41.437342" elapsed="0.002450">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:41.434819" elapsed="0.005035">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:41.423695" elapsed="0.016261">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:41.415321" elapsed="0.024747">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:43.442974" level="INFO">@{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-08-15T23:13:43.442036" elapsed="0.001008"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:43.443815" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:43.443264" elapsed="0.000683"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:43.443216" elapsed="0.000783"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:43.462077" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:43.462245" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:43.462354" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:43.454227" elapsed="0.008153"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:43.462746" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:43.462458" elapsed="0.000344"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:43.464993" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:43.462964" elapsed="0.002080"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:43.462826" elapsed="0.002266"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:43.462440" elapsed="0.002675"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:43.465238" elapsed="0.000231"/>
</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-08-15T23:13:43.465785" elapsed="0.002920"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:43.465664" elapsed="0.003099"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:43.472072" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:43.469040" elapsed="0.003214">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:43.468876" elapsed="0.003485">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:43.465528" elapsed="0.006915">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:43.453619" elapsed="0.018967">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:43.441004" elapsed="0.031715">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:45.474804" level="INFO">@{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-08-15T23:13:45.474203" elapsed="0.000647"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:45.475365" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:45.474974" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:45.474942" elapsed="0.000539"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:45.492738" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:45.492945" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:45.493109" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:45.484515" elapsed="0.008632"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:45.493670" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:45.493261" elapsed="0.000487"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:45.497099" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:45.493961" elapsed="0.003212"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:45.493783" elapsed="0.003439"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:45.493235" elapsed="0.004018"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:45.497422" elapsed="0.000302"/>
</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-08-15T23:13:45.498168" elapsed="0.002938"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:45.497985" elapsed="0.003163"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:45.503471" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:45.501350" elapsed="0.002204">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:45.501232" elapsed="0.002401">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:45.497801" elapsed="0.005892">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:45.483914" elapsed="0.019883">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:45.473534" elapsed="0.030358">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:47.506612" level="INFO">@{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-08-15T23:13:47.505703" elapsed="0.000979"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:47.507499" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:47.506867" elapsed="0.000763"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:47.506819" elapsed="0.000865"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:47.525986" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:47.526161" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:47.526268" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:47.518335" elapsed="0.007959"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:47.526724" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:47.526371" elapsed="0.000415"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:47.528982" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:47.526937" elapsed="0.002097"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:47.526812" elapsed="0.002272"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:47.526352" elapsed="0.002755"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:47.529230" elapsed="0.000173"/>
</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-08-15T23:13:47.529711" elapsed="0.002129"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:47.529591" elapsed="0.002289"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:47.535138" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:47.532147" elapsed="0.003095">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:47.531961" elapsed="0.003383">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:47.529459" elapsed="0.005992">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:47.517742" elapsed="0.017851">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:47.504784" elapsed="0.030948">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:49.538628" level="INFO">@{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-08-15T23:13:49.537652" elapsed="0.001047"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:49.539521" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:49.538889" elapsed="0.000762"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:49.538839" elapsed="0.000867"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:49.558412" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:49.558633" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:49.558748" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:49.550546" elapsed="0.008231"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:49.559174" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:49.558864" elapsed="0.000368"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:49.561462" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:49.559415" elapsed="0.002100"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:49.559265" elapsed="0.002285"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:49.558841" elapsed="0.002732"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:49.561704" elapsed="0.000174"/>
</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-08-15T23:13:49.562209" elapsed="0.002906"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:49.562087" elapsed="0.003086"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:49.568466" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:49.565450" elapsed="0.003141">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:49.565287" elapsed="0.003421">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:49.561935" elapsed="0.006857">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:49.549895" elapsed="0.019039">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:49.536690" elapsed="0.032400">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:51.572192" level="INFO">@{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-08-15T23:13:51.571279" elapsed="0.000983"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:51.573168" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:51.572557" elapsed="0.000743"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:51.572509" elapsed="0.000847"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:51.590746" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:51.590981" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:51.591168" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:51.582596" elapsed="0.008620"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:51.591782" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:51.591331" elapsed="0.000538"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:51.595922" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:51.592232" elapsed="0.003772"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:51.591911" elapsed="0.004161"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:51.591304" elapsed="0.004827"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:51.596342" elapsed="0.000267"/>
</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-08-15T23:13:51.597148" elapsed="0.003426"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:51.596938" elapsed="0.003698"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:51.603753" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:51.600933" elapsed="0.002904">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:51.600759" elapsed="0.003156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:51.596707" elapsed="0.007269">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:51.582162" elapsed="0.021963">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:51.570344" elapsed="0.033925">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:53.608381" level="INFO">@{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-08-15T23:13:53.607346" elapsed="0.001115"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:53.609274" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:53.608655" elapsed="0.000702"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:53.608606" elapsed="0.000787"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:53.625389" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:53.625580" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:53.625678" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:53.618527" elapsed="0.007177"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:53.626167" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:53.625782" elapsed="0.000464"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:53.629321" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:53.626453" elapsed="0.002941"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:53.626282" elapsed="0.003160"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:53.625762" elapsed="0.003712"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:53.629642" elapsed="0.000238"/>
</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-08-15T23:13:53.630334" elapsed="0.003011"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:53.630169" elapsed="0.003233"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:53.635913" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:53.633714" elapsed="0.002287">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:53.633551" elapsed="0.002542">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:53.629959" elapsed="0.006196">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:53.618109" elapsed="0.018233">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:53.606251" elapsed="0.030189">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:55.639266" level="INFO">@{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-08-15T23:13:55.638344" elapsed="0.000995"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:55.640205" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:55.639526" elapsed="0.000812"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:55.639478" elapsed="0.000915"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:55.657008" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:55.657250" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:55.657401" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:55.649655" elapsed="0.007783"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:55.657958" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:55.657546" elapsed="0.000492"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:55.661227" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:55.658267" elapsed="0.003033"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:55.658095" elapsed="0.003253"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:55.657521" elapsed="0.003858"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:55.661548" elapsed="0.000236"/>
</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-08-15T23:13:55.662244" elapsed="0.003011"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:55.662053" elapsed="0.003243"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:55.667670" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:55.665496" elapsed="0.002251">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:55.665379" elapsed="0.002442">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:55.661860" elapsed="0.006081">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:55.649237" elapsed="0.018813">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:55.637400" elapsed="0.030764">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:57.670775" level="INFO">@{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-08-15T23:13:57.669862" elapsed="0.000981"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:57.671661" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:57.671027" elapsed="0.000765"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:57.670980" elapsed="0.000867"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:57.687763" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:57.687919" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:57.688016" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:57.680631" elapsed="0.007410"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:57.688609" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:57.688188" elapsed="0.000506"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:57.693681" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:57.688901" elapsed="0.004854"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:57.688730" elapsed="0.005074"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:57.688154" elapsed="0.005682"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:57.694006" elapsed="0.000261"/>
</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-08-15T23:13:57.694696" elapsed="0.002562"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:57.694529" elapsed="0.002769"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:57.699611" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:57.697497" elapsed="0.002192">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:57.697381" elapsed="0.002462">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:57.694345" elapsed="0.005564">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:57.680224" elapsed="0.019788">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:57.668944" elapsed="0.031180">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:13:59.703179" level="INFO">@{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-08-15T23:13:59.702278" elapsed="0.000974"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:13:59.703986" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:59.703439" elapsed="0.000708"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:59.703390" elapsed="0.000818"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:13:59.721543" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:13:59.721714" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:13:59.721818" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:13:59.713961" elapsed="0.007883"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:13:59.722317" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:13:59.721926" elapsed="0.000475"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:13:59.725698" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:13:59.722622" elapsed="0.003150"/>
</kw>
<status status="PASS" start="2026-08-15T23:13:59.722438" elapsed="0.003385"/>
</branch>
<status status="PASS" start="2026-08-15T23:13:59.721906" elapsed="0.003951"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:13:59.726036" elapsed="0.000278"/>
</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-08-15T23:13:59.726777" elapsed="0.003198"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:13:59.726598" elapsed="0.003437"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:13:59.732406" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:59.730294" elapsed="0.002253">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:13:59.730173" elapsed="0.002451">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:13:59.726399" elapsed="0.006285">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:13:59.713535" elapsed="0.019255">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:13:59.701382" elapsed="0.031504">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:01.735798" level="INFO">@{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-08-15T23:14:01.734846" elapsed="0.001024"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:01.736642" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:01.736088" elapsed="0.000681"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:01.736012" elapsed="0.000814"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:01.779302" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:01.779513" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:01.779672" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:01.771390" elapsed="0.008319"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:01.780326" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:01.779835" elapsed="0.000572"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:01.783494" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:01.780615" elapsed="0.002953"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:01.780443" elapsed="0.003175"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:01.779804" elapsed="0.003846"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:01.783822" 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-08-15T23:14:01.784630" elapsed="0.002949"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:01.784460" elapsed="0.003177"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:01.790931" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:01.787916" elapsed="0.003118">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:01.787752" elapsed="0.003407">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:01.784273" elapsed="0.006976">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:01.770856" elapsed="0.020534">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:01.733876" elapsed="0.057650">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:03.794377" level="INFO">@{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-08-15T23:14:03.793456" elapsed="0.000991"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:03.795214" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:03.794631" elapsed="0.000716"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:03.794584" elapsed="0.000817"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:03.812242" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:03.812413" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:03.812513" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:03.805313" elapsed="0.007226"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:03.812972" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:03.812617" elapsed="0.000412"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:03.816285" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:03.813226" elapsed="0.003132"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:03.813096" elapsed="0.003311"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:03.812598" elapsed="0.003841"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:03.816609" elapsed="0.000237"/>
</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-08-15T23:14:03.817315" elapsed="0.002946"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:03.817145" elapsed="0.003173"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:03.823270" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:03.820599" elapsed="0.002749">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:03.820434" elapsed="0.002987">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:03.816922" elapsed="0.006558">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:03.804681" elapsed="0.018900">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:03.792447" elapsed="0.031230">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:05.826556" level="INFO">@{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-08-15T23:14:05.825559" elapsed="0.001068"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:05.827416" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:05.826817" elapsed="0.000733"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:05.826769" elapsed="0.000837"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:05.845847" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:05.846092" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:05.846193" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:05.837982" elapsed="0.008237"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:05.846693" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:05.846299" elapsed="0.000475"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:05.849899" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:05.846984" elapsed="0.002989"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:05.846809" elapsed="0.003216"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:05.846280" elapsed="0.003797"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:05.850257" elapsed="0.000245"/>
</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-08-15T23:14:05.850936" elapsed="0.003082"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:05.850768" elapsed="0.003328"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:05.856565" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:05.854378" elapsed="0.002266">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:05.854214" elapsed="0.002506">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:05.850580" elapsed="0.006201">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:05.837542" elapsed="0.019342">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:05.824621" elapsed="0.032360">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:07.859681" level="INFO">@{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-08-15T23:14:07.858716" elapsed="0.001034"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:07.860631" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:07.860039" elapsed="0.000723"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:07.859988" elapsed="0.000830"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:07.882215" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:07.882446" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:07.882620" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:07.871279" elapsed="0.011380"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:07.883311" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:07.882787" elapsed="0.000612"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:07.887874" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:07.883630" elapsed="0.004356"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:07.883440" elapsed="0.004650"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:07.882756" elapsed="0.005387"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:07.888414" 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-08-15T23:14:07.889578" elapsed="0.003852"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:07.889288" elapsed="0.004184"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:07.895855" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:07.893676" elapsed="0.002257">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:07.893557" elapsed="0.002449">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:07.888946" elapsed="0.007139">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:07.870823" elapsed="0.025370">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:07.857805" elapsed="0.038569">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:09.899210" level="INFO">@{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-08-15T23:14:09.898293" elapsed="0.000990"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:09.900019" elapsed="0.000122"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:09.899466" elapsed="0.000758"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:09.899418" elapsed="0.000862"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:09.918363" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:09.918546" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:09.918689" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:09.910298" elapsed="0.008427"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:09.919271" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:09.918834" elapsed="0.000523"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:09.922722" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:09.919598" elapsed="0.003195"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:09.919402" elapsed="0.003439"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:09.918807" elapsed="0.004065"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:09.923038" elapsed="0.000257"/>
</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-08-15T23:14:09.923723" elapsed="0.002929"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:09.923557" elapsed="0.003136"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:09.929023" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:09.926894" elapsed="0.002224">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:09.926776" elapsed="0.002417">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:09.923372" elapsed="0.005883">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:09.909666" elapsed="0.019746">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:09.897326" elapsed="0.032183">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:11.932392" level="INFO">@{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-08-15T23:14:11.931469" elapsed="0.000992"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:11.933232" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:11.932649" elapsed="0.000714"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:11.932599" elapsed="0.000819"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:11.950853" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:11.951014" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:11.951152" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:11.943302" elapsed="0.007880"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:11.951575" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:11.951261" elapsed="0.000397"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:11.954682" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:11.951864" elapsed="0.002889"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:11.951693" elapsed="0.003107"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:11.951241" elapsed="0.003590"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:11.954997" elapsed="0.000283"/>
</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-08-15T23:14:11.955723" elapsed="0.003107"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:11.955556" elapsed="0.003339"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:11.961846" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:11.959260" elapsed="0.002669">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:11.959030" elapsed="0.002974">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:11.955357" elapsed="0.006777">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:11.942873" elapsed="0.019369">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:11.930464" elapsed="0.031873">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:13.965242" level="INFO">@{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-08-15T23:14:13.964271" elapsed="0.001043"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:13.966114" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:13.965508" elapsed="0.000748"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:13.965458" elapsed="0.000857"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:13.984218" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:13.984454" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:13.984634" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:13.976581" elapsed="0.008092"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:13.985308" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:13.984806" elapsed="0.000588"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:13.988946" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:13.985620" elapsed="0.003422"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:13.985434" elapsed="0.003707"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:13.984771" elapsed="0.004414"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:13.989387" elapsed="0.000258"/>
</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-08-15T23:14:13.990151" elapsed="0.002705"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:13.989937" elapsed="0.002963"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:13.995290" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:13.993117" elapsed="0.002260">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:13.992984" elapsed="0.002532">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:13.989735" elapsed="0.005844">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:13.976113" elapsed="0.019576">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:13.963299" elapsed="0.032487">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:15.998677" level="INFO">@{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-08-15T23:14:15.997753" elapsed="0.000995"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:15.999539" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:15.998934" elapsed="0.000741"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:15.998887" elapsed="0.000843"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:16.020607" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:16.020819" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:16.020958" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:16.012518" elapsed="0.008477"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:16.021549" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:16.021135" elapsed="0.000510"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:16.024952" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:16.021860" elapsed="0.003163"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:16.021681" elapsed="0.003410"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:16.021107" elapsed="0.004016"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:16.025292" elapsed="0.000236"/>
</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-08-15T23:14:16.025984" elapsed="0.002944"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:16.025818" elapsed="0.003167"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:16.032294" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:16.029286" elapsed="0.003190">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:16.029122" elapsed="0.003462">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:16.025604" elapsed="0.007068">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:16.012101" elapsed="0.020718">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:15.996753" elapsed="0.036200">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:18.035902" level="INFO">@{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-08-15T23:14:18.034875" elapsed="0.001103"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:18.036814" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:18.036214" elapsed="0.000738"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:18.036160" elapsed="0.000853"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:18.055431" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:18.055601" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:18.055700" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:18.047513" elapsed="0.008213"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:18.056279" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:18.055809" elapsed="0.000551"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:18.059471" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:18.056568" elapsed="0.002973"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:18.056396" elapsed="0.003192"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:18.055785" elapsed="0.003835"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:18.059788" 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-08-15T23:14:18.060555" elapsed="0.002968"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:18.060388" elapsed="0.003191"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:18.066061" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:18.063866" elapsed="0.002277">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:18.063694" elapsed="0.002524">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:18.060198" elapsed="0.006081">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:18.047088" elapsed="0.019295">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:18.033882" elapsed="0.032596">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:20.069364" level="INFO">@{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-08-15T23:14:20.068374" elapsed="0.001059"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:20.070258" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:20.069626" elapsed="0.000766"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:20.069573" elapsed="0.000875"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:20.089757" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:20.089942" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:20.090122" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:20.082997" elapsed="0.007164"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:20.090741" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:20.090268" elapsed="0.000553"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:20.094029" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:20.091029" elapsed="0.003092"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:20.090857" elapsed="0.003313"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:20.090242" elapsed="0.003960"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:20.094373" elapsed="0.000237"/>
</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-08-15T23:14:20.095033" elapsed="0.002936"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:20.094868" elapsed="0.003159"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:20.101206" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:20.098324" elapsed="0.002958">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:20.098161" elapsed="0.003193">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:20.094686" elapsed="0.006726">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:20.082578" elapsed="0.018936">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:20.067438" elapsed="0.034171">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:22.103599" level="INFO">@{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-08-15T23:14:22.102976" elapsed="0.000670"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:22.104164" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:22.103776" elapsed="0.000473"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:22.103742" elapsed="0.000546"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:22.119493" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:22.119770" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:22.119911" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:22.112649" elapsed="0.007299"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:22.120494" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:22.120081" elapsed="0.000492"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:22.123900" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:22.120781" elapsed="0.003194"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:22.120608" elapsed="0.003420"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:22.120033" elapsed="0.004047"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:22.124254" elapsed="0.000240"/>
</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-08-15T23:14:22.124918" elapsed="0.003024"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:22.124754" elapsed="0.003245"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:22.130938" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:22.128296" elapsed="0.002726">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:22.128132" elapsed="0.002982">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:22.124571" elapsed="0.006604">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:22.112230" elapsed="0.019045">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:22.102336" elapsed="0.029032">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:24.133388" level="INFO">@{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-08-15T23:14:24.132722" elapsed="0.000716"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:24.134213" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:24.133690" elapsed="0.000634"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:24.133643" elapsed="0.000730"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:24.154755" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:24.154970" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:24.155136" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:24.145255" elapsed="0.009914"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:24.155635" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:24.155277" elapsed="0.000418"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:24.160307" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:24.155854" elapsed="0.004631"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:24.155724" elapsed="0.004879"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:24.155248" 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-08-15T23:14:24.161147" elapsed="0.000483"/>
</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-08-15T23:14:24.162285" elapsed="0.003239"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:24.162099" elapsed="0.003483"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:24.169337" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:24.165885" elapsed="0.003533">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:24.165700" elapsed="0.003804">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:24.161767" elapsed="0.007824">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:24.144532" elapsed="0.025185">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:24.132047" elapsed="0.037831">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:26.172725" level="INFO">@{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-08-15T23:14:26.171798" elapsed="0.000998"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:26.173573" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:26.172982" elapsed="0.000723"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:26.172935" elapsed="0.000826"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:26.190150" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:26.190365" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:26.190514" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:26.183449" elapsed="0.007103"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:26.191122" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:26.190689" elapsed="0.000519"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:26.194248" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:26.191413" elapsed="0.002907"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:26.191242" elapsed="0.003127"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:26.190655" elapsed="0.003745"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:26.194584" elapsed="0.000243"/>
</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-08-15T23:14:26.195281" elapsed="0.003002"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:26.195112" elapsed="0.003230"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:26.200965" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:26.198658" elapsed="0.002384">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:26.198457" elapsed="0.002676">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:26.194906" elapsed="0.006289">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:26.183008" elapsed="0.018375">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:26.170811" elapsed="0.030670">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:28.204293" level="INFO">@{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-08-15T23:14:28.203364" elapsed="0.001001"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:28.205143" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:28.204555" elapsed="0.000724"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:28.204505" elapsed="0.000830"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:28.222880" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:28.223086" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:28.223189" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:28.215644" elapsed="0.007572"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:28.223591" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:28.223293" elapsed="0.000354"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:28.226004" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:28.223797" elapsed="0.002273"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:28.223672" elapsed="0.002434"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:28.223274" elapsed="0.002855"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:28.226250" elapsed="0.000172"/>
</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-08-15T23:14:28.226734" elapsed="0.002402"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:28.226614" elapsed="0.002579"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:28.232468" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:28.229472" elapsed="0.003107">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:28.229307" elapsed="0.003374">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:28.226479" elapsed="0.006368">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:28.214884" elapsed="0.018113">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:28.202387" elapsed="0.030766">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:30.236029" level="INFO">@{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-08-15T23:14:30.235141" elapsed="0.001037"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:30.236940" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:30.236380" elapsed="0.000720"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:30.236331" elapsed="0.000829"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:30.254175" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:30.254336" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:30.254436" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:30.246220" elapsed="0.008242"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:30.254838" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:30.254542" elapsed="0.000353"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:30.257145" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:30.255044" elapsed="0.002154"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:30.254920" elapsed="0.002313"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:30.254523" elapsed="0.002733"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:30.257380" elapsed="0.000171"/>
</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-08-15T23:14:30.257863" elapsed="0.002357"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:30.257744" elapsed="0.002517"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:30.263492" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:30.260545" elapsed="0.003051">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:30.260383" elapsed="0.003384">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:30.257609" elapsed="0.006479">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:30.245624" elapsed="0.018618">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:30.234183" elapsed="0.030194">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:32.267106" level="INFO">@{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-08-15T23:14:32.266210" 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-08-15T23:14:32.267908" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:32.267361" elapsed="0.000675"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:32.267314" elapsed="0.000805"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:32.287629" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:32.287804" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:32.287931" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:32.279960" elapsed="0.007998"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:32.288477" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:32.288075" elapsed="0.000487"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:32.291869" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:32.288786" elapsed="0.003158"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:32.288600" elapsed="0.003394"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:32.288031" elapsed="0.003995"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:32.292229" elapsed="0.000264"/>
</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-08-15T23:14:32.292951" elapsed="0.003161"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:32.292770" elapsed="0.003404"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:32.298934" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:32.296501" elapsed="0.002594">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:32.296328" elapsed="0.002845">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:32.292574" elapsed="0.006657">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:32.279489" elapsed="0.019849">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:32.265314" elapsed="0.034120">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:34.302179" level="INFO">@{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-08-15T23:14:34.301265" 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="NOT RUN" start="2026-08-15T23:14:34.303007" elapsed="0.000078"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:34.302447" elapsed="0.000766"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:34.302399" elapsed="0.000873"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:34.323678" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:34.323841" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:34.323939" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:34.316460" elapsed="0.007506"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:34.324362" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:34.324044" elapsed="0.000390"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:34.327749" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:34.324645" elapsed="0.003176"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:34.324472" elapsed="0.003399"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:34.324025" elapsed="0.003877"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:34.328091" elapsed="0.000306"/>
</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-08-15T23:14:34.328823" elapsed="0.002957"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:34.328658" elapsed="0.003178"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:34.335176" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:34.332135" elapsed="0.003150">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:34.331950" elapsed="0.003439">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:34.328474" elapsed="0.006979">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:34.316034" elapsed="0.019525">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:34.300343" elapsed="0.035310">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:36.338408" level="INFO">@{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-08-15T23:14:36.337440" elapsed="0.001036"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:36.339229" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:36.338655" elapsed="0.000702"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:36.338609" elapsed="0.000802"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:36.357739" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:36.357905" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:36.358003" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:36.348707" elapsed="0.009322"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:36.358479" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:36.358129" elapsed="0.000437"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:36.361849" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:36.358788" elapsed="0.003137"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:36.358604" elapsed="0.003372"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:36.358109" elapsed="0.003900"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:36.362210" elapsed="0.000249"/>
</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-08-15T23:14:36.362908" elapsed="0.003210"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:36.362734" elapsed="0.003446"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:36.369354" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:36.366474" elapsed="0.002958">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:36.366300" elapsed="0.003211">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:36.362542" elapsed="0.007029">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:36.348292" elapsed="0.021383">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:36.336553" elapsed="0.033219">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:38.372631" level="INFO">@{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-08-15T23:14:38.371711" elapsed="0.000992"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:38.373484" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:38.372890" elapsed="0.000725"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:38.372843" elapsed="0.000828"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:38.393513" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:38.393736" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:38.393848" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:38.385211" elapsed="0.008664"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:38.394304" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:38.393957" elapsed="0.000406"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:38.396552" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:38.394513" elapsed="0.002090"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:38.394388" elapsed="0.002250"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:38.393937" elapsed="0.002723"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:38.396782" elapsed="0.000170"/>
</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-08-15T23:14:38.397282" elapsed="0.002222"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:38.397161" elapsed="0.002399"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:38.402836" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:38.399835" elapsed="0.003106">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:38.399674" elapsed="0.003369">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:38.397008" elapsed="0.006140">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:38.384604" elapsed="0.018685">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:38.370748" elapsed="0.032672">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:40.407031" level="INFO">@{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-08-15T23:14:40.406104" elapsed="0.001031"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:40.408108" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:40.407508" elapsed="0.000734"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:40.407457" elapsed="0.000840"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:40.427799" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:40.428024" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:40.428190" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:40.420637" elapsed="0.007588"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:40.428737" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:40.428333" elapsed="0.000482"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:40.431962" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:40.429026" elapsed="0.003010"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:40.428852" elapsed="0.003253"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:40.428307" elapsed="0.003831"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:40.432310" elapsed="0.000242"/>
</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-08-15T23:14:40.432993" elapsed="0.003258"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:40.432824" elapsed="0.003485"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:40.439399" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:40.436589" elapsed="0.002906">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:40.436425" elapsed="0.003150">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:40.432633" elapsed="0.007003">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:40.420223" elapsed="0.019543">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:40.405003" elapsed="0.034927">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:42.442952" level="INFO">@{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-08-15T23:14:42.441861" elapsed="0.001163"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:42.443815" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:42.443249" elapsed="0.000698"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:42.443199" elapsed="0.000802"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:42.463517" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:42.463688" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:42.463792" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:42.455608" elapsed="0.008210"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:42.464233" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:42.463901" elapsed="0.000389"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:42.466504" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:42.464442" elapsed="0.002113"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:42.464315" elapsed="0.002275"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:42.463880" elapsed="0.002732"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:42.466735" elapsed="0.000170"/>
</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-08-15T23:14:42.467237" elapsed="0.002126"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:42.467115" elapsed="0.002288"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:42.472191" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:42.469603" elapsed="0.002693">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:42.469486" elapsed="0.002913">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:42.466963" elapsed="0.005519">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:42.454964" elapsed="0.017730">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:42.440893" elapsed="0.031937">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:44.475688" level="INFO">@{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-08-15T23:14:44.474688" elapsed="0.001072"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:14:44.476545" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:44.475953" elapsed="0.000724"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:44.475904" elapsed="0.000827"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:44.497920" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:44.498248" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:44.498468" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:44.490343" elapsed="0.008171"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:44.499322" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:44.498678" elapsed="0.000744"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:44.503561" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:44.499707" elapsed="0.003948"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:44.499469" elapsed="0.004247"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:44.498635" elapsed="0.005122"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:44.503982" elapsed="0.000320"/>
</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-08-15T23:14:44.504855" elapsed="0.003676"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:14:44.504628" elapsed="0.003953"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:44.511531" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:44.508826" elapsed="0.002804">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-08-15T23:14:44.508678" elapsed="0.003045">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:44.504400" elapsed="0.007498">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:44.489898" elapsed="0.022139">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:44.473753" elapsed="0.038441">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<msg time="2026-08-15T23:14:44.512317" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:13:12.956341" elapsed="91.556107">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:44.512671" elapsed="0.000027"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:14:44.513765" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-08-15T23:14:44.791369" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:14:44.791811" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:14:44.791931" 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-08-15T23:14:44.792037" 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-08-15T23:14:44.513543" elapsed="0.278600"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:44.793360" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:44.792616" elapsed="0.000849"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:14:44.794239" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-08-15T23:14:45.112597" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:14:45.112955" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:14:45.113089" 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-08-15T23:14:45.113194" 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-08-15T23:14:44.793802" elapsed="0.319446"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:14:45.114203" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-08-15T23:14:45.169760" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:14:45.170134" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-08-15T23:14:45.170266" level="INFO">${stderr} = </msg>
<msg time="2026-08-15T23:14:45.170365" 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-08-15T23:14:45.113713" elapsed="0.056707"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:14:45.171134" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-08-15T23:14:45.223563" 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-08-15T23:14:45.170833" elapsed="0.052871"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:45.238577" level="INFO">DELETE Request : url=http://10.30.171.84: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=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:45.238720" level="INFO">DELETE Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:45.238895" 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-08-15T23:14:45.224033" elapsed="0.014932"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:45.246926" level="INFO">DELETE Request : url=http://10.30.171.84: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=node01cdxeb39fhhehgik9vrx3hpu42.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:45.247357" level="INFO">DELETE Response : url=http://10.30.171.84:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-08-15T23:14:45.247670" 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-08-15T23:14:45.239370" elapsed="0.008376"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-08-15T23:14:44.513141" elapsed="0.734813"/>
</kw>
<doc>CallHome SSH device registered with global credentials should result to successful mount.</doc>
<status status="FAIL" start="2026-08-15T23:13:12.149766" elapsed="93.098371">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCLMcCuvSDPV9aTIvpQtEh1mORivilssH589hkUsA/W9bG3X90NaMrNyp8ADjQwVRTGikg83gYaNcZ5NhclpxptCF2oZy7SyRQ8+QVDwoME1w2Mn8gAfeQFz14ueeRE6ylTax2zzqvJsQVapN/DAxscCCRwdkWqy/TK70J0P0vhSUHCd440bM7P0UspOM7J82a6gIGnvbNHovh4VJl3voc9Rm0XLbXWZ6QGNN9G1ZMgkjKdlhcJ/BIpfF/KIz91LEcPy70oxm181XpFA0XtA6I6eu2WVdF690yTbs9gQ/QnPw+hCqOGjErCJ+MGbHFKYaRrZegJyaKL0wFrixSo4p6L"}}]}}}' 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-08-15T23:14:45.250541" level="INFO">Creating Session using : alias=session, url=http://10.30.171.84:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7a683eed8f90&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-08-15T23:14:45.250162" elapsed="0.000590"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:14:45.251116" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-08-15T23:14:45.271098" 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-08-15T23:14:45.250954" elapsed="0.020282"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:14:45.271768" 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-08-15T23:14:45.613089" 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-08-15T23:14:45.271548" elapsed="0.341760"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:14:45.614014" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-08-15T23:14:45.667681" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:14:45.667940" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0...</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-08-15T23:14:45.613739" elapsed="0.054264"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-08-15T23:14:45.675977" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0...</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-08-15T23:14:45.668441" elapsed="0.007605"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-08-15T23:14:45.249639" elapsed="0.426518"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:14:45.713832" 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-08-15T23:14:45.676785" elapsed="0.037180"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:14:45.721499" 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-08-15T23:14:45.714328" elapsed="0.007252"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-08-15T23:14:45.676406" elapsed="0.045261"/>
</kw>
<kw name="Register global credentials for SSH call-home devices" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-08-15T23:14:45.722661" 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-08-15T23:14:45.722849" 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-08-15T23:14:45.722435" elapsed="0.000450"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:14:45.723439" 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-08-15T23:14:45.723105" elapsed="0.000370"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:14:45.723980" 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-08-15T23:14:45.723668" elapsed="0.000347"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:45.799488" level="INFO">PUT Request : url=http://10.30.171.84: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-08-15T23:14:45.799628" level="INFO">PUT Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 status=204, reason=No Content 
 headers={'Set-Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 14-Aug-2026 23:14:45 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT'} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:45.799892" 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-08-15T23:14:45.724219" elapsed="0.075734"/>
</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-08-15T23:14:45.800407" elapsed="0.004936"/>
</kw>
<arg>root</arg>
<arg>incorrect</arg>
<doc>Set global credentials for SSH call-home devices</doc>
<status status="PASS" start="2026-08-15T23:14:45.721970" elapsed="0.083528"/>
</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-08-15T23:14:45.815225" 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-08-15T23:14:45.815385" 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-08-15T23:14:45.815063" elapsed="0.000348"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-08-15T23:14:45.815897" 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-08-15T23:14:45.815564" elapsed="0.000376"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:45.814782" elapsed="0.001213"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:45.811587" elapsed="0.004432"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-08-15T23:14:45.816210" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:45.816047" elapsed="0.000212"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:45.811561" elapsed="0.004719"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:14:45.816649" 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-08-15T23:14:45.816407" elapsed="0.000269"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:14:45.817037" 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-08-15T23:14:45.816815" elapsed="0.000276"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:14:45.817456" 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-08-15T23:14:45.817232" elapsed="0.000250"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:14:45.817840" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWk...</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-08-15T23:14:45.817619" elapsed="0.000247"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:45.900619" level="INFO">POST Request : url=http://10.30.171.84: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=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"
        }
    }
}
 
 </msg>
<msg time="2026-08-15T23:14:45.900835" level="INFO">POST Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:45.901106" 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-08-15T23:14:45.817997" elapsed="0.083171"/>
</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-08-15T23:14:45.901519" elapsed="0.004702"/>
</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-08-15T23:14:45.806108" elapsed="0.100261"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:14:45.907136" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-08-15T23:14:46.172933" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:14:46.173399" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:14:46.173503" 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-08-15T23:14:46.173598" 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-08-15T23:14:45.906687" elapsed="0.266964"/>
</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-08-15T23:14:46.177661" level="INFO">@{expected_values} = [ "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-08-15T23:14:46.176514" elapsed="0.001216"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:14:46.178574" elapsed="0.000713"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:46.177921" elapsed="0.001535"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:46.177868" elapsed="0.001699"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:46.197451" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:46.197707" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:46.197892" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:46.190732" elapsed="0.007197"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:46.198521" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:46.198073" elapsed="0.000528"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:46.201919" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:46.198813" elapsed="0.003179"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:46.198636" elapsed="0.003405"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:46.198022" elapsed="0.004073"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:46.202272" elapsed="0.000238"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:46.206287" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:14:46.202953" elapsed="0.003441">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:14:46.202778" elapsed="0.003791">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:46.202590" elapsed="0.004072">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:46.190239" elapsed="0.016570">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:46.175665" elapsed="0.031281">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:48.209901" level="INFO">@{expected_values} = [ "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-08-15T23:14:48.208960" elapsed="0.001012"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:14:48.210972" elapsed="0.000536"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:48.210192" elapsed="0.001406"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:48.210143" elapsed="0.001511"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:48.229147" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:48.229332" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:48.229435" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:48.222113" elapsed="0.007347"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:48.229841" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:48.229539" elapsed="0.000359"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:48.232167" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:48.230070" elapsed="0.002150"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:48.229926" elapsed="0.002329"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:48.229519" elapsed="0.002758"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:48.232402" elapsed="0.000204"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:48.235611" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:14:48.232955" elapsed="0.002842">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:14:48.232822" elapsed="0.003086">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:48.232671" elapsed="0.003325">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:48.221509" elapsed="0.014657">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:48.207901" elapsed="0.028402">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:50.239306" level="INFO">@{expected_values} = [ "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-08-15T23:14:50.238362" elapsed="0.001029"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:14:50.240415" elapsed="0.000698"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:50.239629" elapsed="0.001558"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:50.239569" elapsed="0.001666"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:50.258297" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:50.258615" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:50.258840" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:50.251206" elapsed="0.007692"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:50.259799" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:50.259115" elapsed="0.000811"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:50.264991" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:50.260289" elapsed="0.004818"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:50.259981" elapsed="0.005179"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:50.259039" elapsed="0.006156"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:50.265450" elapsed="0.000253"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:50.269420" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:14:50.266192" elapsed="0.003338">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:14:50.265984" elapsed="0.003653">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:50.265787" elapsed="0.003940">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:50.250517" elapsed="0.019361">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:50.237415" elapsed="0.032615">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:52.273257" level="INFO">@{expected_values} = [ "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-08-15T23:14:52.272303" elapsed="0.001037"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:14:52.274127" elapsed="0.000482"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:52.273533" elapsed="0.001165"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:52.273483" elapsed="0.001311"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:52.291872" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:52.292070" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:52.292184" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:52.284437" elapsed="0.007772"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:52.292581" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:52.292288" elapsed="0.000351"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:52.294932" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:52.292859" elapsed="0.002125"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:52.292729" elapsed="0.002291"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:52.292269" elapsed="0.002798"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:52.295247" elapsed="0.000358"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:52.299034" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:14:52.296032" elapsed="0.003129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:14:52.295867" elapsed="0.003398">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:52.295682" elapsed="0.003666">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:52.283715" elapsed="0.015773">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:52.271302" elapsed="0.028318">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:54.302561" level="INFO">@{expected_values} = [ "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-08-15T23:14:54.301596" elapsed="0.001037"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:14:54.303442" elapsed="0.000467"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:54.302834" elapsed="0.001163"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:54.302781" elapsed="0.001306"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:54.323484" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:54.323679" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:54.323878" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:54.315602" elapsed="0.008303"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:54.324352" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:54.323998" elapsed="0.000411"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:54.326675" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:54.324561" elapsed="0.002166"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:54.324435" elapsed="0.002327"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:54.323975" elapsed="0.002809"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:54.326907" elapsed="0.000192"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:54.329867" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:14:54.327432" elapsed="0.002521">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:14:54.327307" elapsed="0.002725">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:54.327163" elapsed="0.002960">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:54.314942" elapsed="0.015341">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:54.300558" elapsed="0.029861">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:56.333794" level="INFO">@{expected_values} = [ "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-08-15T23:14:56.332812" elapsed="0.001055"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:14:56.334658" elapsed="0.000490"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:56.334087" elapsed="0.001150"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:56.334008" elapsed="0.001286"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:56.352471" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:56.352700" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:56.352800" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:56.345075" elapsed="0.007751"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:56.353222" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:56.352905" elapsed="0.000374"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:56.355462" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:56.353429" elapsed="0.002085"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:56.353305" elapsed="0.002244"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:56.352886" elapsed="0.002686"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:56.355694" elapsed="0.000169"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:56.358825" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:14:56.356223" elapsed="0.002707">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:14:56.356102" elapsed="0.002931">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:56.355919" elapsed="0.003222">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:56.344482" elapsed="0.014802">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:56.331738" elapsed="0.027681">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:14:58.362401" level="INFO">@{expected_values} = [ "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-08-15T23:14:58.361416" elapsed="0.001063"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:14:58.363334" elapsed="0.000656"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:58.362682" elapsed="0.001442"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:58.362630" elapsed="0.001558"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:14:58.382330" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:14:58.382566" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:14:58.382719" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:14:58.375392" elapsed="0.007364"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:14:58.383342" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:14:58.382871" elapsed="0.000554"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:14:58.386602" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:14:58.383636" elapsed="0.003038"/>
</kw>
<status status="PASS" start="2026-08-15T23:14:58.383461" elapsed="0.003262"/>
</branch>
<status status="PASS" start="2026-08-15T23:14:58.382842" elapsed="0.003912"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:14:58.386950" elapsed="0.000286"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:14:58.390831" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:14:58.387699" elapsed="0.003241">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:14:58.387523" elapsed="0.003580">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:14:58.387317" elapsed="0.003883">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:14:58.374903" elapsed="0.016466">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:14:58.360409" elapsed="0.031071">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:00.394373" level="INFO">@{expected_values} = [ "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-08-15T23:15:00.393346" elapsed="0.001106"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:00.395409" elapsed="0.000453"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:00.394810" elapsed="0.001138"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:00.394761" elapsed="0.001242"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:00.415907" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:00.416099" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:00.416199" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:00.408472" elapsed="0.007754"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:00.416729" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:00.416306" elapsed="0.000510"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:00.420253" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:00.417091" elapsed="0.003239"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:00.416853" elapsed="0.003530"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:00.416287" elapsed="0.004132"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:00.420600" elapsed="0.000250"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:00.424874" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:00.421329" elapsed="0.003658">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:00.421153" elapsed="0.003967">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:00.420933" elapsed="0.004282">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:00.408028" elapsed="0.017337">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:00.392425" elapsed="0.033151">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:02.428426" level="INFO">@{expected_values} = [ "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-08-15T23:15:02.427463" elapsed="0.001041"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:02.429366" elapsed="0.000503"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:02.428696" elapsed="0.001264"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:02.428647" elapsed="0.001368"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:02.450616" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:02.450838" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:02.450986" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:02.443213" elapsed="0.007813"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:02.451679" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:02.451182" elapsed="0.000597"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:02.455300" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:02.452035" elapsed="0.003341"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:02.451823" elapsed="0.003616"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:02.451145" elapsed="0.004337"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:02.455671" elapsed="0.000258"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:02.460141" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:02.456415" elapsed="0.003839">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:02.456237" elapsed="0.004127">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:02.456012" elapsed="0.004443">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:02.442750" elapsed="0.017938">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:02.426517" elapsed="0.034321">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:04.463772" level="INFO">@{expected_values} = [ "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-08-15T23:15:04.462842" elapsed="0.001001"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:04.464605" elapsed="0.000323"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:04.464025" elapsed="0.000963"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:04.463979" elapsed="0.001050"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:04.482986" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:04.483176" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:04.483313" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:04.475268" elapsed="0.008074"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:04.483782" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:04.483440" elapsed="0.000402"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:04.486167" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:04.484000" elapsed="0.002221"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:04.483868" elapsed="0.002389"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:04.483414" elapsed="0.002866"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:04.486406" elapsed="0.000198"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:04.489524" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:04.486937" elapsed="0.002702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:04.486805" elapsed="0.002957">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:04.486664" elapsed="0.003270">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:04.474595" elapsed="0.015519">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:04.461850" elapsed="0.028412">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:06.492926" level="INFO">@{expected_values} = [ "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-08-15T23:15:06.492095" elapsed="0.000896"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:06.493690" elapsed="0.000440"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:06.493187" elapsed="0.001016"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:06.493140" elapsed="0.001110"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:06.507924" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:06.508105" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:06.508207" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:06.501397" elapsed="0.006837"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:06.508631" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:06.508317" elapsed="0.000371"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:06.510880" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:06.508837" elapsed="0.002095"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:06.508713" elapsed="0.002254"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:06.508297" elapsed="0.002692"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:06.511131" elapsed="0.000184"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:06.513984" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:06.511628" elapsed="0.002449">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:06.511506" elapsed="0.002702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:06.511372" elapsed="0.002900">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:06.500961" elapsed="0.013415">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:06.491188" elapsed="0.023285">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:08.518144" level="INFO">@{expected_values} = [ "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-08-15T23:15:08.517120" elapsed="0.001107"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:08.519028" elapsed="0.000504"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:08.518445" elapsed="0.001174"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:08.518396" elapsed="0.001278"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:08.537180" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:08.537359" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:08.537457" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:08.530261" elapsed="0.007223"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:08.537971" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:08.537562" elapsed="0.000505"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:08.541151" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:08.538305" elapsed="0.002918"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:08.538105" elapsed="0.003167"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:08.537543" elapsed="0.003759"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:08.541474" elapsed="0.000235"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:08.545170" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:08.542156" elapsed="0.003209">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:08.541969" elapsed="0.003499">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:08.541784" elapsed="0.003771">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:08.529821" elapsed="0.015877">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:08.516026" elapsed="0.029806">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:10.548701" level="INFO">@{expected_values} = [ "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-08-15T23:15:10.547776" elapsed="0.000997"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:10.549607" elapsed="0.000385"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:10.548959" elapsed="0.001088"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:10.548912" elapsed="0.001191"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:10.568251" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:10.568417" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:10.568525" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:10.561141" elapsed="0.007411"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:10.568930" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:10.568631" elapsed="0.000355"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:10.571849" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:10.569149" elapsed="0.002773"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:10.569011" elapsed="0.002961"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:10.568612" elapsed="0.003391"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:10.572258" elapsed="0.000240"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:10.575936" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:10.572925" elapsed="0.003115">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:10.572758" elapsed="0.003407">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:10.572575" elapsed="0.003676">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:10.560545" elapsed="0.015872">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:10.546803" elapsed="0.029760">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:12.579742" level="INFO">@{expected_values} = [ "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-08-15T23:15:12.578791" elapsed="0.001023"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:12.580625" elapsed="0.000489"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:12.580000" elapsed="0.001203"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:12.579953" elapsed="0.001311"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:12.599410" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:12.599581" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:12.599680" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:12.591653" elapsed="0.008053"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:12.600093" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:12.599783" elapsed="0.000367"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:12.602415" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:12.600381" elapsed="0.002086"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:12.600235" elapsed="0.002267"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:12.599764" elapsed="0.002760"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:12.602653" elapsed="0.000176"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:12.605792" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:12.603156" elapsed="0.002740">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:12.603022" elapsed="0.002977">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:12.602886" elapsed="0.003220">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:12.591084" elapsed="0.015164">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:12.577790" elapsed="0.028589">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:14.609236" level="INFO">@{expected_values} = [ "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-08-15T23:15:14.608320" elapsed="0.000986"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:14.610081" elapsed="0.000461"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:14.609495" elapsed="0.001135"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:14.609446" elapsed="0.001240"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:14.629311" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:14.629470" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:14.629631" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:14.621913" elapsed="0.007745"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:14.630036" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:14.629738" elapsed="0.000377"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:14.632370" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:14.630269" elapsed="0.002152"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:14.630140" elapsed="0.002316"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:14.629718" elapsed="0.002761"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:14.632601" elapsed="0.000171"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:14.635278" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:14.633106" elapsed="0.002287">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:14.632967" elapsed="0.002504">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:14.632830" elapsed="0.002705">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:14.621340" elapsed="0.014299">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:14.607374" elapsed="0.028360">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:16.638575" level="INFO">@{expected_values} = [ "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-08-15T23:15:16.637610" elapsed="0.001037"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:16.639434" elapsed="0.000459"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:16.638834" elapsed="0.001147"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:16.638786" elapsed="0.001252"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:16.658593" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:16.658990" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:16.659265" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:16.650698" elapsed="0.008627"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:16.660182" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:16.659503" elapsed="0.000806"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:16.664483" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:16.660639" elapsed="0.003921"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:16.660365" elapsed="0.004247"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:16.659460" elapsed="0.005186"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:16.664828" elapsed="0.000272"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:16.668757" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:16.665552" elapsed="0.003315">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:16.665376" elapsed="0.003599">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:16.665182" elapsed="0.003904">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:16.650093" elapsed="0.019146">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:16.636651" elapsed="0.032730">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:18.672166" level="INFO">@{expected_values} = [ "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-08-15T23:15:18.671244" 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-08-15T23:15:18.672987" elapsed="0.000662"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:18.672430" elapsed="0.001310"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:18.672380" elapsed="0.001418"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:18.689340" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:18.689579" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:18.689716" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:18.682682" elapsed="0.007071"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:18.690295" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:18.689862" elapsed="0.000512"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:18.693452" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:18.690582" elapsed="0.002943"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:18.690409" elapsed="0.003166"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:18.689836" elapsed="0.003770"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:18.693778" elapsed="0.000237"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:18.697773" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:18.694473" elapsed="0.003412">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:18.694307" elapsed="0.003687">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:18.694117" elapsed="0.003975">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:18.682268" elapsed="0.015935">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:18.670302" elapsed="0.027996">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:20.701538" level="INFO">@{expected_values} = [ "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-08-15T23:15:20.700286" elapsed="0.001325"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:20.702434" elapsed="0.000485"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:20.701821" elapsed="0.001189"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:20.701759" elapsed="0.001338"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:20.719636" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:20.719800" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:20.719902" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:20.712937" elapsed="0.006992"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:20.720452" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:20.720014" elapsed="0.000538"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:20.723684" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:20.720764" elapsed="0.002992"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:20.720588" elapsed="0.003219"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:20.719993" elapsed="0.003846"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:20.724010" elapsed="0.000259"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:20.727735" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:20.724717" elapsed="0.003138">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:20.724548" elapsed="0.003412">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:20.724349" elapsed="0.003698">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:20.712515" elapsed="0.015702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:20.699302" elapsed="0.029118">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:22.731210" level="INFO">@{expected_values} = [ "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-08-15T23:15:22.730298" elapsed="0.000986"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:22.732124" elapsed="0.000468"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:22.731471" elapsed="0.001210"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:22.731423" elapsed="0.001315"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:22.750393" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:22.750552" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:22.750661" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:22.743590" elapsed="0.007098"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:22.751084" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:22.750768" elapsed="0.000377"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:22.754256" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:22.751362" elapsed="0.002965"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:22.751184" elapsed="0.003194"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:22.750748" elapsed="0.003661"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:22.754582" elapsed="0.000236"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:22.758299" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:22.755269" elapsed="0.003136">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:22.755101" elapsed="0.003407">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:22.754895" elapsed="0.003698">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:22.743157" elapsed="0.015649">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:22.729364" elapsed="0.029578">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:24.761939" level="INFO">@{expected_values} = [ "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-08-15T23:15:24.760959" elapsed="0.001085"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:24.762980" elapsed="0.000513"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:24.762350" elapsed="0.001235"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:24.762288" elapsed="0.001357"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:24.782494" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:24.782760" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:24.782905" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:24.774648" elapsed="0.008293"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:24.783503" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:24.783075" elapsed="0.000509"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:24.786745" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:24.783798" elapsed="0.003024"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:24.783620" elapsed="0.003250"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:24.783028" elapsed="0.003873"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:24.787096" elapsed="0.000259"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:24.791275" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:24.787852" elapsed="0.003558">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:24.787673" elapsed="0.003826">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:24.787457" elapsed="0.004172">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:24.774162" elapsed="0.017581">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:24.759919" elapsed="0.031919">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:26.794904" level="INFO">@{expected_values} = [ "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-08-15T23:15:26.793902" elapsed="0.001076"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:26.795828" elapsed="0.000510"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:26.795216" elapsed="0.001212"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:26.795161" elapsed="0.001329"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:26.816884" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:26.817112" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:26.817219" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:26.808620" elapsed="0.008625"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:26.817696" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:26.817336" elapsed="0.000422"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:26.820045" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:26.817921" elapsed="0.002193"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:26.817786" elapsed="0.002363"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:26.817313" elapsed="0.002858"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:26.820297" elapsed="0.000184"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:26.823433" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:26.820834" elapsed="0.002721">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:26.820701" elapsed="0.003060">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:26.820549" elapsed="0.003305">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:26.807850" elapsed="0.016155">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:26.792823" elapsed="0.031342">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:28.827103" level="INFO">@{expected_values} = [ "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-08-15T23:15:28.826181" elapsed="0.000999"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:28.827962" elapsed="0.000500"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:28.827369" elapsed="0.001182"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:28.827319" elapsed="0.001289"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:28.848662" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:28.848833" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:28.848943" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:28.840285" elapsed="0.008684"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:28.849390" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:28.849089" elapsed="0.000357"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:28.851650" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:28.849597" elapsed="0.002104"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:28.849471" elapsed="0.002264"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:28.849030" elapsed="0.002727"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:28.851880" elapsed="0.000186"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:28.855081" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:28.852384" elapsed="0.002892">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:28.852263" elapsed="0.003119">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:28.852125" elapsed="0.003359">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:28.839631" elapsed="0.016014">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:28.825204" elapsed="0.030573">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:30.858880" level="INFO">@{expected_values} = [ "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-08-15T23:15:30.857845" elapsed="0.001118"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:30.859876" elapsed="0.000573"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:30.859219" elapsed="0.001346"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:30.859165" elapsed="0.001464"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:30.878900" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:30.879094" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:30.879194" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:30.871897" elapsed="0.007323"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:30.879673" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:30.879299" elapsed="0.000455"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:30.882842" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:30.879962" elapsed="0.002951"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:30.879788" elapsed="0.003174"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:30.879280" elapsed="0.003713"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:30.883321" elapsed="0.000264"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:30.887498" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:30.884109" elapsed="0.003497">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:30.883901" elapsed="0.003857">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:30.883691" elapsed="0.004159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:30.871469" elapsed="0.016523">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:30.856757" elapsed="0.031410">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:32.891112" level="INFO">@{expected_values} = [ "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-08-15T23:15:32.890130" elapsed="0.001054"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:32.891955" elapsed="0.000500"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:32.891378" elapsed="0.001167"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:32.891328" elapsed="0.001275"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:32.909955" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:32.910157" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:32.910259" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:32.903082" elapsed="0.007203"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:32.910771" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:32.910364" elapsed="0.000489"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:32.913975" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:32.911148" elapsed="0.002899"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:32.910949" elapsed="0.003168"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:32.910344" elapsed="0.003805"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:32.914325" elapsed="0.000241"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:32.918021" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:32.915025" elapsed="0.003126">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:32.914854" elapsed="0.003405">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:32.914647" elapsed="0.003699">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:32.902636" elapsed="0.015856">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:32.889147" elapsed="0.029478">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:34.921354" level="INFO">@{expected_values} = [ "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-08-15T23:15:34.920449" 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-08-15T23:15:34.922217" elapsed="0.000452"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:34.921605" elapsed="0.001149"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:34.921559" elapsed="0.001250"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:34.941260" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:34.941431" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:34.941598" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:34.934079" elapsed="0.007546"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:34.942019" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:34.941706" elapsed="0.000386"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:34.944258" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:34.942241" elapsed="0.002069"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:34.942118" elapsed="0.002226"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:34.941686" elapsed="0.002681"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:34.944489" elapsed="0.000178"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:34.947440" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:34.944976" elapsed="0.002575">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:34.944856" elapsed="0.002808">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:34.944723" elapsed="0.003030">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:34.933416" elapsed="0.014485">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:34.919537" elapsed="0.028505">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:36.950043" level="INFO">@{expected_values} = [ "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-08-15T23:15:36.949459" elapsed="0.000655"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:36.950601" elapsed="0.000347"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:36.950239" elapsed="0.000763"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:36.950207" elapsed="0.000832"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:36.967143" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:36.967455" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:36.967598" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:36.960702" elapsed="0.006933"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:36.968242" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:36.967772" elapsed="0.000549"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:36.971578" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:36.968529" elapsed="0.003128"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:36.968356" elapsed="0.003360"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:36.967738" elapsed="0.004017"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:36.971954" elapsed="0.000276"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:36.976275" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:36.972706" elapsed="0.003684">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:36.972516" elapsed="0.003987">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:36.972315" elapsed="0.004282">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:36.960115" elapsed="0.016634">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:36.948797" elapsed="0.028129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:38.979786" level="INFO">@{expected_values} = [ "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-08-15T23:15:38.978848" elapsed="0.001034"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:38.980670" elapsed="0.000602"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:38.980101" elapsed="0.001260"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:38.980024" elapsed="0.001395"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:38.999131" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:38.999295" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:38.999395" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:38.991737" elapsed="0.007684"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:38.999815" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:38.999500" elapsed="0.000373"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:39.002226" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:39.000024" elapsed="0.002253"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:38.999898" elapsed="0.002414"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:38.999480" elapsed="0.002854"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:39.002458" elapsed="0.000173"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:39.005293" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:39.002953" elapsed="0.002448">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:39.002830" elapsed="0.002674">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:39.002691" elapsed="0.002897">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:38.991160" elapsed="0.014572">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:38.977868" elapsed="0.027995">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:41.008691" level="INFO">@{expected_values} = [ "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-08-15T23:15:41.007769" elapsed="0.000991"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:41.009540" elapsed="0.000451"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:41.008964" elapsed="0.001142"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:41.008916" elapsed="0.001249"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:41.028672" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:41.028855" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:41.028969" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:41.021009" elapsed="0.007986"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:41.029415" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:41.029101" elapsed="0.000371"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:41.031737" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:41.029624" elapsed="0.002165"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:41.029498" elapsed="0.002338"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:41.029079" elapsed="0.002793"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:41.032042" elapsed="0.000261"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:41.035763" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:41.032742" elapsed="0.003130">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:41.032572" elapsed="0.003404">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:41.032384" elapsed="0.003699">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:41.020385" elapsed="0.015847">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:41.006801" elapsed="0.029634">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:43.039167" level="INFO">@{expected_values} = [ "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-08-15T23:15:43.038262" 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-08-15T23:15:43.039966" elapsed="0.000483"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:43.039420" elapsed="0.001115"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:43.039373" elapsed="0.001216"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:43.057346" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:43.057523" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:43.057622" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:43.050610" elapsed="0.007037"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:43.058042" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:43.057729" elapsed="0.000387"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:43.060609" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:43.058266" elapsed="0.002394"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:43.058141" elapsed="0.002554"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:43.057709" elapsed="0.003008"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:43.060840" elapsed="0.000177"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:43.063822" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:43.061350" elapsed="0.002577">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:43.061228" elapsed="0.002804">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:43.061091" elapsed="0.003052">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:43.049917" elapsed="0.014476">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:43.037338" elapsed="0.027190">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:45.067358" level="INFO">@{expected_values} = [ "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-08-15T23:15:45.066434" 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-08-15T23:15:45.068205" elapsed="0.000460"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:45.067616" elapsed="0.001139"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:45.067566" elapsed="0.001246"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:45.085700" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:45.085864" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:45.085962" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:45.078296" elapsed="0.007692"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:45.086383" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:45.086089" elapsed="0.000350"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:45.088613" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:45.086588" elapsed="0.002075"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:45.086464" elapsed="0.002233"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:45.086067" elapsed="0.002652"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:45.088840" elapsed="0.000821"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:45.093031" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:45.089991" elapsed="0.003175">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:45.089857" elapsed="0.003411">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:45.089720" elapsed="0.003699">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:45.077702" elapsed="0.015860">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:45.065506" elapsed="0.028191">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:47.096797" level="INFO">@{expected_values} = [ "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-08-15T23:15:47.095760" elapsed="0.001114"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:47.097685" elapsed="0.000500"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:47.097116" elapsed="0.001158"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:47.097029" elapsed="0.001305"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:47.118718" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:47.118913" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:47.119023" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:47.110807" elapsed="0.008260"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:47.119455" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:47.119152" elapsed="0.000361"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:47.122001" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:47.119660" elapsed="0.002440"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:47.119537" elapsed="0.002624"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:47.119132" elapsed="0.003068"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:47.122375" elapsed="0.000238"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:47.126108" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:47.123068" elapsed="0.003152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:47.122883" elapsed="0.003515">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:47.122693" elapsed="0.003794">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:47.110223" elapsed="0.016408">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:47.094723" elapsed="0.032049">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:49.129677" level="INFO">@{expected_values} = [ "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-08-15T23:15:49.128733" elapsed="0.001016"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:49.130544" elapsed="0.000477"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:49.129947" elapsed="0.001193"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:49.129895" elapsed="0.001304"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:49.147529" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:49.147715" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:49.147817" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:49.140482" elapsed="0.007361"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:49.148243" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:49.147921" elapsed="0.000384"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:49.151371" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:49.148457" elapsed="0.002985"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:49.148330" elapsed="0.003161"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:49.147902" elapsed="0.003619"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:49.151693" elapsed="0.000236"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:49.155663" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:49.152389" elapsed="0.003448">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:49.152222" elapsed="0.003721">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:49.152009" elapsed="0.004020">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:49.140068" elapsed="0.016129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:49.127733" elapsed="0.028598">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:51.159262" level="INFO">@{expected_values} = [ "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-08-15T23:15:51.158282" 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-08-15T23:15:51.160120" elapsed="0.000464"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:51.159525" elapsed="0.001146"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:51.159478" elapsed="0.001250"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:51.179880" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:51.180126" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:51.180271" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:51.172663" elapsed="0.007646"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:51.180826" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:51.180420" elapsed="0.000484"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:51.183990" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:51.181136" elapsed="0.002945"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:51.180939" elapsed="0.003191"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:51.180393" elapsed="0.003768"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:51.184400" elapsed="0.000235"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:51.188295" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:51.185083" elapsed="0.003318">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:51.184896" elapsed="0.003607">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:51.184712" elapsed="0.003876">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:51.172249" elapsed="0.016481">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:51.157264" elapsed="0.031600">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:53.192010" level="INFO">@{expected_values} = [ "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-08-15T23:15:53.190998" elapsed="0.001117"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:53.192883" elapsed="0.000556"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:53.192317" elapsed="0.001189"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:53.192265" elapsed="0.001278"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:53.210855" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:53.211024" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:53.211161" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:53.203137" elapsed="0.008051"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:53.211569" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:53.211268" elapsed="0.000358"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:53.214306" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:53.211836" elapsed="0.002570"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:53.211708" elapsed="0.002763"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:53.211249" elapsed="0.003265"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:53.214731" elapsed="0.000293"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:53.218712" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:53.215604" elapsed="0.003221">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:53.215381" elapsed="0.003550">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:53.215145" elapsed="0.003871">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:53.202515" elapsed="0.016682">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:53.189921" elapsed="0.029435">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:55.222274" level="INFO">@{expected_values} = [ "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-08-15T23:15:55.221344" elapsed="0.001001"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:55.223124" elapsed="0.000456"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:55.222534" elapsed="0.001134"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:55.222486" elapsed="0.001238"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:55.242181" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:55.242346" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:55.242504" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:55.234558" elapsed="0.007973"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:55.242903" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:55.242610" elapsed="0.000350"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:55.245212" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:55.243127" elapsed="0.002146"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:55.242984" elapsed="0.002323"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:55.242591" elapsed="0.002738"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:55.245453" elapsed="0.000173"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:55.248406" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:55.245943" elapsed="0.002576">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:55.245824" elapsed="0.002801">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:55.245686" elapsed="0.003027">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:55.233967" elapsed="0.014887">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:55.220376" elapsed="0.028609">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:57.251854" level="INFO">@{expected_values} = [ "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-08-15T23:15:57.250869" elapsed="0.001056"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:15:57.252716" elapsed="0.000499"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:57.252147" elapsed="0.001156"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:57.252095" elapsed="0.001264"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:57.270488" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:57.270802" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:57.270941" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:57.263392" elapsed="0.007585"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:57.271564" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:57.271123" elapsed="0.000520"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:57.274719" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:57.271853" elapsed="0.002937"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:57.271679" elapsed="0.003159"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:57.271093" elapsed="0.003776"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:57.275042" elapsed="0.000275"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:57.278748" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:57.275750" elapsed="0.003102">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:57.275582" elapsed="0.003374">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:57.275397" elapsed="0.003645">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:57.262927" elapsed="0.016311">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:57.249813" elapsed="0.029565">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:15:59.282173" level="INFO">@{expected_values} = [ "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-08-15T23:15:59.281263" 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-08-15T23:15:59.283011" elapsed="0.000619"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:59.282456" elapsed="0.001264"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:59.282407" elapsed="0.001370"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:15:59.301972" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:15:59.302150" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:15:59.302277" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:15:59.294367" elapsed="0.007937"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:15:59.302675" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:15:59.302383" elapsed="0.000349"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:15:59.304917" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:15:59.302881" elapsed="0.002088"/>
</kw>
<status status="PASS" start="2026-08-15T23:15:59.302757" elapsed="0.002247"/>
</branch>
<status status="PASS" start="2026-08-15T23:15:59.302365" elapsed="0.002661"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:15:59.305164" elapsed="0.000170"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:15:59.308253" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:15:59.305643" elapsed="0.002715">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:15:59.305524" elapsed="0.002936">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:15:59.305389" elapsed="0.003155">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:15:59.293751" elapsed="0.014934">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:15:59.280341" elapsed="0.028480">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:16:01.310451" level="INFO">@{expected_values} = [ "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-08-15T23:16:01.309996" elapsed="0.000491"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:01.310855" elapsed="0.000219"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:01.310585" elapsed="0.000545"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:01.310557" elapsed="0.000599"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:01.324561" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:01.324719" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:01.324824" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:01.317697" elapsed="0.007155"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:01.325252" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:01.324932" elapsed="0.000378"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:01.327560" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:01.325464" elapsed="0.002148"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:01.325336" elapsed="0.002312"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:01.324913" elapsed="0.002758"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:01.327795" elapsed="0.000174"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:01.331364" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:16:01.328300" elapsed="0.003144">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:16:01.328180" elapsed="0.003340">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:16:01.328026" elapsed="0.003559">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:16:01.317283" elapsed="0.014407">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:16:01.309514" elapsed="0.022350">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:16:03.334944" level="INFO">@{expected_values} = [ "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-08-15T23:16:03.333995" elapsed="0.001021"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:03.335824" elapsed="0.000520"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:03.335255" elapsed="0.001178"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:03.335203" elapsed="0.001313"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:03.352612" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:03.352856" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:03.352994" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:03.345474" elapsed="0.007557"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:03.353583" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:03.353173" elapsed="0.000493"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:03.356783" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:03.353877" elapsed="0.002983"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:03.353701" elapsed="0.003239"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:03.353146" elapsed="0.003826"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:03.357170" elapsed="0.000240"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:03.360835" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:16:03.357848" elapsed="0.003096">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:16:03.357683" elapsed="0.003401">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:16:03.357491" elapsed="0.003683">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:16:03.345047" elapsed="0.016339">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:16:03.333014" elapsed="0.028508">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:16:05.364684" level="INFO">@{expected_values} = [ "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-08-15T23:16:05.363671" elapsed="0.001091"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:05.365726" elapsed="0.000461"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:05.364964" elapsed="0.001283"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:05.364912" elapsed="0.001375"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:05.383015" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:05.383304" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:05.383481" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:05.376126" elapsed="0.007393"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:05.384098" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:05.383632" elapsed="0.000575"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:05.387475" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:05.384428" elapsed="0.003121"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:05.384249" elapsed="0.003350"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:05.383604" elapsed="0.004026"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:05.387819" elapsed="0.000273"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:05.391573" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:16:05.388594" elapsed="0.003065">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:16:05.388401" elapsed="0.003336">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:16:05.388191" elapsed="0.003686">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:16:05.375643" elapsed="0.016344">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:16:05.362632" elapsed="0.029478">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:16:07.395034" level="INFO">@{expected_values} = [ "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-08-15T23:16:07.394120" elapsed="0.001020"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:07.395899" elapsed="0.000498"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:07.395333" elapsed="0.001151"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:07.395283" elapsed="0.001258"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:07.413216" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:07.413378" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:07.413477" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:07.406499" elapsed="0.007004"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:07.413878" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:07.413583" elapsed="0.000385"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:07.416743" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:07.414137" elapsed="0.002678"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:07.413994" elapsed="0.002870"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:07.413564" elapsed="0.003330"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:07.417089" elapsed="0.000237"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:07.421115" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:16:07.417755" elapsed="0.003468">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:16:07.417589" elapsed="0.003807">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:16:07.417404" elapsed="0.004082">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:16:07.405901" elapsed="0.015729">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:16:07.393105" elapsed="0.028661">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:16:09.424789" level="INFO">@{expected_values} = [ "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-08-15T23:16:09.423811" elapsed="0.001051"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:09.425657" elapsed="0.000506"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:09.425091" elapsed="0.001162"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:09.425006" elapsed="0.001304"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:09.443266" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:09.443435" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:09.443536" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:09.436079" elapsed="0.007485"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:09.443963" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:09.443644" elapsed="0.000378"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:09.446360" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:09.444204" elapsed="0.002208"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:09.444051" elapsed="0.002396"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:09.443625" elapsed="0.002845"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:09.446593" elapsed="0.000172"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:09.449266" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:16:09.447099" elapsed="0.002322">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:16:09.446961" elapsed="0.002539">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:16:09.446824" elapsed="0.002739">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:16:09.435547" elapsed="0.014118">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:16:09.422787" elapsed="0.026987">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:16:11.452648" level="INFO">@{expected_values} = [ "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-08-15T23:16:11.451723" elapsed="0.000997"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:11.453504" elapsed="0.000458"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:11.452906" elapsed="0.001142"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:11.452859" elapsed="0.001281"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:11.473239" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:11.473415" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:11.473531" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:11.465725" elapsed="0.007833"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:11.473956" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:11.473645" elapsed="0.000400"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:11.476386" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:11.474224" elapsed="0.002215"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:11.474086" elapsed="0.002397"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:11.473622" elapsed="0.002898"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:11.476756" elapsed="0.000239"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:11.480474" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:16:11.477455" elapsed="0.003125">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:16:11.477284" elapsed="0.003398">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:16:11.477095" elapsed="0.003673">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:16:11.465141" elapsed="0.015767">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:16:11.450722" elapsed="0.030322">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:16:13.483892" level="INFO">@{expected_values} = [ "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-08-15T23:16:13.482920" elapsed="0.001042"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:13.484732" elapsed="0.000490"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:13.484179" elapsed="0.001130"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:13.484130" elapsed="0.001235"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:13.502175" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:13.502398" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:13.502533" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:13.495570" elapsed="0.006999"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:13.503109" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:13.502677" elapsed="0.000512"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:13.506328" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:13.503494" elapsed="0.002907"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:13.503313" elapsed="0.003136"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:13.502650" elapsed="0.003831"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:13.506650" elapsed="0.000238"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:13.510689" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:16:13.507376" elapsed="0.003419">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:16:13.507181" elapsed="0.003718">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:16:13.506968" elapsed="0.004015">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:16:13.495141" elapsed="0.016008">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:16:13.481981" elapsed="0.029342">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:16:15.514357" level="INFO">@{expected_values} = [ "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-08-15T23:16:15.513386" elapsed="0.001045"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:15.515215" elapsed="0.000490"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:15.514621" elapsed="0.001171"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:15.514572" elapsed="0.001277"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:15.531965" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:15.532187" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:15.532441" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:15.525402" elapsed="0.007076"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:15.532995" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:15.532587" elapsed="0.000509"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:15.536156" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:15.533305" elapsed="0.002936"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:15.533132" elapsed="0.003158"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:15.532561" elapsed="0.003767"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:15.536500" elapsed="0.000242"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:15.540191" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:16:15.537194" elapsed="0.003136">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:16:15.537005" elapsed="0.003427">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:16:15.536820" elapsed="0.003699">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:16:15.524971" elapsed="0.015688">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:16:15.512376" elapsed="0.028418">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-08-15T23:16:17.543705" level="INFO">@{expected_values} = [ "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-08-15T23:16:17.542730" elapsed="0.001049"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:17.544593" elapsed="0.000558"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:17.543963" elapsed="0.001277"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:17.543915" elapsed="0.001383"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:17.562975" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:17.563254" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:17.563430" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:17.555384" elapsed="0.008083"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:17.563991" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:17.563576" elapsed="0.000517"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:17.567172" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:17.564309" elapsed="0.002934"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:17.564130" elapsed="0.003161"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:17.563550" elapsed="0.003772"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:17.567492" elapsed="0.000237"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:17.571466" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:16:17.568177" elapsed="0.003369">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-08-15T23:16:17.567989" elapsed="0.003632">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-08-15T23:16:17.567805" elapsed="0.003878">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-08-15T23:16:17.554947" elapsed="0.016839">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-08-15T23:16:17.541766" elapsed="0.030116">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<msg time="2026-08-15T23:16:17.571972" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:14:46.174183" elapsed="91.397959">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:16:17.572330" elapsed="0.000023"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:16:17.573177" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-08-15T23:16:17.831004" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:16:17.831349" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:16:17.831463" 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-08-15T23:16:17.831604" 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-08-15T23:16:17.572985" elapsed="0.258682"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:17.832710" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:17.832092" elapsed="0.000715"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:16:17.833540" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-08-15T23:16:18.128404" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:16:18.128696" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:16:18.128796" 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-08-15T23:16:18.128887" 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-08-15T23:16:17.833152" elapsed="0.295786"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:16:18.129790" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-08-15T23:16:18.198834" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:16:18.199147" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-08-15T23:16:18.199252" level="INFO">${stderr} = </msg>
<msg time="2026-08-15T23:16:18.199342" 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-08-15T23:16:18.129388" elapsed="0.070006"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:16:18.199972" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-08-15T23:16:18.252803" 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-08-15T23:16:18.199747" elapsed="0.053201"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:18.266475" level="INFO">DELETE Request : url=http://10.30.171.84: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=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:18.266583" level="INFO">DELETE Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:18.266784" 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-08-15T23:16:18.253324" elapsed="0.013518"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:18.274800" level="INFO">DELETE Request : url=http://10.30.171.84: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=node0yyqtxhkr6deeifiyt25tvdu3.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:18.275137" level="INFO">DELETE Response : url=http://10.30.171.84:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-08-15T23:16:18.275350" 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-08-15T23:16:18.267199" elapsed="0.008188"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-08-15T23:16:17.572674" elapsed="0.702815"/>
</kw>
<doc>CallHome SSH device registered with wrong global credentials should fail to mount.</doc>
<status status="FAIL" start="2026-08-15T23:14:45.248730" elapsed="93.026835">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDQbT/OItCxpUDCJpbiP0EGmLPMWvrtol12tsVvMRJQp5zuMdE5rJWjwHvtrRWkSOcCoZ220ozpBrfHnzjoInO8OmWJaKE/fN+tDJjHmCbhgVGFFdykzaKVQX0/87jaIFLDnMesPVLuCzouVaxey1xqb9vd4F/dZq7O2m0PHyT0Qkb7YRYYmkhZgL4LMwhCOjwuXkW8qVgc6onV1W+Si3Xi0Xumm7+o6cIGZa5OZSQV+sLmEYTfRviZSoZdfANj4D3/LEsoyPP625RkkaeaVlsFZgc7uX5UAJWkYOc9ntg5vujV+iG123NkMICN8q66JDvkIymippcehVaA4r3Z07Y9"}}]}}}' 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-08-15T23:16:18.277716" level="INFO">Creating Session using : alias=session, url=http://10.30.171.84:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7a683dd0f210&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-08-15T23:16:18.277343" elapsed="0.000580"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:16:18.278273" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-08-15T23:16:18.300258" 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-08-15T23:16:18.278138" elapsed="0.022254"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:16:18.300969" 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-08-15T23:16:18.480177" 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-08-15T23:16:18.300702" elapsed="0.179622"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:16:18.480898" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-08-15T23:16:18.532979" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:16:18.533354" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCx5/xIfm0SP/wEoAVv5C5zGp142x81w5m5AMHwopbr8P7hr9Kj9GGpQ66I8c5GGULiRAKLKq8gnPzOoJA29mf47PsQokl+RZhyAoDZtFJaO3Fakwau54TUC0Xn+SRJmzmvInTKEd99Lg+qp6iwAMyQ8zU8y8+5Rii1vikmABvk...</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-08-15T23:16:18.480662" elapsed="0.052759"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-08-15T23:16:18.541213" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCx5/xIfm0SP/wEoAVv5C5zGp142x81w5m5AMHwopbr8P7hr9Kj9GGpQ66I8c5GGULiRAKLKq8gnPzOoJA29mf47PsQokl+RZhyAoDZtFJaO3Fakwau54TUC0Xn+SRJmzmvInTKEd99Lg+qp6iwAMyQ8zU8y8+5Rii1vikmABvk...</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-08-15T23:16:18.533841" elapsed="0.007441"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-08-15T23:16:18.276896" elapsed="0.264507"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:16:18.584106" 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-08-15T23:16:18.542079" elapsed="0.042115"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:16:18.592214" 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-08-15T23:16:18.584430" elapsed="0.007870"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-08-15T23:16:18.541669" elapsed="0.050722"/>
</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-08-15T23:16:18.597861" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:18.593268" elapsed="0.004667"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-08-15T23:16:18.598786" 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-08-15T23:16:18.598979" 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-08-15T23:16:18.598556" elapsed="0.000460"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-08-15T23:16:18.599692" 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-08-15T23:16:18.599245" elapsed="0.000508"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:18.598192" elapsed="0.001638"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:18.597974" elapsed="0.001889"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:18.593231" elapsed="0.006663"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:16:18.600442" 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-08-15T23:16:18.600098" elapsed="0.000381"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:16:18.600990" 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-08-15T23:16:18.600675" elapsed="0.000352"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:16:18.601661" 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-08-15T23:16:18.601310" elapsed="0.000389"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:16:18.602235" 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-08-15T23:16:18.601896" elapsed="0.000377"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:18.619979" level="INFO">POST Request : url=http://10.30.171.84: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp"
        }
    }
}
 
 </msg>
<msg time="2026-08-15T23:16:18.620037" level="INFO">POST Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node0rej3umzbbayec5ir6fwz4i8j4.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 14-Aug-2026 23:16:18 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=incorrect_hostname', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:18.620169" 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-08-15T23:16:18.602461" elapsed="0.017741"/>
</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-08-15T23:16:18.620529" elapsed="0.004705"/>
</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-08-15T23:16:18.592750" elapsed="0.032629"/>
</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-08-15T23:16:18.635385" 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-08-15T23:16:18.635513" 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-08-15T23:16:18.635234" elapsed="0.000305"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-08-15T23:16:18.635999" 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-08-15T23:16:18.635682" elapsed="0.000359"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:18.634944" elapsed="0.001169"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:18.631722" elapsed="0.004415"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-08-15T23:16:18.636305" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:18.636162" elapsed="0.000190"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:18.631703" elapsed="0.004670"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:16:18.636730" 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-08-15T23:16:18.636497" elapsed="0.000259"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:16:18.637132" 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-08-15T23:16:18.636893" elapsed="0.000266"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:16:18.637518" 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-08-15T23:16:18.637298" elapsed="0.000246"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:16:18.637930" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCx5/xIfm0SP/wEoAVv5C5zGp142x81w5m5AMHwopbr8P7hr9Kj9GGpQ66I8c5G...</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-08-15T23:16:18.637711" elapsed="0.000245"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:18.648550" level="INFO">POST Request : url=http://10.30.171.84: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=node0rej3umzbbayec5ir6fwz4i8j4.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCx5/xIfm0SP/wEoAVv5C5zGp142x81w5m5AMHwopbr8P7hr9Kj9GGpQ66I8c5GGULiRAKLKq8gnPzOoJA29mf47PsQokl+RZhyAoDZtFJaO3Fakwau54TUC0Xn+SRJmzmvInTKEd99Lg+qp6iwAMyQ8zU8y8+5Rii1vikmABvk3uXI08MWmityB/D02M+nPu53EXLazIYZI62hfThSEQdRkS9R6pb+TPaULbo8xaTjTYJaCNfDf5/GQtYn91K1Uej/n/i+i77q1TmkClw4ykoKN7w5cBcNaDykIQOP9Uc6J+bjvQ6LpRz6L/+kiWpaHDsJEqLAE6wvm1Ff6n0TlSGV"
        }
    }
}
 
 </msg>
<msg time="2026-08-15T23:16:18.648602" level="INFO">POST Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:18.648688" 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-08-15T23:16:18.638142" elapsed="0.010571"/>
</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-08-15T23:16:18.648865" elapsed="0.007230"/>
</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-08-15T23:16:18.625975" elapsed="0.030274"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:16:18.656931" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-08-15T23:16:18.923802" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:16:18.924229" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:16:18.924339" 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-08-15T23:16:18.924441" 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-08-15T23:16:18.656556" elapsed="0.267941"/>
</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-08-15T23:16:18.928462" 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-08-15T23:16:18.927391" elapsed="0.001139"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-08-15T23:16:18.929352" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:18.928718" elapsed="0.000776"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:18.928666" elapsed="0.000889"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:18.946453" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0rej3umzbbayec5ir6fwz4i8j4.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:18.946637" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}},{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx5/xIfm0SP/wEoAVv5C5zGp142x81w5m5AMHwopbr8P7hr9Kj9GGpQ66I8c5GGULiRAKLKq8gnPzOoJA29mf47PsQokl+RZhyAoDZtFJaO3Fakwau54TUC0Xn+SRJmzmvInTKEd99Lg+qp6iwAMyQ8zU8y8+5Rii1vikmABvk3uXI08MWmityB/D02M+nPu53EXLazIYZI62hfThSEQdRkS9R6pb+TPaULbo8xaTjTYJaCNfDf5/GQtYn91K1Uej/n/i+i77q1TmkClw4ykoKN7w5cBcNaDykIQOP9Uc6J+bjvQ6LpRz6L/+kiWpaHDsJEqLAE6wvm1Ff6n0TlSGV"}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:18.946740" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:18.939433" elapsed="0.007333"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:18.947183" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:18.946847" elapsed="0.000409"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:18.950432" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"incorrect_hostname","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}},{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCx5/xIfm0SP/wEoAVv5C5zGp142x81w5m5AMHwopbr8P7hr9Kj9GGpQ66I8c5GGULiRAKLKq8gnPzOoJA29mf47PsQokl+RZhyAoDZtFJaO3Fakwau54TUC0Xn+SRJmzmvInTKEd99Lg+qp6iwAMyQ8zU8y8+5Rii1vikmABvk3uXI08MWmityB/D02M+nPu53EXLazIYZI62hfThSEQdRkS9R6pb+TPaULbo8xaTjTYJaCNfDf5/GQtYn91K1Uej/n/i+i77q1TmkClw4ykoKN7w5cBcNaDykIQOP9Uc6J+bjvQ6LpRz6L/+kiWpaHDsJEqLAE6wvm1Ff6n0TlSGV"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:18.947497" elapsed="0.003089"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:18.947299" elapsed="0.003336"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:18.946828" elapsed="0.003838"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:18.950836" elapsed="0.000258"/>
</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-08-15T23:16:18.951541" elapsed="0.002993"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-08-15T23:16:18.951369" elapsed="0.003221"/>
</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-08-15T23:16:18.954868" elapsed="0.002276"/>
</kw>
<var name="${i}">"device-status":"DISCONNECTED"</var>
<status status="PASS" start="2026-08-15T23:16:18.954707" elapsed="0.002478"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="PASS" start="2026-08-15T23:16:18.951175" elapsed="0.006045"/>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET 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-08-15T23:16:18.938812" elapsed="0.018466"/>
</kw>
<arg>DISCONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="PASS" start="2026-08-15T23:16:18.926526" elapsed="0.030808"/>
</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-08-15T23:16:18.925005" elapsed="0.032376"/>
</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-08-15T23:16:18.991630" level="INFO">GET Request : url=http://10.30.171.84: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=node0rej3umzbbayec5ir6fwz4i8j4.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:18.991764" level="INFO">GET Response : url=http://10.30.171.84: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-08-15T23:16:18.991865" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:18.964739" elapsed="0.027152"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:18.992294" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:18.991973" elapsed="0.000378"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:18.994784" 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-08-15T23:16:18.992501" elapsed="0.002337"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:18.992377" elapsed="0.002496"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:18.991953" elapsed="0.002942"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:18.995017" elapsed="0.000184"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:18.997690" 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-08-15T23:16:18.995502" elapsed="0.002271">'{"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-08-15T23:16:18.995384" elapsed="0.002504">'{"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-08-15T23:16:18.995256" elapsed="0.002699">'{"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-08-15T23:16:18.964317" elapsed="0.033762">'{"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-08-15T23:16:18.958030" elapsed="0.040237"/>
</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-08-15T23:16:18.957543" elapsed="0.040782"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:16:18.999144" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-08-15T23:16:19.265804" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:16:19.266256" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:16:19.266358" 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-08-15T23:16:19.266451" 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-08-15T23:16:18.998951" elapsed="0.267560"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:19.267740" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:19.267007" elapsed="0.000826"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:16:19.268557" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-08-15T23:16:19.570124" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:16:19.570439" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:16:19.570501" 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-08-15T23:16:19.570559" 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-08-15T23:16:19.268177" elapsed="0.302417"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:16:19.571280" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-08-15T23:16:19.641174" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:16:19.641500" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-08-15T23:16:19.641607" level="INFO">${stderr} = </msg>
<msg time="2026-08-15T23:16:19.641704" 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-08-15T23:16:19.570929" elapsed="0.070829"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:16:19.642481" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-08-15T23:16:19.688946" 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-08-15T23:16:19.642224" elapsed="0.046909"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:19.699742" level="INFO">DELETE Request : url=http://10.30.171.84: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=node0rej3umzbbayec5ir6fwz4i8j4.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:19.699923" level="INFO">DELETE Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:19.700083" 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-08-15T23:16:19.689474" elapsed="0.010649"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:19.706474" level="INFO">DELETE Request : url=http://10.30.171.84: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=node0rej3umzbbayec5ir6fwz4i8j4.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:19.706690" level="INFO">DELETE Response : url=http://10.30.171.84:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-08-15T23:16:19.706840" 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-08-15T23:16:19.700325" elapsed="0.006552"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-08-15T23:16:18.998639" elapsed="0.708360"/>
</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-08-15T23:16:18.275990" elapsed="1.431113"/>
</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-08-15T23:16:19.709332" level="INFO">Creating Session using : alias=session, url=http://10.30.171.84:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7a683eeb39d0&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-08-15T23:16:19.708945" elapsed="0.000588"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:16:19.709864" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-08-15T23:16:19.736724" 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-08-15T23:16:19.709728" elapsed="0.027130"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:16:19.737426" 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-08-15T23:16:20.094437" 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-08-15T23:16:19.737207" elapsed="0.357455"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:16:20.095430" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-08-15T23:16:20.148872" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:16:20.149166" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDhRn+cUg6PPPTaUH5Ez4RdiYotILShcug8R0Y8O/tVhBkpCPh6HSTU7F6L2UyZsiBBqLjoVxhrc07GEwW7qY2PGrLeC2STnvzJErNMlfd157fDgJZmASByrIS0k2y+n5pfcmti5fytmfpRuaNxC1Qzh4Gw7Q9FbmuNIWVRET62...</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-08-15T23:16:20.095142" elapsed="0.054088"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-08-15T23:16:20.156249" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDhRn+cUg6PPPTaUH5Ez4RdiYotILShcug8R0Y8O/tVhBkpCPh6HSTU7F6L2UyZsiBBqLjoVxhrc07GEwW7qY2PGrLeC2STnvzJErNMlfd157fDgJZmASByrIS0k2y+n5pfcmti5fytmfpRuaNxC1Qzh4Gw7Q9FbmuNIWVRET62...</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-08-15T23:16:20.149621" elapsed="0.006697"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-08-15T23:16:19.708581" elapsed="0.447837"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:16:20.196332" 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-08-15T23:16:20.157138" elapsed="0.039281"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:16:20.202711" 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-08-15T23:16:20.196616" elapsed="0.006179"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-08-15T23:16:20.156688" elapsed="0.046195"/>
</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-08-15T23:16:20.208725" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:20.203753" elapsed="0.005047"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-08-15T23:16:20.209636" 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-08-15T23:16:20.209887" 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-08-15T23:16:20.209433" elapsed="0.000492"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-08-15T23:16:20.210626" 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-08-15T23:16:20.210150" elapsed="0.000538"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:20.209066" elapsed="0.001701"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:20.208852" elapsed="0.001950"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:20.203719" elapsed="0.007114"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:16:20.211386" 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-08-15T23:16:20.211017" elapsed="0.000406"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:16:20.211932" 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-08-15T23:16:20.211618" elapsed="0.000350"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:16:20.212495" 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-08-15T23:16:20.212182" elapsed="0.000351"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:16:20.213094" 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-08-15T23:16:20.212726" elapsed="0.000407"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:20.227173" level="INFO">POST Request : url=http://10.30.171.84: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp"
        }
    }
}
 
 </msg>
<msg time="2026-08-15T23:16:20.227303" level="INFO">POST Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 14-Aug-2026 23:16:20 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:20.227524" 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-08-15T23:16:20.213344" elapsed="0.014237"/>
</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-08-15T23:16:20.227920" elapsed="0.003541"/>
</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-08-15T23:16:20.203262" elapsed="0.028290"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:16:20.231987" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-08-15T23:16:20.498219" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:16:20.498642" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:16:20.498751" 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-08-15T23:16:20.498850" 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-08-15T23:16:20.231753" elapsed="0.267153"/>
</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-08-15T23:16:20.502869" 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-08-15T23:16:20.501925" elapsed="0.001010"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:20.503771" elapsed="0.000556"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:20.503170" elapsed="0.001249"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:20.503114" elapsed="0.001369"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:20.519218" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:20.519406" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:20.519506" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:20.512333" elapsed="0.007198"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:20.519918" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:20.519608" elapsed="0.000367"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:20.522673" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:20.520153" elapsed="0.002608"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:20.520000" elapsed="0.002810"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:20.519589" elapsed="0.003253"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:20.523014" elapsed="0.000277"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:20.526870" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:20.523778" elapsed="0.003201">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:20.523597" elapsed="0.003510">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:20.523388" elapsed="0.003808">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:20.511901" elapsed="0.015442">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:20.501015" elapsed="0.026463">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:22.530710" 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-08-15T23:16:22.529650" elapsed="0.001140"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:22.531641" elapsed="0.000531"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:22.530994" elapsed="0.001320"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:22.530941" elapsed="0.001440"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:22.549508" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:22.549679" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:22.549781" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:22.542231" elapsed="0.007579"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:22.550226" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:22.549894" elapsed="0.000394"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:22.552571" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:22.550449" elapsed="0.002176"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:22.550317" elapsed="0.002345"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:22.549873" elapsed="0.002813"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:22.552814" elapsed="0.000180"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:22.556626" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:22.553351" elapsed="0.003387">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:22.553211" elapsed="0.003643">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:22.553067" elapsed="0.003883">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:22.541792" elapsed="0.015346">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:22.528551" elapsed="0.028801">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:24.560292" 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-08-15T23:16:24.559367" elapsed="0.000997"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:24.561158" elapsed="0.000465"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:24.560554" elapsed="0.001158"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:24.560505" elapsed="0.001264"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:24.578238" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:24.578437" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:24.578553" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:24.571795" elapsed="0.006785"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:24.578953" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:24.578659" elapsed="0.000351"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:24.581929" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:24.579176" elapsed="0.002824"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:24.579036" elapsed="0.003030"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:24.578639" elapsed="0.003460"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:24.582269" elapsed="0.000250"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:24.585960" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:24.582946" elapsed="0.003142">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:24.582782" elapsed="0.003412">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:24.582596" elapsed="0.003683">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:24.571370" elapsed="0.015189">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:24.558400" elapsed="0.028298">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:26.589554" 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-08-15T23:16:26.588609" 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-08-15T23:16:26.590413" elapsed="0.000454"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:26.589814" elapsed="0.001142"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:26.589766" elapsed="0.001247"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:26.609303" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:26.609481" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:26.609589" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:26.602267" elapsed="0.007349"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:26.609989" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:26.609696" elapsed="0.000350"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:26.612298" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:26.610211" elapsed="0.002138"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:26.610087" elapsed="0.002296"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:26.609677" elapsed="0.002728"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:26.612580" elapsed="0.000243"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:26.616612" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:26.613281" elapsed="0.003439">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:26.613111" elapsed="0.003715">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:26.612902" elapsed="0.004074">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:26.601673" elapsed="0.015474">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:26.587668" elapsed="0.029615">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:28.619208" 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-08-15T23:16:28.618598" elapsed="0.000658"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:28.619744" elapsed="0.000294"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:28.619384" elapsed="0.000729"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:28.619350" elapsed="0.000800"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:28.636412" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:28.636580" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:28.636678" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:28.629268" elapsed="0.007435"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:28.637090" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:28.636781" elapsed="0.000366"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:28.640084" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:28.637303" elapsed="0.002857"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:28.637172" elapsed="0.003036"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:28.636762" elapsed="0.003477"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:28.640424" elapsed="0.000236"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:28.644172" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:28.641109" elapsed="0.003170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:28.640924" elapsed="0.003555">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:28.640739" elapsed="0.003835">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:28.628670" elapsed="0.016049">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:28.617952" elapsed="0.026905">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:30.647708" 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-08-15T23:16:30.646769" elapsed="0.001022"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:30.648566" elapsed="0.000661"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:30.647978" elapsed="0.001344"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:30.647932" elapsed="0.001448"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:30.666221" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:30.666438" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:30.666592" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:30.658943" elapsed="0.007690"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:30.667212" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:30.666769" elapsed="0.000522"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:30.670369" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:30.667499" elapsed="0.002942"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:30.667325" elapsed="0.003163"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:30.666737" elapsed="0.003781"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:30.670687" elapsed="0.000234"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:30.674288" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:30.671371" elapsed="0.003051">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:30.671205" elapsed="0.003293">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:30.670999" elapsed="0.003562">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:30.658361" elapsed="0.016303">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:30.645837" elapsed="0.028924">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:32.677853" 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-08-15T23:16:32.676819" elapsed="0.001107"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:32.678725" elapsed="0.000492"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:32.678148" elapsed="0.001158"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:32.678096" elapsed="0.001267"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:32.697379" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:32.697561" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:32.697672" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:32.689910" elapsed="0.007801"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:32.698328" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:32.697852" elapsed="0.000555"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:32.701560" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:32.698615" elapsed="0.003090"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:32.698443" elapsed="0.003313"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:32.697817" elapsed="0.003974"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:32.702010" elapsed="0.000285"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:32.706099" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:32.702766" elapsed="0.003442">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:32.702583" elapsed="0.003732">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:32.702377" elapsed="0.004025">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:32.689462" elapsed="0.017083">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:32.675770" elapsed="0.030909">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:34.709628" 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-08-15T23:16:34.708696" elapsed="0.001002"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:34.710498" elapsed="0.000512"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:34.709884" elapsed="0.001266"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:34.709837" elapsed="0.001373"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:34.726318" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:34.726508" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:34.726699" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:34.720563" elapsed="0.006165"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:34.727159" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:34.726818" elapsed="0.000403"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:34.729438" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:34.727375" elapsed="0.002115"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:34.727246" elapsed="0.002278"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:34.726796" elapsed="0.002750"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:34.729673" elapsed="0.000180"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:34.732486" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:34.730203" elapsed="0.002363">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:34.730075" elapsed="0.002569">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:34.729915" elapsed="0.002793">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:34.720134" elapsed="0.012680">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:34.707672" elapsed="0.025238">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:36.735772" 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-08-15T23:16:36.734825" elapsed="0.001022"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:36.736626" elapsed="0.000538"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:36.736038" elapsed="0.001215"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:36.735988" elapsed="0.001320"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:36.755892" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:36.756217" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:36.756370" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:36.748800" elapsed="0.007608"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:36.756981" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:36.756536" elapsed="0.000566"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:36.760152" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:36.757309" elapsed="0.002915"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:36.757138" elapsed="0.003134"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:36.756509" elapsed="0.003795"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:36.760489" elapsed="0.000238"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:36.764186" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:36.761180" elapsed="0.003113">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:36.760988" elapsed="0.003437">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:36.760803" elapsed="0.003712">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:36.748369" elapsed="0.016289">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:36.733852" elapsed="0.030943">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:38.767616" 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-08-15T23:16:38.766683" elapsed="0.001004"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:38.768463" elapsed="0.000482"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:38.767871" elapsed="0.001161"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:38.767823" elapsed="0.001299"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:38.787143" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:38.787310" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:38.787409" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:38.779803" elapsed="0.007634"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:38.787830" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:38.787516" elapsed="0.000371"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:38.790291" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:38.788043" elapsed="0.002300"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:38.787912" elapsed="0.002466"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:38.787497" elapsed="0.002902"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:38.790522" elapsed="0.000171"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:38.793323" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:38.791010" elapsed="0.002420">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:38.790883" elapsed="0.002650">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:38.790749" elapsed="0.002869">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:38.779227" elapsed="0.014531">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:38.765764" elapsed="0.028198">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:40.796810" 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-08-15T23:16:40.795892" elapsed="0.000992"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:40.797660" elapsed="0.000497"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:40.797100" elapsed="0.001146"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:40.797021" elapsed="0.001281"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:40.815932" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:40.816130" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:40.816232" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:40.808501" elapsed="0.007757"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:40.816654" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:40.816341" elapsed="0.000370"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:40.818907" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:40.816859" elapsed="0.002101"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:40.816736" elapsed="0.002258"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:40.816321" elapsed="0.002696"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:40.819157" elapsed="0.000173"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:40.822549" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:40.819673" elapsed="0.002980">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:40.819520" elapsed="0.003235">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:40.819386" elapsed="0.003454">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:40.807888" elapsed="0.015158">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:40.794924" elapsed="0.028282">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:42.826013" 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-08-15T23:16:42.825125" elapsed="0.000993"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:42.826861" elapsed="0.000487"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:42.826307" elapsed="0.001129"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:42.826259" elapsed="0.001232"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:42.844245" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:42.844453" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:42.844601" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:42.837396" elapsed="0.007243"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:42.845199" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:42.844771" elapsed="0.000506"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:42.848356" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:42.845508" elapsed="0.002921"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:42.845313" elapsed="0.003164"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:42.844742" elapsed="0.003767"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:42.848692" elapsed="0.000234"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:42.852384" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:42.849381" elapsed="0.003109">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:42.849211" elapsed="0.003420">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:42.849002" elapsed="0.003790">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:42.836959" elapsed="0.015981">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:42.824156" elapsed="0.028944">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:44.855643" 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-08-15T23:16:44.854659" elapsed="0.001060"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:44.856518" elapsed="0.000453"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:44.855918" elapsed="0.001170"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:44.855867" elapsed="0.001289"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:44.872714" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:44.872886" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:44.872988" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:44.867118" elapsed="0.005897"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:44.873557" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:44.873128" elapsed="0.000508"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:44.877030" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:44.873863" elapsed="0.003260"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:44.873672" elapsed="0.003500"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:44.873098" elapsed="0.004105"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:44.877372" elapsed="0.000236"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:44.881154" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:44.878075" elapsed="0.003188">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:44.877870" elapsed="0.003561">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:44.877685" elapsed="0.003835">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:44.866677" elapsed="0.014984">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:44.853796" elapsed="0.027997">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:46.884632" 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-08-15T23:16:46.883698" elapsed="0.001007"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:46.885470" elapsed="0.000453"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:46.884891" elapsed="0.001118"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:46.884843" elapsed="0.001251"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:46.903555" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:46.903724" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:46.903822" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:46.896202" elapsed="0.007646"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:46.904243" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:46.903926" elapsed="0.000373"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:46.906496" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:46.904447" elapsed="0.002101"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:46.904324" elapsed="0.002271"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:46.903906" elapsed="0.002711"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:46.906741" elapsed="0.000172"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:46.909398" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:46.907246" elapsed="0.002287">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:46.907123" elapsed="0.002486">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:46.906970" elapsed="0.002703">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:46.895544" elapsed="0.014232">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:46.882748" elapsed="0.027125">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:48.912619" 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-08-15T23:16:48.911696" elapsed="0.000993"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:48.913445" elapsed="0.000471"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:48.912871" elapsed="0.001129"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:48.912823" elapsed="0.001260"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:48.933089" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:48.933272" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:48.933430" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:48.926443" elapsed="0.007026"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:48.934035" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:48.933583" elapsed="0.000560"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:48.937401" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:48.934363" elapsed="0.003180"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:48.934181" elapsed="0.003414"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:48.933554" elapsed="0.004074"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:48.937843" elapsed="0.000272"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:48.941791" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:48.938568" elapsed="0.003336">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:48.938393" elapsed="0.003620">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:48.938198" elapsed="0.003930">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:48.926006" elapsed="0.016275">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:48.910761" elapsed="0.031629">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:50.945196" 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-08-15T23:16:50.944277" elapsed="0.000992"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:50.946001" elapsed="0.000486"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:50.945454" elapsed="0.001121"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:50.945407" elapsed="0.001224"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:50.964457" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:50.964627" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:50.964789" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:50.956644" elapsed="0.008172"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:50.965213" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:50.964895" elapsed="0.000375"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:50.967487" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:50.965427" elapsed="0.002112"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:50.965295" elapsed="0.002278"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:50.964876" elapsed="0.002720"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:50.967721" elapsed="0.000173"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:50.970585" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:50.968230" elapsed="0.002456">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:50.968108" elapsed="0.002654">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:50.967951" elapsed="0.002873">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:50.956013" elapsed="0.014915">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:50.943315" elapsed="0.027711">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:52.974020" 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-08-15T23:16:52.973017" elapsed="0.001139"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:52.975094" elapsed="0.000577"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:52.974393" elapsed="0.001387"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:52.974333" elapsed="0.001518"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:52.993212" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:52.993505" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:52.993672" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:52.985970" elapsed="0.007740"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:52.994261" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:52.993823" elapsed="0.000521"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:52.997580" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:52.994572" elapsed="0.003084"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:52.994380" elapsed="0.003327"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:52.993795" elapsed="0.003945"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:52.997917" elapsed="0.000264"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:53.001965" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:52.998693" elapsed="0.003369">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:52.998471" elapsed="0.003671">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:52.998264" elapsed="0.003944">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:52.985549" elapsed="0.016766">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:52.971951" elapsed="0.030467">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:55.005298" 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-08-15T23:16:55.004315" elapsed="0.001056"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:55.006150" elapsed="0.000462"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:55.005557" elapsed="0.001143"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:55.005509" elapsed="0.001248"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:55.026350" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:55.026512" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:55.026669" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:55.019486" elapsed="0.007220"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:55.027250" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:55.026818" elapsed="0.000512"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:55.030394" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:55.027541" elapsed="0.002924"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:55.027365" elapsed="0.003150"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:55.026790" elapsed="0.003760"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:55.030720" elapsed="0.000235"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:55.034417" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:55.031400" elapsed="0.003124">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:55.031234" elapsed="0.003390">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:55.031031" elapsed="0.003677">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:55.019068" elapsed="0.015781">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:55.003396" elapsed="0.031675">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:57.037879" 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-08-15T23:16:57.036929" elapsed="0.001021"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:57.038737" elapsed="0.000493"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:57.038169" elapsed="0.001150"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:57.038120" elapsed="0.001257"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:57.056273" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:57.056443" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:57.056541" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:57.049377" elapsed="0.007193"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:57.057146" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:57.056673" elapsed="0.000554"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:57.060295" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:57.057437" elapsed="0.002930"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:57.057263" elapsed="0.003152"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:57.056643" elapsed="0.003802"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:57.060615" elapsed="0.000236"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:57.064662" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:57.061342" elapsed="0.003426">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:57.061174" elapsed="0.003700">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:57.060931" elapsed="0.004063">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:57.048938" elapsed="0.016296">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:57.035992" elapsed="0.029382">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:59.068387" 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-08-15T23:16:59.067405" elapsed="0.001059"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:16:59.069293" elapsed="0.000498"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:59.068663" elapsed="0.001225"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:59.068612" elapsed="0.001337"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:16:59.088687" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:16:59.088870" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:16:59.088970" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:16:59.081189" elapsed="0.007807"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:16:59.089398" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:16:59.089099" elapsed="0.000357"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:16:59.091698" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:16:59.089608" elapsed="0.002141"/>
</kw>
<status status="PASS" start="2026-08-15T23:16:59.089481" elapsed="0.002302"/>
</branch>
<status status="PASS" start="2026-08-15T23:16:59.089078" elapsed="0.002728"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:16:59.091929" elapsed="0.000190"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:16:59.094626" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:59.092436" elapsed="0.002288">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:59.092315" elapsed="0.002519">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:59.092177" elapsed="0.002823">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:59.080589" elapsed="0.014600">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:59.066390" elapsed="0.028946">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:01.098335" 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-08-15T23:17:01.097404" elapsed="0.001004"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:01.099194" elapsed="0.000518"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:01.098598" elapsed="0.001204"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:01.098550" elapsed="0.001310"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:01.117714" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:01.117883" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:01.118002" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:01.109360" elapsed="0.008669"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:01.118458" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:01.118137" elapsed="0.000378"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:01.122284" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:01.118669" elapsed="0.003667"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:01.118541" elapsed="0.003831"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:01.118114" elapsed="0.004280"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:01.122528" elapsed="0.000175"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:01.125301" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:01.123021" elapsed="0.002362">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:01.122898" elapsed="0.002606">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:01.122760" elapsed="0.002808">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:01.108758" elapsed="0.016941">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:01.096443" elapsed="0.029363">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:03.128734" 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-08-15T23:17:03.127750" elapsed="0.001060"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:03.129669" elapsed="0.000524"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:03.129010" elapsed="0.001279"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:03.128959" elapsed="0.001392"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:03.147983" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:03.148235" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:03.148375" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:03.141385" elapsed="0.007027"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:03.148927" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:03.148522" elapsed="0.000483"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:03.152133" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:03.149237" elapsed="0.002969"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:03.149040" elapsed="0.003214"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:03.148495" elapsed="0.003790"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:03.152455" elapsed="0.000236"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:03.156433" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:03.153137" elapsed="0.003477">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:03.152953" elapsed="0.003766">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:03.152768" elapsed="0.004037">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:03.140941" elapsed="0.016008">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:03.126760" elapsed="0.030345">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:05.159263" 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-08-15T23:17:05.158480" elapsed="0.000856"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:05.160162" elapsed="0.000471"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:05.159529" elapsed="0.001193"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:05.159479" elapsed="0.001302"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:05.178411" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:05.178588" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:05.178692" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:05.171832" elapsed="0.006887"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:05.179216" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:05.178800" elapsed="0.000498"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:05.182421" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:05.179511" elapsed="0.003059"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:05.179334" elapsed="0.003287"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:05.178780" elapsed="0.003871"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:05.182824" elapsed="0.000261"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:05.186549" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:05.183526" elapsed="0.003129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:05.183358" elapsed="0.003401">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:05.183166" elapsed="0.003680">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:05.171403" elapsed="0.015591">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:05.157808" elapsed="0.029346">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:07.189877" 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-08-15T23:17:07.188974" elapsed="0.000975"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:07.190714" elapsed="0.000532"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:07.190162" elapsed="0.001173"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:07.190115" elapsed="0.001276"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:07.209031" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:07.209218" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:07.209388" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:07.201860" elapsed="0.007556"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:07.209804" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:07.209498" elapsed="0.000364"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:07.212228" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:07.210019" elapsed="0.002285"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:07.209888" elapsed="0.002468"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:07.209478" elapsed="0.002911"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:07.212570" elapsed="0.000249"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:07.216662" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:07.213338" elapsed="0.003438">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:07.213139" elapsed="0.003748">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:07.212900" elapsed="0.004079">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:07.201246" elapsed="0.015908">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:07.188099" elapsed="0.029208">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:09.220217" 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-08-15T23:17:09.219292" elapsed="0.001001"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:09.221032" elapsed="0.000488"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:09.220480" elapsed="0.001127"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:09.220433" elapsed="0.001231"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:09.241400" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:09.241641" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:09.241742" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:09.232715" elapsed="0.009054"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:09.242182" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:09.241865" elapsed="0.000375"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:09.244412" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:09.242389" elapsed="0.002075"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:09.242265" elapsed="0.002234"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:09.241845" elapsed="0.002678"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:09.244647" elapsed="0.000171"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:09.247724" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:09.245144" elapsed="0.002685">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:09.245009" elapsed="0.002922">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:09.244874" elapsed="0.003151">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:09.232145" elapsed="0.016084">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:09.218324" elapsed="0.030043">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:11.251341" 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-08-15T23:17:11.250396" elapsed="0.001018"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:11.252199" elapsed="0.000463"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:11.251603" elapsed="0.001149"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:11.251555" elapsed="0.001254"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:11.272643" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:11.272811" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:11.272955" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:11.262472" elapsed="0.010511"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:11.273381" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:11.273085" elapsed="0.000353"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:11.277628" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:11.273587" elapsed="0.004156"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:11.273464" elapsed="0.004373"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:11.273044" elapsed="0.004847"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:11.278254" elapsed="0.000442"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:11.284328" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:11.279494" elapsed="0.004998">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:11.279202" elapsed="0.005453">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:11.278833" elapsed="0.005959">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:11.261876" elapsed="0.023244">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:11.249416" elapsed="0.035899">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:13.288341" 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-08-15T23:17:13.287338" elapsed="0.001079"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:13.289364" elapsed="0.000561"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:13.288687" elapsed="0.001416"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:13.288618" elapsed="0.001574"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:13.309125" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:13.309347" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:13.309504" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:13.300574" elapsed="0.008968"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:13.310156" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:13.309657" elapsed="0.000591"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:13.313423" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:13.310467" elapsed="0.003034"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:13.310286" elapsed="0.003267"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:13.309629" elapsed="0.003958"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:13.313776" elapsed="0.000241"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:13.317574" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:13.314484" elapsed="0.003246">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:13.314315" elapsed="0.003531">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:13.314123" elapsed="0.003811">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:13.300147" elapsed="0.018049">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:13.286314" elapsed="0.032022">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:15.321338" 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-08-15T23:17:15.320398" elapsed="0.001011"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:15.322268" elapsed="0.000480"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:15.321609" elapsed="0.001230"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:15.321552" elapsed="0.001345"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:15.340548" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:15.340720" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:15.340821" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:15.332499" elapsed="0.008348"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:15.341250" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:15.340928" elapsed="0.000380"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:15.343731" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:15.341456" elapsed="0.002348"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:15.341333" elapsed="0.002520"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:15.340909" elapsed="0.002976"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:15.344080" elapsed="0.000248"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:15.348295" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:15.344766" elapsed="0.003650">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:15.344597" elapsed="0.003926">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:15.344406" elapsed="0.004275">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:15.331843" elapsed="0.017000">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:15.319422" elapsed="0.029582">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:17.352102" 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-08-15T23:17:17.351170" elapsed="0.001012"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:17.352933" elapsed="0.000492"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:17.352377" elapsed="0.001136"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:17.352328" elapsed="0.001241"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:17.370117" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:17.370293" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:17.370434" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:17.362755" elapsed="0.007715"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:17.370985" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:17.370581" elapsed="0.000503"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:17.374154" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:17.371295" elapsed="0.002932"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:17.371121" elapsed="0.003155"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:17.370554" elapsed="0.003753"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:17.374479" elapsed="0.000233"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:17.378211" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:17.375161" elapsed="0.003156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:17.374972" elapsed="0.003486">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:17.374788" elapsed="0.003745">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:17.362338" elapsed="0.016300">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:17.350197" elapsed="0.028538">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:19.381826" 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-08-15T23:17:19.380788" elapsed="0.001117"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:19.382741" elapsed="0.000526"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:19.382140" elapsed="0.001221"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:19.382086" elapsed="0.001338"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:19.401510" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:19.401682" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:19.401792" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:19.393749" elapsed="0.008070"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:19.402216" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:19.401898" elapsed="0.000375"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:19.404497" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:19.402449" elapsed="0.002100"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:19.402298" elapsed="0.002286"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:19.401878" elapsed="0.002728"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:19.404729" elapsed="0.000170"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:19.408228" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:19.405253" elapsed="0.003151">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:19.405133" elapsed="0.003375">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:19.404954" elapsed="0.003639">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:19.393131" elapsed="0.015603">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:19.379744" elapsed="0.029121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:21.411777" 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-08-15T23:17:21.410803" elapsed="0.001046"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:21.412699" elapsed="0.000515"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:21.412037" elapsed="0.001267"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:21.411989" elapsed="0.001372"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:21.433338" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:21.433511" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:21.433616" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:21.426067" elapsed="0.007576"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:21.434019" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:21.433721" elapsed="0.000373"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:21.436384" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:21.434245" elapsed="0.002273"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:21.434119" elapsed="0.002456"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:21.433701" elapsed="0.002910"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:21.436787" elapsed="0.000241"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:21.440856" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:21.437491" elapsed="0.003475">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:21.437322" elapsed="0.003775">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:21.437132" elapsed="0.004057">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:21.425637" elapsed="0.015693">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:21.409796" elapsed="0.031674">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:23.444346" 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-08-15T23:17:23.443421" elapsed="0.000996"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:23.445235" elapsed="0.000464"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:23.444603" elapsed="0.001184"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:23.444555" elapsed="0.001287"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:23.463107" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:23.463265" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:23.463422" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:23.455605" elapsed="0.007844"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:23.463828" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:23.463528" elapsed="0.000357"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:23.466081" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:23.464033" elapsed="0.002101"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:23.463909" elapsed="0.002260"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:23.463509" elapsed="0.002683"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:23.466316" elapsed="0.000170"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:23.469554" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:23.466796" elapsed="0.002877">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:23.466675" elapsed="0.003101">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:23.466542" elapsed="0.003321">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:23.455001" elapsed="0.015004">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:23.442447" elapsed="0.027728">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:25.473002" 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-08-15T23:17:25.472041" elapsed="0.001067"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:25.473919" elapsed="0.000527"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:25.473306" elapsed="0.001228"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:25.473256" elapsed="0.001337"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:25.494915" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:25.495162" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:25.495293" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:25.487258" elapsed="0.008061"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:25.495735" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:25.495409" elapsed="0.000384"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:25.498037" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:25.495946" elapsed="0.002157"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:25.495820" elapsed="0.002345"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:25.495386" elapsed="0.002803"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:25.498311" elapsed="0.000171"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:25.501904" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:25.498893" elapsed="0.003119">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:25.498722" elapsed="0.003428">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:25.498541" elapsed="0.003699">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:25.486652" elapsed="0.015734">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:25.471126" elapsed="0.031393">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:27.505628" 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-08-15T23:17:27.504680" elapsed="0.001022"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:27.506481" elapsed="0.000452"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:27.505890" elapsed="0.001131"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:27.505842" elapsed="0.001265"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:27.524942" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:27.525123" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:27.525237" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:27.517203" elapsed="0.008062"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:27.525643" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:27.525348" elapsed="0.000352"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:27.527896" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:27.525850" elapsed="0.002099"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:27.525725" elapsed="0.002259"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:27.525329" elapsed="0.002677"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:27.528144" elapsed="0.000170"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:27.531540" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:27.528624" elapsed="0.003019">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:27.528503" elapsed="0.003247">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:27.528370" elapsed="0.003466">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:27.516599" elapsed="0.015379">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:27.503762" elapsed="0.028437">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:29.534937" 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-08-15T23:17:29.534021" elapsed="0.000986"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:29.535786" elapsed="0.000514"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:29.535225" elapsed="0.001165"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:29.535176" elapsed="0.001270"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:29.554730" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:29.554897" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:29.554995" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:29.547151" elapsed="0.007870"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:29.555411" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:29.555120" elapsed="0.000349"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:29.557685" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:29.555619" elapsed="0.002118"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:29.555493" elapsed="0.002279"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:29.555100" elapsed="0.002695"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:29.557920" elapsed="0.000187"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:29.560664" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:29.558425" elapsed="0.002330">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:29.558300" elapsed="0.002562">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:29.558164" elapsed="0.002785">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:29.546555" elapsed="0.014640">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:29.533130" elapsed="0.028206">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:31.564177" 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-08-15T23:17:31.563233" elapsed="0.001021"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:31.565001" elapsed="0.000489"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:31.564442" elapsed="0.001137"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:31.564394" elapsed="0.001241"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:31.583402" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:31.583570" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:31.583686" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:31.576066" elapsed="0.007647"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:31.584102" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:31.583792" elapsed="0.000369"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:31.586359" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:31.584313" elapsed="0.002098"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:31.584186" elapsed="0.002261"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:31.583772" elapsed="0.002697"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:31.586593" elapsed="0.000171"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:31.589850" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:31.587086" elapsed="0.002876">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:31.586952" elapsed="0.003136">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:31.586819" elapsed="0.003427">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:31.575467" elapsed="0.014924">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:31.562309" elapsed="0.028218">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:33.593377" 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-08-15T23:17:33.592454" elapsed="0.000995"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:33.594228" elapsed="0.000507"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:33.593637" elapsed="0.001188"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:33.593590" elapsed="0.001290"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:33.612571" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:33.612733" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:33.612832" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:33.605533" elapsed="0.007326"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:33.613259" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:33.612943" elapsed="0.000373"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:33.615533" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:33.613469" elapsed="0.002116"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:33.613341" elapsed="0.002279"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:33.612922" elapsed="0.002720"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:33.615766" elapsed="0.000174"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:33.618637" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:33.616267" elapsed="0.002449">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:33.616147" elapsed="0.002703">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:33.615997" elapsed="0.002940">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:33.604933" elapsed="0.014170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:33.591483" elapsed="0.027760">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:35.622003" 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-08-15T23:17:35.621097" 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-08-15T23:17:35.622846" elapsed="0.000495"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:35.622290" elapsed="0.001138"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:35.622244" elapsed="0.001238"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:35.641240" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:35.641414" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:35.641514" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:35.633610" elapsed="0.007930"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:35.641915" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:35.641620" elapsed="0.000358"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:35.644291" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:35.642148" elapsed="0.002195"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:35.642004" elapsed="0.002375"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:35.641601" elapsed="0.002804"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:35.644529" elapsed="0.000173"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:35.647789" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:35.645020" elapsed="0.002947">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:35.644893" elapsed="0.003208">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:35.644759" elapsed="0.003432">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:35.632996" elapsed="0.015340">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:35.620186" elapsed="0.028286">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:37.651371" 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-08-15T23:17:37.650440" elapsed="0.001004"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:37.652229" elapsed="0.000494"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:37.651631" elapsed="0.001181"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:37.651583" elapsed="0.001287"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:37.667764" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:37.667929" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:37.668040" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:37.662621" elapsed="0.005467"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:37.668465" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:37.668169" elapsed="0.000353"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:37.671110" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:37.668673" elapsed="0.002577"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:37.668548" elapsed="0.002752"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:37.668149" elapsed="0.003183"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:37.671508" elapsed="0.000240"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:37.675262" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:37.672199" elapsed="0.003169">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:37.672008" elapsed="0.003463">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:37.671824" elapsed="0.003733">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:37.662203" elapsed="0.013497">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:37.649448" elapsed="0.026389">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:39.678683" 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-08-15T23:17:39.677722" elapsed="0.001034"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:39.679538" elapsed="0.000461"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:39.678943" elapsed="0.001180"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:39.678895" elapsed="0.001289"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:39.697271" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:39.697488" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:39.697705" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:39.690617" elapsed="0.007126"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:39.698288" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:39.697855" elapsed="0.000513"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:39.701552" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:39.698596" elapsed="0.003029"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:39.698403" elapsed="0.003270"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:39.697827" elapsed="0.003877"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:39.701876" elapsed="0.000263"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:39.705938" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:39.702632" elapsed="0.003415">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:39.702431" elapsed="0.003749">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:39.702223" elapsed="0.004047">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:39.690188" elapsed="0.016225">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:39.676800" elapsed="0.029744">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:41.709565" 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-08-15T23:17:41.708578" elapsed="0.001058"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:41.710424" elapsed="0.000477"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:41.709830" elapsed="0.001171"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:41.709781" elapsed="0.001315"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:41.728028" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:41.728445" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:41.728628" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:41.721181" elapsed="0.007495"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:41.729385" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:41.728817" elapsed="0.000678"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:41.733791" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:41.729791" elapsed="0.004069"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:41.729547" elapsed="0.004359"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:41.728781" elapsed="0.005155"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:41.734135" elapsed="0.000243"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:41.737886" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:41.734791" elapsed="0.003191">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:41.734627" elapsed="0.003479">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:41.734452" elapsed="0.003753">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:41.720755" elapsed="0.017625">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:41.707569" elapsed="0.030943">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:43.741327" 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-08-15T23:17:43.740397" elapsed="0.001004"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:43.742177" elapsed="0.000462"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:43.741585" elapsed="0.001142"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:43.741538" elapsed="0.001245"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:43.758995" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:43.759180" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:43.759338" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:43.752760" elapsed="0.006625"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:43.759926" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:43.759520" elapsed="0.000484"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:43.763151" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:43.760243" elapsed="0.002981"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:43.760039" elapsed="0.003233"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:43.759487" elapsed="0.003830"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:43.763490" elapsed="0.000238"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:43.767191" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:43.764176" elapsed="0.003153">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:43.763988" elapsed="0.003448">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:43.763805" elapsed="0.003717">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:43.752338" elapsed="0.015326">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:43.739416" elapsed="0.028448">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:45.770814" 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-08-15T23:17:45.769865" elapsed="0.001021"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:45.771677" elapsed="0.000491"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:45.771107" elapsed="0.001150"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:45.771029" elapsed="0.001285"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:45.788566" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:45.788785" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:45.788922" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:45.781668" elapsed="0.007291"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:45.789505" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:45.789088" elapsed="0.000494"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:45.792765" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:45.789786" elapsed="0.003053"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:45.789616" elapsed="0.003271"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:45.789041" elapsed="0.003877"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:45.793112" elapsed="0.000237"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:45.797187" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:45.793778" elapsed="0.003516">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:45.793614" elapsed="0.003773">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:45.793427" elapsed="0.004022">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:45.781210" elapsed="0.016396">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:45.768873" elapsed="0.028832">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:47.800668" 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-08-15T23:17:47.799624" elapsed="0.001118"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:47.801578" elapsed="0.000505"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:47.800932" elapsed="0.001244"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:47.800882" elapsed="0.001352"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:47.819893" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:47.820136" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:47.820292" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:47.812877" elapsed="0.007453"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:47.820849" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:47.820444" elapsed="0.000484"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:47.824010" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:47.821156" elapsed="0.002946"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:47.820962" elapsed="0.003188"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:47.820416" elapsed="0.003766"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:47.824386" elapsed="0.000239"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:47.828090" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:47.825076" elapsed="0.003120">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:47.824889" elapsed="0.003423">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:47.824702" elapsed="0.003778">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:47.812462" elapsed="0.016167">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:47.798638" elapsed="0.030125">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:49.831640" 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-08-15T23:17:49.830618" elapsed="0.001103"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:49.832510" elapsed="0.000459"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:49.831911" elapsed="0.001175"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:49.831863" elapsed="0.001284"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:49.850095" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:49.850305" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:49.850457" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:49.843419" elapsed="0.007076"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:49.851047" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:49.850610" elapsed="0.000539"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:49.854204" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:49.851358" elapsed="0.002918"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:49.851184" elapsed="0.003140"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:49.850582" elapsed="0.003773"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:49.854526" elapsed="0.000266"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:49.858277" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:49.855277" elapsed="0.003106">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:49.855109" elapsed="0.003445">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:49.854900" elapsed="0.003744">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:49.842987" elapsed="0.015798">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:49.829650" elapsed="0.029288">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:51.861218" 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-08-15T23:17:51.860520" elapsed="0.000748"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-08-15T23:17:51.861779" elapsed="0.000330"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:51.861397" elapsed="0.000770"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:51.861365" elapsed="0.000839"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:51.879081" level="INFO">GET Request : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:51.879301" level="INFO">GET Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-08-15T23:17:51.879446" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-08-15T23:17:51.871187" elapsed="0.008297"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-08-15T23:17:51.880026" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-08-15T23:17:51.879599" elapsed="0.000532"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:51.883486" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:51.880359" elapsed="0.003208"/>
</kw>
<status status="PASS" start="2026-08-15T23:17:51.880168" elapsed="0.003448"/>
</branch>
<status status="PASS" start="2026-08-15T23:17:51.879571" elapsed="0.004079"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-08-15T23:17:51.883831" elapsed="0.000269"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:51.888043" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:51.884552" elapsed="0.003689">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:51.884376" elapsed="0.003978">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:51.884182" elapsed="0.004262">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:51.870757" elapsed="0.017838">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:51.859743" elapsed="0.029030">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<msg time="2026-08-15T23:17:51.888911" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:16:20.499470" elapsed="91.389615">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:51.889353" elapsed="0.000032"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:51.890564" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-08-15T23:17:52.167211" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:17:52.167626" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:17:52.167728" 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-08-15T23:17:52.167820" 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-08-15T23:17:51.890307" elapsed="0.277566"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:52.169220" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:52.168423" elapsed="0.000893"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:52.170017" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-08-15T23:17:52.496558" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:17:52.496939" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:17:52.497092" 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-08-15T23:17:52.497303" 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-08-15T23:17:52.169638" elapsed="0.327723"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:52.498361" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-08-15T23:17:52.552925" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:17:52.553252" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-08-15T23:17:52.553354" level="INFO">${stderr} = </msg>
<msg time="2026-08-15T23:17:52.553442" 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-08-15T23:17:52.497860" elapsed="0.055643"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:52.554111" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-08-15T23:17:52.610678" 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-08-15T23:17:52.553857" elapsed="0.056957"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:52.625204" level="INFO">DELETE Request : url=http://10.30.171.84: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=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:52.625368" level="INFO">DELETE Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:52.625677" 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-08-15T23:17:52.611177" elapsed="0.014577"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:52.633453" level="INFO">DELETE Request : url=http://10.30.171.84: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=node01vfzt2t6zinmd1l86fw59hvsgh5.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:52.633779" level="INFO">DELETE Response : url=http://10.30.171.84:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-08-15T23:17:52.633937" 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-08-15T23:17:52.626212" elapsed="0.007763"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-08-15T23:17:51.889828" elapsed="0.744281"/>
</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-08-15T23:16:19.707572" elapsed="92.926622">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC8RAGrtKHIzyHTspS7hPaelLJ9l/g0u02zONArUMMrsY+ZzyxfMehyvdkK6AqZddm6B9e+pJYHnMpm2AaYuYB9B2ZOaW6YIf3aPrkTuTBPPHwUK/+DPxw1lT9tILJf0R4CnmP6YviLfGFFSNFdlxGWPkcsFxespJWFPWzXts+OyFJbnkzc2tDXfnAnJlZwZTiEHfS3KHa3/tXtReq/fWrwJ8YxKR8NkwgGHjPoCuAoRrJHm8QHC/W69aer87MiNjEKHBiVeMCaA/KBxsOKUGSIZdH7/Z+8cyfPRfmJ5c5GUTFKrqyeCufe8GztZMJpcRZeyVfEq9pwdQi9L4qOQ9Zp","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-08-15T23:17:52.636700" level="INFO">Creating Session using : alias=session, url=http://10.30.171.84:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7a683dcf2f10&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-08-15T23:17:52.636299" elapsed="0.000622"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:52.637311" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-08-15T23:17:52.658706" 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-08-15T23:17:52.637159" elapsed="0.021677"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:52.659413" 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-08-15T23:17:53.151327" 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-08-15T23:17:52.659194" elapsed="0.492278"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:53.152033" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-08-15T23:17:53.195028" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:17:53.195293" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCSQGUWy4njzMB/ZJdq5wAbLMS/aPKVZKdV/zXvPtFV+MWF4hDeEB2Uy/xAf9zI6GbE6KPtt2ycHrexG9Jxa0GE13SEVlQ3V3gdBen3jcDD8eMFGZnv4IR7qcd5VRQLQlUNpgIp3U/yA3sDge0enMpe7veul+wfpMRl1TWWzoM6...</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-08-15T23:17:53.151802" elapsed="0.043552"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-08-15T23:17:53.203250" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCSQGUWy4njzMB/ZJdq5wAbLMS/aPKVZKdV/zXvPtFV+MWF4hDeEB2Uy/xAf9zI6GbE6KPtt2ycHrexG9Jxa0GE13SEVlQ3V3gdBen3jcDD8eMFGZnv4IR7qcd5VRQLQlUNpgIp3U/yA3sDge0enMpe7veul+wfpMRl1TWWzoM6...</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-08-15T23:17:53.195828" elapsed="0.007491"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-08-15T23:17:52.635871" elapsed="0.567535"/>
</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-08-15T23:17:53.204655" level="INFO">Executing command 'rm -rf ./certs &amp;&amp; mkdir ./certs'.</msg>
<msg time="2026-08-15T23:17:53.246811" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:17:53.247016" 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-08-15T23:17:53.204514" elapsed="0.042594"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:17:53.294522" 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-08-15T23:17:53.247415" elapsed="0.047237"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:53.295220" level="INFO">Executing command 'openssl genrsa -out ./certs/ca.key 2048'.</msg>
<msg time="2026-08-15T23:17:53.388582" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:17:53.388806" 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-08-15T23:17:53.294965" elapsed="0.093899"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:53.389466" 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-08-15T23:17:53.445729" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:17:53.446165" 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-08-15T23:17:53.389223" elapsed="0.057005"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:53.446962" level="INFO">Executing command 'openssl genrsa -out ./certs/server.key 2048'.</msg>
<msg time="2026-08-15T23:17:53.870595" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:17:53.870865" 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-08-15T23:17:53.446675" elapsed="0.424247"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:53.871602" 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-08-15T23:17:53.933276" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:17:53.933505" 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-08-15T23:17:53.871328" elapsed="0.062235"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:53.934192" 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-08-15T23:17:53.993687" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:17:53.993949" 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-08-15T23:17:53.933921" elapsed="0.060086"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:53.994595" level="INFO">Executing command 'openssl rsa -in ./certs/server.key -pubout &gt; ./certs/server.pub'.</msg>
<msg time="2026-08-15T23:17:54.043606" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:17:54.043839" 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-08-15T23:17:53.994371" elapsed="0.049525"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:54.044501" level="INFO">Executing command 'openssl genrsa -out ./certs/client.key 2048'.</msg>
<msg time="2026-08-15T23:17:54.241182" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:17:54.241428" 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-08-15T23:17:54.044268" elapsed="0.197216"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:54.242146" 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-08-15T23:17:54.301487" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:17:54.301711" 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-08-15T23:17:54.241827" elapsed="0.059940"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:54.302378" 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-08-15T23:17:54.361772" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:17:54.362017" 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-08-15T23:17:54.302151" elapsed="0.059960"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:54.362772" level="INFO">Executing command 'mv ./certs ./configuration-files/certs'.</msg>
<msg time="2026-08-15T23:17:54.411397" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:17:54.411628" 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-08-15T23:17:54.362544" elapsed="0.049141"/>
</kw>
<doc>Generates certificates for 2-way TLS authentication (ca, server, client)</doc>
<status status="PASS" start="2026-08-15T23:17:53.204141" elapsed="1.207702"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:17:54.457879" 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-08-15T23:17:54.412181" elapsed="0.045909"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:17:54.463697" 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-08-15T23:17:54.458445" elapsed="0.005336"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-08-15T23:17:54.469565" 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-08-15T23:17:54.463973" elapsed="0.005671"/>
</kw>
<doc>Upload netopeer2 configuration files needed for TLS transport</doc>
<status status="PASS" start="2026-08-15T23:17:53.203649" elapsed="1.266090"/>
</kw>
<kw name="Register keys and certificates in ODL controller" owner="NetconfCallHome">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:54.470849" level="INFO">Executing command 'cat ./configuration-files/certs/client.key'.</msg>
<msg time="2026-08-15T23:17:54.483118" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:17:54.483275" level="INFO">${pem-client-key} = -----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC8j2+xuK6rod7R
hvJXoytqItPYAEnnUrLIharsZViYiMLyJ82KLJ0aNBogqZ79YDk/9ZWaoRj8laeG
5NnvqoAjgUgCBXPJFpfRN9COG9Oi69fAMsF5zepaLL...</msg>
<msg time="2026-08-15T23:17:54.483337" 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-08-15T23:17:54.470624" elapsed="0.012744"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-08-15T23:17:54.483788" 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-08-15T23:17:54.483986" 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-08-15T23:17:54.483572" elapsed="0.000450"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-08-15T23:17:54.484603" level="INFO">${body} = {
    "input": {
        "key-credential": [
            {
                "key-id": "tls-device-key",
                "private-key": "-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwg...</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-08-15T23:17:54.484258" elapsed="0.000383"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:54.521807" level="INFO">POST Request : url=http://10.30.171.84: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-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC8j2+xuK6rod7R
hvJXoytqItPYAEnnUrLIharsZViYiMLyJ82KLJ0aNBogqZ79YDk/9ZWaoRj8laeG
5NnvqoAjgUgCBXPJFpfRN9COG9Oi69fAMsF5zepaLLYVwLDWKlt4NcKrIddelWfk
TzIlhna85jpfpBhsS4d5lb7GdBcY9ZSn8F2pAHccAsASdHoiy9r3bgE+5ZRtRlOP
7GnkYVmGXARRqH7DpYg1N7hvl6UEEwUjQ/SbFeKdpil6C7bzU1EVqv/NyxLQuTvZ
2DUG8FSUBsa9Q7OqnuZRulBE/iT85Rg9n6ucBsMznG7uyaoWosElX53Yf0WdoWpy
O8xHWmITAgMBAAECggEAEJNHTUcfy6SaEq8bJIsKaPUQzD8SQAxr/OaLJOavyBDV
mjXXgprzYHdOCKsAd+N6hN3QvdwFd0asiFYbtk61nulhbBQQno+m3tRaN/PIQd0b
hSCxE0T/odemVfkvUlQ84C9RonuCFCVsEYzIqrXMQES4wumI4BQvn4eDUqynzyC4
siuwYWEiziBjSE/utj562VQutLOPt63FtEZ/4NH9tBGDs9A3ZBU2w9E3BK4iRMDS
KJ2dki5Th96QY+3Rf8EYmr/4o5UMtPc/lfv5NHu84OqtJTXkxh68FOyoIRMpQFsB
SDzPVm2xam6qTewqWmCMtYsJRXX2qFyVRBuD8D7D4QKBgQDptsdOLjEKZms6Gz/n
NUFaPXshazjDK8GPItTu150OucClG/iqBJ0nBDEqB8HK8nrAaUHBzyNu9JS8qfIX
vCzHxUHhCqKPLWAhSkfeu/2s7vdcQprIQRs251JvpZSWoO+lUlyPQVMOpe4FcnJH
aLBYFd/ZOtmL647XapP2srRb8QKBgQDOimfTOHF6KXlr5QVs7Tiw0L5N23vrG4Di
X9cshBXPcLO7wcFJHNsxu1BIu8UDON91w+2STNzS7JAxBgl47hHyPG7V0StvJu1d
Vr+yvswF9HGprFafmj0nuJTjs2VdUpI834bZ6SouNzQtpdMKZ24eUFf2AeLdc+UW
cWy7PYVyQwKBgEJ/bg/xlqSF5aZ/0FvhzDl32sv0bQ8jKQyn9XwLvzVMZuLTpZoC
fBB44eA6mso62fBbQol5fXR5hMR1eluEgB1LI+Z7Fyuz1nFCaFaYmKIW0CzhCpdF
5w9lHBCGRVPicK1SVOGxzYcScTn9iUSGJf66Ipn1Y6arHFZwja8Yw7aRAoGAAb/E
T1KcC2fMgnBnElwT7dNmuSwRqZULC1+6Z8MamC4hJ4blhyP6azpl3KfSbEuQAORO
371M5XBhbDjb3a1Oc5m1apQh5QgUXIT+jJn3ClnemIxAE4vv1qVGhYMgaaDoYiGW
d8P0un13MKfF2MG1egY+KHQtoqh3mTAOtqs3tRcCgYBbEfWx/0Gl2EwuQPJfo/YJ
n729nWiO4K2qIZIse7l+qj94LBzA7A9h5UB99g4gfJFJ0R484Twp3OIHra+OSg3l
Ml3F/5hD2L93HS4rP2kBl/PTUhblhLkfTkazbZJ3JGJUHkJuci7bKe+Lv+2UzV36
AJUsxaSP2ggzqqCUlEfckA==
-----END PRIVATE KEY-----",
                "passphrase": ""
            }
        ]
    }
}
 
 </msg>
<msg time="2026-08-15T23:17:54.522230" level="INFO">POST Response : url=http://10.30.171.84:8181/rests/operations/netconf-keystore:add-keystore-entry 
 status=500, reason=Internal Server Error 
 headers={'Set-Cookie': 'JSESSIONID=node01w5w5fn336cut11981vl770aa76.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 14-Aug-2026 23:17:54 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-08-15T23:17:54.522554" 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-08-15T23:17:54.484899" elapsed="0.037716"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-08-15T23:17:54.528010" 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-08-15T23:17:54.522966" elapsed="0.005236">'[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-08-15T23:17:54.528624" elapsed="0.000055"/>
</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-08-15T23:17:54.529020" elapsed="0.000089"/>
</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-08-15T23:17:54.529393" elapsed="0.000045"/>
</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-08-15T23:17:54.529725" elapsed="0.000055"/>
</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-08-15T23:17:54.530148" elapsed="0.000048"/>
</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-08-15T23:17:54.530485" elapsed="0.000043"/>
</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-08-15T23:17:54.530761" elapsed="0.000027"/>
</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-08-15T23:17:54.530995" elapsed="0.000031"/>
</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-08-15T23:17:54.531251" elapsed="0.000031"/>
</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-08-15T23:17:54.531448" elapsed="0.000028"/>
</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-08-15T23:17:54.531651" elapsed="0.000027"/>
</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-08-15T23:17:54.531855" elapsed="0.000027"/>
</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-08-15T23:17:54.532066" elapsed="0.000029"/>
</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-08-15T23:17:54.532290" elapsed="0.000027"/>
</kw>
<doc>Register pre-configured netopeer2 certificates and key in ODL-netconf keystore</doc>
<status status="FAIL" start="2026-08-15T23:17:54.470196" elapsed="0.062263">'[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-08-15T23:17:54.532709" elapsed="0.000033"/>
</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-08-15T23:17:54.532926" elapsed="0.000028"/>
</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-08-15T23:17:54.533196" elapsed="0.000029"/>
</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-08-15T23:17:54.533422" elapsed="0.000027"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:54.534543" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-08-15T23:17:54.810332" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:17:54.810608" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:17:54.810707" 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-08-15T23:17:54.810816" 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-08-15T23:17:54.534315" elapsed="0.276553"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-15T23:17:54.811886" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-15T23:17:54.811275" elapsed="0.000704"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:54.812668" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-08-15T23:17:55.127179" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-08-15T23:17:55.127505" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:17:55.127604" 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-08-15T23:17:55.127837" 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-08-15T23:17:54.812309" elapsed="0.315585"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:55.128762" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-08-15T23:17:55.185856" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:17:55.186433" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-08-15T23:17:55.186559" level="INFO">${stderr} = </msg>
<msg time="2026-08-15T23:17:55.186664" 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-08-15T23:17:55.128343" elapsed="0.058381"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-15T23:17:55.187668" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-08-15T23:17:55.238848" 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-08-15T23:17:55.187316" elapsed="0.051598"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:55.246847" level="INFO">DELETE Request : url=http://10.30.171.84: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=node01w5w5fn336cut11981vl770aa76.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:55.247012" level="INFO">DELETE Response : url=http://10.30.171.84:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '361'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:params:xml:ns:yang:netconf-callhome-server"&gt;/a:netconf-callhome-server/a:allowed-devices&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-08-15T23:17:55.247159" 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-08-15T23:17:55.239080" elapsed="0.008106"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:55.253557" level="INFO">DELETE Request : url=http://10.30.171.84: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=node01w5w5fn336cut11981vl770aa76.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-08-15T23:17:55.253670" level="INFO">DELETE Response : url=http://10.30.171.84:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-08-15T23:17:55.253782" 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-08-15T23:17:55.247329" elapsed="0.006479"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-08-15T23:17:54.533870" elapsed="0.720019"/>
</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-08-15T23:17:52.634868" elapsed="2.619085">'[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-08-15T23:17:55.255532" level="INFO">Executing command 'pip uninstall docker-compose'.</msg>
<msg time="2026-08-15T23:17:55.997004" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-15T23:17:55.997384" level="INFO">${stdout} = </msg>
<msg time="2026-08-15T23:17:55.997487" level="INFO">${stderr} = WARNING: Skipping docker-compose as it is not installed.</msg>
<msg time="2026-08-15T23:17:55.997579" 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-08-15T23:17:55.255338" elapsed="0.742293"/>
</kw>
<doc>Uninstall docker-compose on tools system</doc>
<status status="PASS" start="2026-08-15T23:17:55.255021" elapsed="0.742804"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary">
<msg time="2026-08-15T23:17:55.998373" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-08-15T23:17:55.998175" elapsed="0.001178"/>
</kw>
<kw name="Close All Connections" owner="SSHLibrary">
<doc>Closes all open connections.</doc>
<status status="PASS" start="2026-08-15T23:17:55.999655" elapsed="0.000788"/>
</kw>
<doc>Tearing down the setup.</doc>
<status status="PASS" start="2026-08-15T23:17:55.254747" elapsed="0.745834"/>
</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-08-15T23:09:54.664917" elapsed="481.335738"/>
</suite>
<status status="FAIL" start="2026-08-15T23:09:54.623143" elapsed="481.380816"/>
</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>
