X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=robot-systest%2Flib%2Fopenstack_lib.robot;h=bdf49aa09a29069a6b1b4177f52b65148d54bfc8;hb=4a94affec35c3d9624c1c1574036d8b02bcbc8e7;hp=cd03eb8c027388f0bca988eccffabe67b008f52d;hpb=3422ec3dae4cb95c855f8809e70a126ae6d23558;p=osm%2Ftests.git diff --git a/robot-systest/lib/openstack_lib.robot b/robot-systest/lib/openstack_lib.robot index cd03eb8..bdf49aa 100644 --- a/robot-systest/lib/openstack_lib.robot +++ b/robot-systest/lib/openstack_lib.robot @@ -20,9 +20,9 @@ Get Server Flavor ID Should Not Be Empty ${server_id} ${rc} ${stdout}= Run and Return RC and Output openstack server show ${server_id} | grep flavor | awk 'NR>1{print $1}' RS='(' FS=')' - log ${stdout} + Log ${stdout} Should Be Equal As Integers ${rc} ${success_return_code} - [Return] ${stdout} + [Return] ${stdout} Get Flavor Properties @@ -30,19 +30,184 @@ Get Flavor Properties Should Not Be Empty ${flavor_id} ${rc} ${stdout}= Run and Return RC and Output openstack flavor show ${flavor_id} | grep properties | awk -F '|' '{print $3}' - log ${stdout} + 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} + 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} + + +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} + + Should Not Be Empty ${field} + ${rc} ${stdout}= Run and Return RC and Output openstack quota show -f yaml | yq '.[] | select(.Resource=="${field}") | .Limit' + Log ${stdout} + Should Be Equal As Integers ${rc} ${success_return_code} + [Return] ${stdout} + + +Get Server Property + [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} + + +Check VM In Server Group + [Documentation] Check if a given server is included in an Openstack server group + [Arguments] ${server_id} ${server_group_name} + + Should Not Be Empty ${server_group_name} + Should Not Be Empty ${server_id} + ${rc} ${stdout}= Run and Return RC and Output openstack server group show ${server_group_name} -c members -f value + Log ${stdout} + Should Be Equal As Integers ${rc} ${success_return_code} + 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} + + 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} + + +Delete Volume + [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} + + +Get Subnet + [Documentation] Get subnet information in JSON format + [Arguments] ${subnet_id} + + Should Not Be Empty ${subnet_id} + ${rc} ${stdout}= Run and Return RC and Output openstack subnet show ${subnet_id} -f json + Log ${stdout} + Should Be Equal As Integers ${rc} ${success_return_code} + [Return] ${stdout} + + +Stop Server + [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} + + +Halt Server + [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} + + +Delete Server + [Documentation] Delete a server + [Arguments] ${server_id} + + Should Not Be Empty ${server_id} + ${rc} ${stdout}= Run and Return RC and Output openstack server delete ${server_id} + Log ${stdout} + Should Be Equal As Integers ${rc} ${success_return_code} + [Return] ${stdout} + + +Create Flavor + [Documentation] Create a Flavor + [Arguments] ${flavor_name} ${cpu}=1 ${ram}=1024 ${disk}=10 + + Should Not Be Empty ${flavor_name} + ${rc} ${flavor_id}= Run and Return RC and Output openstack flavor create ${flavor_name} --ram ${ram} --disk ${disk} --vcpus ${cpu} -f yaml | yq '.id' | tr -d \\" + Log ${flavor_id} + Should Be Equal As Integers ${rc} ${success_return_code} + [Return] ${flavor_id} + + +Delete Flavor + [Documentation] Delete a Flavor + [Arguments] ${flavor_id} + + Should Not Be Empty ${flavor_id} + ${rc} ${stdout}= Run and Return RC and Output openstack flavor delete ${flavor_id} + Log ${stdout} + Should Be Equal As Integers ${rc} ${success_return_code} + [Return] ${stdout}