1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-22 18:50:08 +03:00

B #5563: Fix import datastore only show selected cluster (#1671)

(cherry picked from commit 3bce6bf5791e22da9acf1bcab756fa6a70232af1)
This commit is contained in:
Carlos J. Herrera 2021-12-15 12:28:27 -05:00 committed by Tino Vazquez
parent aad460fa13
commit 42358a2e25
3 changed files with 33 additions and 5 deletions

View File

@ -151,8 +151,11 @@ get '/vcenter/datastores' do
begin
client = one_client
new_vcenter_importer("datastores", client)
[200, $importer.retrieve_resources.to_json]
opts = {
:host => params["host"]
}
resources_list = $importer.retrieve_resources(opts).to_json
[200, resources_list]
rescue Exception => e
logger.error("[vCenter] " + e.message)
error = Error.new(e.message)

View File

@ -159,11 +159,28 @@ module VCenterDriver
host_objects
end
def get_unimported_datastores(dpool, vcenter_instance_name, hpool)
# rubocop:disable Style/GlobalVars
def get_unimported_datastores(dpool, vcenter_instance_name, hpool, args)
import_id = 0
ds_objects = {}
vcenter_uuid = vcenter_instance_uuid
# Selected host in OpenNebula
if $conf.nil?
one_client = OpenNebula::Client.new
else
one_client = OpenNebula::Client.new(
nil,
$conf[:one_xmlrpc]
)
end
one_host = OpenNebula::Host.new_with_id(args[:host], one_client)
rc = one_host.info
raise rc.message if OpenNebula.is_error? rc
cluster_id = one_host['CLUSTER_ID'].to_i
# Get datacenters
fetch! if @items.empty?
@ -363,8 +380,15 @@ module VCenterDriver
end
end
ds_objects.keys.each do |key|
unless ds_objects[key][:cluster].include? cluster_id
ds_objects.delete key
end
end
{ vcenter_instance_name => ds_objects }
end
# rubocop:enable Style/GlobalVars
def get_unimported_templates(vi_client, tpool)
template_objects = {}

View File

@ -881,7 +881,7 @@ module VCenterDriver
@one_class = OpenNebula::Datastore
end
def get_list(_args = {})
def get_list(args = {})
dc_folder = VCenterDriver::DatacenterFolder.new(@vi_client)
# one pool creation
@ -908,7 +908,8 @@ module VCenterDriver
.get_unimported_datastores(
dpool,
@vi_client.vc_name,
hpool
hpool,
args
)
@list = rs
end