Feature 10996: cancel operation robot test
[osm/tests.git] / robot-systest / lib / ns_lib.robot
index 36ecd57..a37e509 100644 (file)
@@ -108,7 +108,7 @@ Get Ns Vnf List
     [Arguments]   ${ns_id}
 
     Should Not Be Empty   ${ns_id}
-    @{vnf_list_string}=   Run and Return RC and Output   osm vnf-list | grep ${ns_id} | awk '{print $2}' 2>&1
+    @{vnf_list_string}=   Run and Return RC and Output   osm vnf-list --ns ${ns_id} | grep ${ns_id} | awk '{print $2}' 2>&1
     # Returns a String of vnf_id and needs to be converted into a list
     @{vnf_list} =   Split String   ${vnf_list_string}[1]
     Log List   ${vnf_list}
@@ -284,48 +284,60 @@ Get Operations List
 
 
 Check For NS Operation Completed
-    [Documentation]   Check wheter the status of the desired operation is "COMPLETED" or not.
+    [Documentation]   Check whether the status of the desired operation is "COMPLETED" or not.
 
     [Arguments]   ${ns_operation_id}
 
     Should Not Be Empty   ${ns_operation_id}
-    ${rc}   ${stdout}=   Run and Return RC and Output   osm ns-op-show ${ns_operation_id} --literal | yq .operationState | tr -d \\"
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm ns-op-show ${ns_operation_id} --literal | yq -r .operationState
     Log   ${stdout}
     Should Be Equal As Integers   ${rc}   ${success_return_code}
     Should Contain   ${stdout}   COMPLETED   msg=The ns-action with id ${ns_operation_id} was not completed   values=False
 
 
 Check For NS Operation Failed
-    [Documentation]   Check wheter the status of the desired operation is "FAILED" or not.
+    [Documentation]   Check whether the status of the desired operation is "FAILED" or not.
 
     [Arguments]   ${ns_operation_id}
 
     Should Not Be Empty   ${ns_operation_id}
-    ${rc}   ${stdout}=   Run and Return RC and Output   osm ns-op-show ${ns_operation_id} --literal | yq .operationState | tr -d \\"
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm ns-op-show ${ns_operation_id} --literal | yq -r .operationState
     Log   ${stdout}
     Should Be Equal As Integers   ${rc}   ${success_return_code}
     Should Contain   ${stdout}   FAILED   msg=Timeout waiting for ns-action with id ${ns_operation_id}   values=False
 
 
 Check For NS Operation Ended
-    [Documentation]   Check wheter the status of the desired operation is "FAILED" or "COMPLETED".
+    [Documentation]   Check whether the status of the desired operation is "FAILED" or "COMPLETED".
 
     [Arguments]   ${ns_operation_id}
 
     Should Not Be Empty   ${ns_operation_id}
-    ${rc}   ${stdout}=   Run and Return RC and Output   osm ns-op-show ${ns_operation_id} --literal | yq .operationState | tr -d \\"
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm ns-op-show ${ns_operation_id} --literal | yq -r .operationState
     Log   ${stdout}
     Should Be Equal As Integers   ${rc}   ${success_return_code}
     Should Contain Any   ${stdout}   FAILED   COMPLETED   msg=Timeout waiting for ns-action with id ${ns_operation_id}   values=False
 
 
+Check For NS Operation Cancelled
+    [Documentation]   Check whether the operation was cancelled or not.
+
+    [Arguments]   ${ns_operation_id}
+
+    Should Not Be Empty   ${ns_operation_id}
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm ns-op-show ${ns_operation_id} --literal | yq -r '.operationState, .isCancelPending'
+    Log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    Should Contain   ${stdout}   FAILED_TEMP\nfalse   msg=Timeout waiting for ns-action with id ${ns_operation_id}   values=False
+
+
 Get Ns Vnfr Ids
     [Documentation]   Return a list with the IDs of the VNF records of a NS instance.
 
     [Arguments]   ${ns_id}
 
     Should Not Be Empty   ${ns_id}
-    ${rc}   ${stdout}=   Run and Return RC and Output   osm vnf-list | grep ${ns_id} | awk '{print $2}' 2>&1
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm vnf-list --ns ${ns_id} | grep ${ns_id} | awk '{print $2}' 2>&1
     Should Be Equal As Integers   ${rc}   ${success_return_code}   msg=${stdout}   values=False
     @{vdur} =   Split String   ${stdout}
     [Return]   @{vdur}
@@ -337,7 +349,7 @@ Get Vnf Vdur Names
     [Arguments]   ${vnf_id}
 
     Should Not Be Empty   ${vnf_id}
-    ${rc}   ${stdout}=   Run and Return RC and Output   osm vnf-show ${vnf_id} --literal | yq .vdur[].name | tr -d \\"
+    ${rc}   ${stdout}=   Run and Return RC and Output   osm vnf-show ${vnf_id} --literal | yq -r .vdur[].name
     Should Be Equal As Integers   ${rc}   ${success_return_code}   msg=${stdout}   values=False
     @{vdur} =   Split String   ${stdout}
     [Return]   @{vdur}
@@ -350,7 +362,7 @@ Get Vnf Kdu Replica Count
 
     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 .config.replicaCount | tr -d \\"
+    ${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}
@@ -362,7 +374,7 @@ Get Application Names
     [Arguments]   ${ns_name}
 
     Should Not Be Empty   ${ns_name}
-    ${rc}   ${stdout}=   Run and Return RC and Output   osm ns-show ${ns_name} --literal | yq ._admin.deployed.VCA[].application | tr -d \\"
+    ${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}
@@ -373,10 +385,10 @@ Get VDU Affinity Group Name
 
     [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 '."affinity-or-anti-affinity-group-id"[0]' | tr -d \\" 2>&1
+    ${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 '.name' | tr -d \\" 2>&1
+    ${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}
@@ -393,3 +405,14 @@ Get Operations By Type
     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}
\ No newline at end of file