Robot fix for Autohealing tests

Change-Id: I40164ad92a59690fdfe295506800a18c1b30f49a
Signed-off-by: dhanasekaran <ragavi.d@tataelxsi.co.in>
diff --git a/robot-systest/lib/ns_lib.robot b/robot-systest/lib/ns_lib.robot
index 3cd863e..c864218 100644
--- a/robot-systest/lib/ns_lib.robot
+++ b/robot-systest/lib/ns_lib.robot
@@ -373,3 +373,17 @@
     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}
diff --git a/robot-systest/testsuite/heal_04-autohealing.robot b/robot-systest/testsuite/heal_04-autohealing.robot
index 990b44a..024cd3d 100644
--- a/robot-systest/testsuite/heal_04-autohealing.robot
+++ b/robot-systest/testsuite/heal_04-autohealing.robot
@@ -31,7 +31,7 @@
 ${vnfd_pkg}   autoheal_vnf

 ${vnfd_name}   autoheal_vnfd

 ${vdu_name}   autoheal_vnfd-VM

-${vnf_index}   1

+${vnf_index}   autoheal-basic-1

 ${nsd_pkg}   autoheal_ns

 ${nsd_name}  autoheal_nsd

 # NS instance name and configuration

@@ -46,25 +46,26 @@
 

 ${success_return_code}   0

 

+#Healing wait time

+${healing_pol_time}   15sec

+${healing_max_wait_time}   10m

+

 *** Test Cases ***

 Create VNF Descriptors

-    [Tags]  prepare

     Create VNFD   '%{PACKAGES_FOLDER}/${vnfd_pkg}'

 

 

 Create NS Descriptor

-    [Tags]  prepare

     Create NSD   '%{PACKAGES_FOLDER}/${nsd_pkg}'

 

 

 Network Service Instance Test

-    [Tags]  prepare

     ${id}=   Create Network Service   ${nsd_name}   %{VIM_TARGET}   ${ns_name}   ${ns_config}   ${publickey}

     Set Suite Variable   ${ns_id}   ${id}

 

 

 Get NS Id

-    [Tags]   verify   cleanup

+    [Tags]   cleanup

     ${variables}   Get Variables

     IF   not "\${ns_id}" in "${variables}"

         ${id}=   Get Ns Id   ${ns_name}

@@ -73,7 +74,6 @@
 

 

 Get VNF Info

-    [Tags]  verify

     Variable Should Exist  ${ns_id}  msg=NS is not available

     ${ip_addr}=  Get Vnf Management Ip Address   ${ns_id}   ${vnf_index}

     log   ${ip_addr}

@@ -91,20 +91,25 @@
 

 

 Stop Autoheal VDU

-    [Tags]  verify

     Variable Should Exist  ${vdu_autoheal_id}  msg=VDU is not available

     Halt Server   ${vdu_autoheal_id}

     Sleep   20

 

 

-Check VNF After Healing

-    [Tags]  verify

+Wait For Autohealing To Be Completed

     FOR    ${Index}    IN RANGE    0    15

-        ${server_status}=  Get Server Property   ${vdu_autoheal_id}   status

-        ${status}=    Run Keyword And Return Status    Should Be Equal    ${server_status}    ACTIVE

+        ${status}=    Run Keyword And Return Status    Get Operations By Type    ${ns_id}    heal

         Run Keyword If  ${status}    Exit For Loop

     ...  ELSE  Sleep    10

     END

+    ${stdout}=    Get Operations By Type    ${ns_id}    heal

+    ${healing_max_wait_time}=   Convert Time   ${healing_max_wait_time}   result_format=number

+    ${healing_max_wait_time}=   Evaluate   ${healing_max_wait_time} * ${vim_timeout_multiplier}

+    Wait Until Keyword Succeeds  ${healing_max_wait_time}  ${healing_pol_time}  Check For NS Operation Ended  ${stdout}

+    Check For NS Operation Completed  ${stdout}

+

+

+Check VNF After Healing

     Variable Should Exist  ${vnf_autoheal_id}  msg=VNF is not available

 

     @{ip_list}=  Get Vnf Vdur IPs   ${vnf_autoheal_id}