Adding Basic_28 Keep persistent volumes robot test
[osm/tests.git] / robot-systest / lib / openstack_lib.robot
index 6ef6d0a..1f1020d 100644 (file)
@@ -48,6 +48,17 @@ Check NS Servers In VIM
     Should Be Equal As Integers   ${number}   ${n_servers}
 
 
+Check If Volume Bootable
+    [Documentation]   Check the volume properties and return whether it is bootable or not.
+    [Arguments]   ${volume_id}
+
+    Should Not Be Empty   ${volume_id}
+    ${rc}   ${stdout}=   Run and Return RC and Output   openstack volume show ${volume_id} | grep bootable | awk '{print $4}'
+    log   ${stdout}
+    Should Be Equal As Integers   ${rc}   ${success_return_code}
+    [Return]   ${stdout}
+
+
 Get Project Quota
     [Documentation]   Get a field (ram, cores, ports, etc.) from quota in current project.
     [Arguments]   ${field}
@@ -83,6 +94,37 @@ Check VM In Server Group
     Should Contain   ${stdout}   ${server_id}
 
 
+Set Volume Id
+    [Documentation]   Sets the root volume ID and ordinary volume ID by checking bootable property of volumes
+    [Arguments]   ${volume_match}   ${index}
+
+    Should Not Be Empty   ${volume_match}   ${index}
+    ${bootable}=   Check If Volume Bootable   ${volume_match}[${index}]
+    Set Suite Variable   ${bootable}
+    IF   '${bootable}'=='true'
+        Set Suite Variable   ${root_vol_id}   ${volume_match}[${index}]
+        IF   ${index}==0
+            Set Suite Variable   ${ordinary_vol_id}   ${volume_match}[1]
+        ELSE
+            Set Suite Variable   ${ordinary_vol_id}   ${volume_match}[0]
+        END
+    END
+
+
+Get Persistent Volumes Attached To Vm
+    [Documentation]   Sets the root volume ID and ordinary volume ID by checking bootable property of volumes
+    [Arguments]   ${ns_id}
+
+    Variable Should Exist   ${ns_id}   msg=NS is not available
+    ${vnfs_list}=   Get Ns Vnf List   ${ns_id}
+    ${vim_id}=   Get VNF VIM ID   ${vnfs_list}[0]
+    ${volumes_attached}=   Get Server Property   ${vim_id}   volumes_attached
+    log   ${volumes_attached}
+    ${stdout}=   Get Regexp Matches   ${volumes_attached}   '([0-9a-f\-]+)'   1
+    log   ${stdout}
+    [Return]   ${stdout}
+
+
 Check If Volume Exists
     [Documentation]   Checks if a volume id exists
     [Arguments]   ${volume_id}