Class: VCenterDriver::ImageImporter

Inherits:
VcImporter show all
Defined in:
lib/datastore.rb

Overview

Class ImageImporter

Instance Attribute Summary

Attributes inherited from VcImporter

#list

Instance Method Summary collapse

Methods inherited from VcImporter

#get_indexes, import_clusters, new_child, #one_str, #output, #process_import, register_hooks, #retrieve_resources, sanitize, #stdout

Constructor Details

#initialize(one_client, vi_client) ⇒ ImageImporter

Returns a new instance of ImageImporter.



974
975
976
977
# File 'lib/datastore.rb', line 974

def initialize(one_client, vi_client)
    super(one_client, vi_client)
    @one_class = OpenNebula::Image
end

Instance Method Details

#get_list(args = {}) ⇒ Object



979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
# File 'lib/datastore.rb', line 979

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) ⇒ Object



1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
# File 'lib/datastore.rb', line 1005

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 = 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