+ Should Not Be Empty ${vnf_id}
+ Should Not Be Empty ${kdu_name}
+ ${rc} ${stdout}= Run and Return RC and Output osm vnf-show ${vnf_id} --kdu ${kdu_name} | yq -r .config.replicaCount
+ Should Be Equal As Integers ${rc} ${success_return_code} msg=${stdout} values=False
+ ${return} = Set Variable If '${stdout}' == 'null' ${EMPTY} ${stdout}
+ [Return] ${return}
+
+
+Get Application Names
+ [Documentation] Return the list of the application of a VNF instance.
+
+ [Arguments] ${ns_name}
+
+ Should Not Be Empty ${ns_name}
+ ${rc} ${stdout}= Run and Return RC and Output osm ns-show ${ns_name} --literal | yq -r ._admin.deployed.VCA[].application
+ Should Be Equal As Integers ${rc} ${success_return_code} msg=${stdout} values=False
+ @{app_names} = Split String ${stdout}
+ [Return] ${app_names}
+
+
+Get VDU Affinity Group Name
+ [Documentation] Return the affinity group name for a NF
+
+ [Arguments] ${ns_name} ${vnf_id} ${vdur_id}
+
+ ${rc} ${affinity_group_id}= Run and Return RC and Output osm vnf-show ${vnf_id} --literal | yq '.vdur[] | select(.id == "'${vdur_id}'")' | yq -r '."affinity-or-anti-affinity-group-id"[0]' 2>&1
+ Log ${affinity_group_id}
+ Should Be Equal As Integers ${rc} ${success_return_code} msg=${affinity_group_id} values=False
+ ${rc} ${affinity_group_name}= Run and Return RC and Output osm ns-show ${ns_name} --literal | yq '."affinity-or-anti-affinity-group"[] | select(.id == "'${affinity_group_id}'")' | yq -r '.name' 2>&1
+ Log ${affinity_group_name}
+ Should Be Equal As Integers ${rc} ${success_return_code} msg=${affinity_group_name} values=False
+ [Return] ${affinity_group_name}
+
+Get Operations By Type
+ [Documentation] Keyword to get the operation by type
+
+ [Arguments] ${ns_id} ${type}
+
+ Should Not Be Empty ${ns_id}
+ Should Not Be Empty ${type}
+ ${rc} ${stdout}= Run and Return RC and Output osm ns-op-list ${ns_id} | grep ${type} | awk '{print $2}' 2>&1
+ Log ${stdout}
+ Should Be Equal As Integers ${rc} ${success_return_code}
+ Should Not Be Empty ${stdout}
+ [Return] ${stdout}
+
+Cancel operation By Id
+ [Documentation] Cancels an ongoing operation by operation ID
+
+ [Arguments] ${op_id} ${cancel_mode}=GRACEFUL
+
+ Should Not Be Empty ${op_id}
+ ${rc} ${stdout}= Run and Return RC and Output osm ns-op-cancel ${op_id} --cancel_mode ${cancel_mode} --wait
+ Log ${stdout}
+ Should Be Equal As Integers ${rc} ${success_return_code}
+ [Return] ${stdout}
+
+GET Dual Ip
+ [Documentation] Get dual ip from the ns list
+ [Arguments] ${ns_id}
+ Should Not Be Empty ${ns_id}
+ ${rc} ${stdout}= Run and Return RC and Output osm ns-show ${ns_id} --literal | grep -A2 ip-address | awk '{print $2}' | paste -sd ',' | sed 's/^,//; s/,/, /g' | sed 's/^/[/; s/$/]/'
+ Log ${stdout}
+ [Return] ${stdout}