# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 105 def create_image(credentials, opts={}) client = new_client(credentials) unless opts[:name] instance = instances(credentials, :id => opts[:id]) raise "Specified instance '#{opts[:id]}' not found" template_name = "#{instance.first.name}-template" end safely do new_image = client.create_template(:vm => opts[:id], :name => (opts[:name] || template_name), :description => opts[:description] || template_name) convert_image(client, new_image) end end
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 181 def create_instance(credentials, image_id, opts={}) client = new_client(credentials) params = {} safely do if opts[:name] raise "Parameter name must be #{USER_NAME_MAX} characters or less" if opts[:name].length > USER_NAME_MAX end params[:name] = opts[:name] params[:template] = image_id params[:cluster] = opts[:realm_id] if opts[:realm_id] params[:hwp_id] = opts[:hwp_id] if opts[:hwp_id] params[:memory] = (opts[:hwp_memory].to_i * 1024 * 1024) if opts[:hwp_memory] params[:cores] = opts[:hwp_cpu] if opts[:hwp_cpu] params[:user_data] = opts[:user_data].gsub(/\n/,'') if opts[:user_data] params[:fileinject_path] = "deltacloud-user-data.txt" params[:first_boot_dev] = opts[:first_boot_dev] if opts[:first_boot_dev] convert_instance(client, client.create_vm(params)) end end
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 119 def destroy_image(credentials, image_id) client = new_client(credentials) safely do client.destroy_template(image_id) end end
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 162 def destroy_instance(credentials, id) client = new_client(credentials) safely do raise "ERROR: Operation destroy failed" unless client.destroy_vm(id) end end
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 86 def images(credentials, opts={}) client = new_client(credentials) img_arr = [] safely do if opts[:id] begin img_arr << convert_image(client, client.template(opts[:id])) rescue OVIRT::OvirtException => e raise e unless e.message =~ /Resource Not Found/ img_arr = [] end else img_arr = client.templates.collect { |t| convert_image(client, t) } end end img_arr = filter_on( img_arr, :architecture, opts ) img_arr.sort_by{|e| [e.owner_id, e.name]} end
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 126 def instances(credentials, opts={}) client = new_client(credentials) inst_arr = [] safely do if opts[:id] begin vm = client.vm(opts[:id]) inst_arr << convert_instance(client, vm) rescue => e raise e unless e.message =~ /Resource Not Found/ end else vms = client.vms vms.each do |vm| inst_arr << convert_instance(client, vm) end end end inst_arr = filter_on( inst_arr, :id, opts ) filter_on( inst_arr, :state, opts ) end
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 63 def providers(credentials) client = new_client(credentials) safely do client.datacenters.collect { |dc| convert_provider(dc) } end end
Realms
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 74 def realms(credentials, opts={}) client = new_client(credentials) realm_arr = [] safely do realm_arr = client.clusters.collect do |r| convert_realm(r, client.datacenter(r.datacenter.id)) end end realm_arr = filter_on( realm_arr, :id, opts ) realm_arr end
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 148 def start_instance(credentials, id) client = new_client(credentials) safely do raise "ERROR: Operation start failed" unless client.vm_action(id, :start) end end
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 155 def stop_instance(credentials, id) client = new_client(credentials) safely do raise "ERROR: Operation stop failed" unless client.vm_action(id, :shutdown) end end
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 169 def storage_volumes(credentials, opts={}) client = new_client(credentials) domains_arr = [] safely do client.storagedomains.each do |s| domains_arr << convert_volume(s) end end domains_arr = filter_on( domains_arr, :id, opts ) filter_on( domains_arr, :state, opts ) end
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 201 def valid_credentials?(credentials) begin realms(credentials) && true rescue => e safely do raise e end end end