diff --git a/robot-systest/lib/ns_lib.robot b/robot-systest/lib/ns_lib.robot
index 065a562..501bee2 100644
--- a/robot-systest/lib/ns_lib.robot
+++ b/robot-systest/lib/ns_lib.robot
@@ -117,6 +117,8 @@
 Check For Ns Instance To Configured
     [arguments]  ${ns_name}
 
+    ${rc}   ${stdout}=   Run and Return RC and Output   openstack server list
+    log   ${stdout}
     ${rc}   ${stdout}=   run and return rc and output   osm ns-list --filter name="${ns_name}"
     log   ${stdout}
     Should Be Equal As Integers   ${rc}   ${success_return_code}
@@ -125,6 +127,8 @@
 Check For NS Instance For Failure
     [Arguments]  ${ns_name}
 
+    ${rc}   ${stdout}=   Run and Return RC and Output   openstack server list
+    log   ${stdout}
     ${rc}   ${stdout}=   Run and Return RC and Output   osm ns-list --filter name="${ns_name}"
     log   ${stdout}
     Should Be Equal As Integers   ${rc}   ${success_return_code}
@@ -133,6 +137,8 @@
 Check For NS Instance To Be Deleted
     [Arguments]  ${ns}
 
+    ${rc}   ${stdout}=   Run and Return RC and Output   openstack server list
+    log   ${stdout}
     ${rc}   ${stdout}=   Run and Return RC and Output   osm ns-list | awk '{print $2}' | grep ${ns}
     Should Not Be Equal As Strings   ${stdout}   ${ns}
 
@@ -233,7 +239,7 @@
 
     [Arguments]  ${ns_operation_id}
 
-    ${rc}  ${stdout}=  Run and Return RC and Output  osm ns-op-show ${ns_operation_id} --literal | yq r - operationState
+    ${rc}  ${stdout}=  Run and Return RC and Output  osm ns-op-show ${ns_operation_id} --literal | yq .operationState | tr -d \\"
     log  ${stdout}
     Should Be Equal As Integers  ${rc}  ${success_return_code}
     Should Contain  ${stdout}  COMPLETED  msg=Timeout waiting for ns-action with id ${ns_operation_id}  values=False
@@ -255,8 +261,19 @@
 
     [Arguments]  ${vnf_id}
 
-    ${rc}  ${stdout}=  Run and Return RC and Output  osm vnf-show ${vnf_id} --literal | yq r - vdur.*.name
+    ${rc}  ${stdout}=  Run and Return RC and Output  osm vnf-show ${vnf_id} --literal | yq .vdur[].name | tr -d \\"
     Should Be Equal As Integers  ${rc}  ${success_return_code}  msg=${stdout}  values=False
     @{vdur} =  Split String  ${stdout}
     [Return]  @{vdur}
 
+
+Get Vnf Kdu Replica Count
+    [Documentation]     Return the number of KDU replicas (empty if none) of a VNF instance.
+
+    [Arguments]   ${vnf_id}   ${kdu_name}
+
+    ${rc}  ${stdout}=  Run and Return RC and Output  osm vnf-show ${vnf_id} --kdu ${kdu_name} | yq .config.replicaCount | tr -d \\"
+    Should Be Equal As Integers  ${rc}  ${success_return_code}  msg=${stdout}  values=False
+    ${return} =   Set Variable If   '${stdout}' == 'null'   ${EMPTY}    ${stdout}
+    [Return]  ${return}
+
