class VCenterDriver::ImageImporter
Class ImageImporter
Public Class Methods
new(one_client, vi_client)
click to toggle source
Calls superclass method
VCenterDriver::VcImporter::new
# File lib/datastore.rb, line 983 def initialize(one_client, vi_client) super(one_client, vi_client) @one_class = OpenNebula::Image end
Public Instance Methods
get_list(args = {})
click to toggle source
# File lib/datastore.rb, line 988 def get_list(args = {}) ds_ref = args[:datastore][:ds_ref] one_ds = args[:datastore][:one_item] unless ds_ref raise "can't retrieve ref info from openNebula datastore" end datastore = VCenterDriver::Datastore .new_from_ref(ds_ref, @vi_client) ds = datastore.tap do |spawn| spawn.one_item = one_ds end vc_uuid = @vi_client.vim.serviceContent.about.instanceUuid one_ds_instance_id = one_ds['TEMPLATE/VCENTER_INSTANCE_ID'] if one_ds_instance_id != vc_uuid raise 'Datastore is not in the same vCenter \ instance provided in credentials' end @list = ds.all_images end
import(selected)
click to toggle source
# File lib/datastore.rb, line 1014 def import(selected) resource = VCenterDriver::VIHelper.new_one_item(@one_class) message = 'Error creating the OpenNebula resource' info = selected[:one] dsid = selected[:dsid].to_i name = VCenterDriver::VcImporter.sanitize( selected[:name] ) rc = resource.allocate(info, dsid, false) VCenterDriver::VIHelper.check_error(rc, message) resource.info id = resource['ID'] @rollback << Raction.new(resource, :delete) { :id => [id], :name => name } end