class VCenterDriver::DsImporter
Class DsImporter
Public Class Methods
new(one_client, vi_client)
click to toggle source
Calls superclass method
VCenterDriver::VcImporter::new
# File lib/datastore.rb, line 892 def initialize(one_client, vi_client) super(one_client, vi_client) @one_class = OpenNebula::Datastore end
Public Instance Methods
add_cluster(cid, eid)
click to toggle source
# File lib/datastore.rb, line 930 def add_cluster(cid, eid) one_cluster = @info[:clusters][cid] raise 'no cluster defined' unless one_cluster one_cluster.adddatastore(eid) end
get_list(args = {})
click to toggle source
# File lib/datastore.rb, line 897 def get_list(args = {}) dc_folder = VCenterDriver::DatacenterFolder.new(@vi_client) # one pool creation dpool = VCenterDriver::VIHelper .one_pool( OpenNebula::DatastorePool, false ) if dpool.respond_to?(:message) raise "Could not get OpenNebula DatastorePool: #{dpool.message}" end # OpenNebula's HostPool hpool = VCenterDriver::VIHelper .one_pool( OpenNebula::HostPool, false ) if hpool.respond_to?(:message) raise "Could not get OpenNebula HostPool: #{hpool.message}" end rs = dc_folder .get_unimported_datastores( dpool, @vi_client.vc_name, hpool, args ) @list = rs end
import(selected)
click to toggle source
# File lib/datastore.rb, line 948 def import(selected) inner = lambda {|object, auth| one = '' one << "VCENTER_HOST=\"#{auth[:host]}\"\n" object.update(one, true) } opts = @info[selected[:ref]][:opts] # Datastore info comes in a pair (SYS, IMG) pair = selected[:ds] clusters = selected[:cluster] if opts && opts['selected_clusters'] clusters = opts['selected_clusters'].each.map(&:to_i) end name = VCenterDriver::VcImporter.sanitize( selected[:simple_name] ) res = { :id => [], :name => name } @info[:rollback] = [] pair.each do |ds| create(ds[:one]) do |one_object, id| res[:id] << id add_clusters(id, clusters) inner.call( one_object, @vi_client.host_credentials( @one_client ) ) end end res end
remove_default(id)
click to toggle source
# File lib/datastore.rb, line 937 def remove_default(id) cid = 0 @info[:clusters][cid] ||= VCenterDriver::VIHelper .one_item( OpenNebula::Cluster, cid.to_s, false ) @info[:clusters][cid].deldatastore(id.to_i) end