mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-22 18:50:08 +03:00
F #4913: Speed up monitorization
This commit is contained in:
parent
33b9d899b1
commit
91a8831912
@ -430,6 +430,8 @@ class ClusterComputeResource
|
||||
|
||||
get_resource_pool_list if !@rp_list
|
||||
|
||||
vm_pool = VCenterDriver::VIHelper.one_pool(OpenNebula::VirtualMachinePool)
|
||||
|
||||
vms.each do |vm_ref,info|
|
||||
begin
|
||||
vm = VCenterDriver::VirtualMachine.new_from_ref(vm_ref, @vi_client)
|
||||
@ -466,14 +468,18 @@ class ClusterComputeResource
|
||||
one_vm = VCenterDriver::VIHelper.find_by_ref(OpenNebula::VirtualMachinePool,
|
||||
"DEPLOY_ID",
|
||||
vm_ref,
|
||||
vc_uuid)
|
||||
vc_uuid,
|
||||
vm_pool)
|
||||
number = one_vm["ID"] if one_vm
|
||||
end
|
||||
|
||||
if number != -1
|
||||
next if @monitored_vms.include? number
|
||||
@monitored_vms << number
|
||||
vm.one_item if vm.get_vm_id
|
||||
|
||||
if vm.get_vm_id(vm_pool)
|
||||
vm.one_item
|
||||
end
|
||||
end
|
||||
|
||||
vm.monitor(stats)
|
||||
|
@ -45,7 +45,7 @@ class VIHelper
|
||||
|
||||
def self.find_by_name(the_class, name, pool = nil, raise_if_fail = true)
|
||||
pool = one_pool(the_class, raise_if_fail) if pool.nil?
|
||||
element = pool.select{|e| e['NAME'] == "#{name}" }.first rescue nil
|
||||
element = pool.find{|e| e['NAME'] == "#{name}" }
|
||||
if element.nil? && raise_if_fail
|
||||
raise "Could not find element '#{name}' in pool '#{the_class}'"
|
||||
else
|
||||
@ -55,28 +55,28 @@ class VIHelper
|
||||
|
||||
def self.find_by_ref(the_class, attribute, ref, vcenter_uuid, pool = nil)
|
||||
pool = one_pool(the_class, false) if pool.nil?
|
||||
element = pool.select{|e|
|
||||
element = pool.find{|e|
|
||||
e["#{attribute}"] == ref &&
|
||||
(!e["TEMPLATE/OPENNEBULA_MANAGED"] || e["TEMPLATE/OPENNEBULA_MANAGED"] != "NO") &&
|
||||
(e["TEMPLATE/VCENTER_INSTANCE_ID"] == vcenter_uuid ||
|
||||
e["USER_TEMPLATE/VCENTER_INSTANCE_ID"] == vcenter_uuid)}.first rescue nil
|
||||
e["USER_TEMPLATE/VCENTER_INSTANCE_ID"] == vcenter_uuid)}
|
||||
|
||||
return element
|
||||
end
|
||||
|
||||
def self.find_image_by_path(the_class, path, ds_id, pool = nil)
|
||||
pool = one_pool(the_class, false) if pool.nil?
|
||||
element = pool.select{|e|
|
||||
element = pool.find{|e|
|
||||
e["PATH"] == path &&
|
||||
e["DATASTORE_ID"] == ds_id}.first rescue nil
|
||||
e["DATASTORE_ID"] == ds_id}
|
||||
return element
|
||||
end
|
||||
|
||||
def self.find_persistent_image_by_source(source, pool)
|
||||
element = pool.select{|e|
|
||||
element = pool.find{|e|
|
||||
e["SOURCE"] == source &&
|
||||
e["PERSISTENT"] == "1"
|
||||
}.first rescue nil
|
||||
}
|
||||
|
||||
return element
|
||||
end
|
||||
|
@ -919,7 +919,11 @@ class VirtualMachine < Template
|
||||
end
|
||||
|
||||
# @return String the vm_id stored in vCenter
|
||||
def get_vm_id
|
||||
def get_vm_id(vm_pool = nil)
|
||||
if defined?(@one_item_id) && @one_item_id
|
||||
return @one_item_id
|
||||
end
|
||||
|
||||
vm_ref = self['_ref']
|
||||
return nil if !vm_ref
|
||||
|
||||
@ -928,10 +932,12 @@ class VirtualMachine < Template
|
||||
one_vm = VCenterDriver::VIHelper.find_by_ref(OpenNebula::VirtualMachinePool,
|
||||
"DEPLOY_ID",
|
||||
vm_ref,
|
||||
vc_uuid)
|
||||
vc_uuid,
|
||||
vm_pool)
|
||||
return nil if !one_vm
|
||||
|
||||
return one_vm["ID"]
|
||||
@one_item_id = one_vm["ID"]
|
||||
return @one_item_id
|
||||
end
|
||||
|
||||
def get_vcenter_instance_uuid
|
||||
|
Loading…
x
Reference in New Issue
Block a user