+ 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 -r '.id'
+ 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}