+Add New Image From Url
+ [Arguments] ${image_url} ${image_name}
+ [Documentation] To add new qcow2 images for testing.
+ ${rc} ${output} = OperatingSystem.Run And Return Rc And Output wget ${image_url} -O /tmp/new_image.qcow2
+ BuiltIn.Log ${output}
+ BuiltIn.Should Be True '${rc}' == '0'
+ ${output} = OpenStack CLI openstack image create ${image_name} --file /tmp/new_image.qcow2 --disk-format qcow2 --container-format bare --public
+
+Create Flavor
+ [Arguments] ${flavor_name} ${ram_in_mb} ${disk_in_gb} ${ncpu}=1
+ [Documentation] To create new flavors for instance deployment and testing
+ ${output} = OpenStack CLI openstack flavor create ${flavor_name} --ram ${ram_in_mb} --disk ${disk_in_gb} --vcpus ${ncpu}
+
+Create Keypair
+ [Arguments] ${keyname} ${public_key_file}
+ [Documentation] To add keypairs to Openstack that can be used when ssh to instances using publickey authentication
+ ${output} = OpenStack CLI openstack keypair create ${keyname} --public-key ${public_key_file}
+
+Generate And Add Keypair
+ [Arguments] ${keyname} ${keyfilename}
+ [Documentation] To generate keypair using ssh-keygen and add them to Openstack
+ ${result} = Process.Run Process ssh-keygen -b 2048 -t rsa -f ${JENKINS_WORKSPACE}/${keyfilename} -q -N "" shell=True
+ BuiltIn.Log ${result.stdout}
+ BuiltIn.Log ${result.stderr}
+ BuiltIn.Should Be True '${result.rc}' == '0'
+ OpenStackOperations.Create Keypair ${keyname} ${JENKINS_WORKSPACE}/${keyfilename}.pub
+ OpenStackOperations.Get ControlNode Connection
+ SSHLibrary.Put_File ${JENKINS_WORKSPACE}/${keyfilename} /tmp
+