class Deltacloud::Drivers::Rhevm::RhevmDriver

Constants

USER_NAME_MAX

Public Instance Methods

create_image(credentials, opts={}) click to toggle source
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 104
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
create_instance(credentials, image_id, opts={}) click to toggle source
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 177
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(%r\n/,'') if opts[:user_data]
    params[:fileinject_path] = "deltacloud-user-data.txt"
    convert_instance(client, client.create_vm(params))
  end
end
destroy_image(credentials, image_id) click to toggle source
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 118
def destroy_image(credentials, image_id)
  client = new_client(credentials)
  safely do
    unless client.destroy_template(image_id)
      raise "ERROR: Unable to remove image"
    end
  end
end
destroy_instance(credentials, id) click to toggle source
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 158
def destroy_instance(credentials, id)
  client = new_client(credentials)
  safely do
    raise "ERROR: Operation destroy failed" unless client.destroy_vm(id)
  end
end
images(credentials, opts={}) click to toggle source
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 85
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 =~ %rResource 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
instances(credentials, opts={}) click to toggle source
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 127
def instances(credentials, opts={})
  client = new_client(credentials)
  inst_arr = []
  safely do
    if opts[:id]
      vms = client.vms(:id => opts[:id])
    else
      vms = client.vms
    end
    vms.each do |vm|
      inst_arr << convert_instance(client, vm)
    end
  end
  inst_arr = filter_on( inst_arr, :id, opts )
  filter_on( inst_arr, :state, opts )
end
providers(credentials) click to toggle source
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 62
def providers(credentials)
  client = new_client(credentials)
  safely do
    client.datacenters.collect { |dc| convert_provider(dc) }
  end
end
realms(credentials, opts={}) click to toggle source

Realms

# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 73
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
start_instance(credentials, id) click to toggle source
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 144
def start_instance(credentials, id)
  client = new_client(credentials)
  safely do
    raise "ERROR: Operation start failed" unless client.vm_action(id, :start)
  end
end
stop_instance(credentials, id) click to toggle source
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 151
def stop_instance(credentials, id)
  client = new_client(credentials)
  safely do
    raise "ERROR: Operation stop failed" unless client.vm_action(id, :shutdown)
  end
end
storage_volumes(credentials, opts={}) click to toggle source
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 165
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
valid_credentials?(credentials) click to toggle source
# File lib/deltacloud/drivers/rhevm/rhevm_driver.rb, line 196
def valid_credentials?(credentials)
  begin
    realms(credentials) && true
  rescue => e
    safely do
      raise e
    end
  end
end