diff --git a/robot-systest/lib/openstack_lib.robot b/robot-systest/lib/openstack_lib.robot
index c335963..ff02b29 100644
--- a/robot-systest/lib/openstack_lib.robot
+++ b/robot-systest/lib/openstack_lib.robot
@@ -22,7 +22,7 @@
     ${rc}   ${stdout}=   Run and Return RC and Output   openstack server show ${server_id} | grep flavor | awk 'NR>1{print $1}' RS='(' FS=')'
     log   ${stdout}
     Should Be Equal As Integers   ${rc}   ${success_return_code}
-    [Return]  ${stdout}
+    [Return]   ${stdout}
 
 
 Get Flavor Properties
@@ -32,43 +32,43 @@
     ${rc}   ${stdout}=   Run and Return RC and Output   openstack flavor show ${flavor_id} | grep properties | awk -F '|' '{print $3}'
     log   ${stdout}
     Should Be Equal As Integers   ${rc}   ${success_return_code}
-    [Return]  ${stdout}
+    [Return]   ${stdout}
 
 
 Check NS Servers In VIM
-    [Documentation]     Check if the number of servers in Openstack by filtering by NS name is as expected.
+    [Documentation]   Check if the number of servers in Openstack by filtering by NS name is as expected.
     [Arguments]   ${ns_name}   ${number}
 
     Should Not Be Empty   ${ns_name}
     ${rc}   ${stdout}=   Run and Return RC and Output   openstack server list | grep ${ns_name} | awk '{print $4}'
     log   ${stdout}
     Should Be Equal As Integers   ${rc}   ${success_return_code}
-    @{servers} =  Split String  ${stdout}
-    ${n_servers}=  Get Length  ${servers}
+    @{servers} =   Split String   ${stdout}
+    ${n_servers}=   Get Length   ${servers}
     Should Be Equal As Integers   ${number}   ${n_servers}
 
 
 Get Project Quota
-    [Documentation]     Get a field (ram, cores, ports, etc.) from quota in current project.
+    [Documentation]   Get a field (ram, cores, ports, etc.) from quota in current project.
     [Arguments]   ${field}
 
     Should Not Be Empty   ${field}
     ${rc}   ${stdout}=   Run and Return RC and Output   openstack quota show -c ${field} -f value
     log   ${stdout}
     Should Be Equal As Integers   ${rc}   ${success_return_code}
-    [Return]  ${stdout}
+    [Return]   ${stdout}
 
 
 Get Server Property
-    [Documentation]     Get a field (flavor, image, volumes_attached, etc.) from a server.
-    [Arguments]    ${server_id}   ${field}
+    [Documentation]   Get a field (flavor, image, volumes_attached, etc.) from a server.
+    [Arguments]   ${server_id}   ${field}
 
     Should Not Be Empty   ${server_id}
     Should Not Be Empty   ${field}
     ${rc}   ${stdout}=   Run and Return RC and Output   openstack server show ${server_id} -c ${field} -f value
     log   ${stdout}
     Should Be Equal As Integers   ${rc}   ${success_return_code}
-    [Return]  ${stdout}
+    [Return]   ${stdout}
 
 
 Check VM In Server Group
@@ -84,43 +84,43 @@
 
 
 Check If Volume Exists
-    [Documentation]     Checks if a volume id exists
-    [Arguments]    ${volume_id}
+    [Documentation]   Checks if a volume id exists
+    [Arguments]   ${volume_id}
 
     Should Not Be Empty   ${volume_id}
     ${rc}   ${stdout}=   Run and Return RC and Output   openstack volume list | grep ${volume_id} | wc -l
     log   ${stdout}
     Should Be Equal As Integers   ${rc}   ${success_return_code}
-    [Return]  ${stdout}
+    [Return]   ${stdout}
 
 
 Delete Volume
-    [Documentation]     Delete a volume by its identifier
-    [Arguments]    ${volume_id}
+    [Documentation]   Delete a volume by its identifier
+    [Arguments]   ${volume_id}
 
     Should Not Be Empty   ${volume_id}
     ${rc}   ${stdout}=   Run and Return RC and Output   openstack volume delete ${volume_id}
     log   ${stdout}
     Should Be Equal As Integers   ${rc}   ${success_return_code}
-    [Return]  ${stdout}
+    [Return]   ${stdout}
 
 
 Stop Server
-    [Documentation]     Stop a server
-    [Arguments]    ${server_id}
+    [Documentation]   Stop a server
+    [Arguments]   ${server_id}
 
     Should Not Be Empty   ${server_id}
     ${rc}   ${stdout}=   Run and Return RC and Output   openstack server stop ${server_id}
     log   ${stdout}
     Should Be Equal As Integers   ${rc}   ${success_return_code}
-    [Return]  ${stdout}
+    [Return]   ${stdout}
 
 Halt Server
-    [Documentation]    Reset a server
-    [Arguments]    ${server_id}
+    [Documentation]   Reset a server
+    [Arguments]   ${server_id}
 
     Should Not Be Empty   ${server_id}
     ${rc}   ${stdout}=   Run and Return RC and Output   openstack server set --state error ${server_id}
     log   ${stdout}
     Should Be Equal As Integers   ${rc}   ${success_return_code}
-    [Return]  ${stdout}
+    [Return]   ${stdout}
