mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-16 22:50:10 +03:00
F #4913: Add error management to some pool creation actions
This commit is contained in:
parent
8d4cfaf16b
commit
2274a9ca72
@ -147,9 +147,30 @@ get '/vcenter/template/:vcenter_ref' do
|
||||
|
||||
template = VCenterDriver::Template.new_from_ref(ref, vcenter_client)
|
||||
vc_uuid = vcenter_client.vim.serviceContent.about.instanceUuid
|
||||
|
||||
dpool = VCenterDriver::VIHelper.one_pool(OpenNebula::DatastorePool)
|
||||
if dpool.respond_to?(:message)
|
||||
msg = "Could not get OpenNebula DatastorePool: #{dpool.message}"
|
||||
logger.error("[vCenter] " + msg)
|
||||
error = Error.new(msg)
|
||||
error 404, error.to_json
|
||||
end
|
||||
|
||||
ipool = VCenterDriver::VIHelper.one_pool(OpenNebula::ImagePool)
|
||||
if ipool.respond_to?(:message)
|
||||
msg = "Could not get OpenNebula ImagePool: #{ipool.message}"
|
||||
logger.error("[vCenter] " + msg)
|
||||
error = Error.new(msg)
|
||||
error 404, error.to_json
|
||||
end
|
||||
|
||||
npool = VCenterDriver::VIHelper.one_pool(OpenNebula::VirtualNetworkPool)
|
||||
if npool.respond_to?(:message)
|
||||
msg = "Could not get OpenNebula VirtualNetworkPool: #{npool.message}"
|
||||
logger.error("[vCenter] " + msg)
|
||||
error = Error.new(msg)
|
||||
error 404, error.to_json
|
||||
end
|
||||
|
||||
# POST params
|
||||
if @request_body && !@request_body.empty?
|
||||
|
@ -138,6 +138,9 @@ else
|
||||
vcenter_uuid = vm.get_vcenter_instance_uuid
|
||||
networks = {}
|
||||
npool = VCenterDriver::VIHelper.one_pool(OpenNebula::VirtualNetworkPool, false)
|
||||
if npool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula VirtualNetworkPool: #{npool.message}"
|
||||
end
|
||||
|
||||
# Check nics in VM
|
||||
vm.item["config.hardware.device"].each do |dv|
|
||||
|
@ -101,7 +101,13 @@ class Storage
|
||||
end
|
||||
|
||||
def self.get_one_image_ds_by_ref_and_ccr(ref, ccr_ref, vcenter_uuid, pool = nil)
|
||||
pool = VCenterDriver::VIHelper.one_pool(OpenNebula::DatastorePool, false) if pool.nil?
|
||||
if pool.nil?
|
||||
pool = VCenterDriver::VIHelper.one_pool(OpenNebula::DatastorePool, false)
|
||||
if pool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula DatastorePool: #{pool.message}"
|
||||
end
|
||||
end
|
||||
|
||||
element = pool.select do |e|
|
||||
e["TEMPLATE/TYPE"] == "IMAGE_DS" &&
|
||||
e["TEMPLATE/VCENTER_DS_REF"] == ref &&
|
||||
@ -131,7 +137,12 @@ class Storage
|
||||
end
|
||||
|
||||
def self.exists_one_by_ref_ccr_and_type?(ref, ccr_ref, vcenter_uuid, type, pool = nil)
|
||||
pool = VCenterDriver::VIHelper.one_pool(OpenNebula::DatastorePool, false) if pool.nil?
|
||||
if pool.nil?
|
||||
pool = VCenterDriver::VIHelper.one_pool(OpenNebula::DatastorePool, false)
|
||||
if pool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula DatastorePool: #{pool.message}"
|
||||
end
|
||||
end
|
||||
elements = pool.select do |e|
|
||||
e["TEMPLATE/TYPE"] == type &&
|
||||
e["TEMPLATE/VCENTER_DS_REF"] == ref &&
|
||||
|
@ -10,8 +10,17 @@ def self.import_wild(host_id, vm_ref, one_vm, template)
|
||||
vc_name = vi_client.vim.host
|
||||
|
||||
dpool = VCenterDriver::VIHelper.one_pool(OpenNebula::DatastorePool)
|
||||
if dpool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula DatastorePool: #{dpool.message}"
|
||||
end
|
||||
ipool = VCenterDriver::VIHelper.one_pool(OpenNebula::ImagePool)
|
||||
if ipool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula ImagePool: #{ipool.message}"
|
||||
end
|
||||
npool = VCenterDriver::VIHelper.one_pool(OpenNebula::VirtualNetworkPool)
|
||||
if npool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula VirtualNetworkPool: #{npool.message}"
|
||||
end
|
||||
|
||||
vcenter_vm = VCenterDriver::VirtualMachine.new_from_ref(vm_ref, vi_client)
|
||||
|
||||
@ -85,7 +94,6 @@ def self.import_clusters(con_ops, options)
|
||||
|
||||
# OpenNebula's ClusterPool
|
||||
cpool = VCenterDriver::VIHelper.one_pool(OpenNebula::ClusterPool, false)
|
||||
|
||||
if cpool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula ClusterPool: #{cpool.message}"
|
||||
end
|
||||
@ -97,7 +105,6 @@ def self.import_clusters(con_ops, options)
|
||||
|
||||
# Get OpenNebula's host pool
|
||||
hpool = VCenterDriver::VIHelper.one_pool(OpenNebula::HostPool, false)
|
||||
|
||||
if hpool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula HostPool: #{hpool.message}"
|
||||
end
|
||||
@ -178,7 +185,6 @@ def self.import_templates(con_ops, options)
|
||||
|
||||
# Get OpenNebula's templates pool
|
||||
tpool = VCenterDriver::VIHelper.one_pool(OpenNebula::TemplatePool, false)
|
||||
|
||||
if tpool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula TemplatePool: #{tpool.message}"
|
||||
end
|
||||
@ -189,8 +195,17 @@ def self.import_templates(con_ops, options)
|
||||
|
||||
# Create OpenNebula pools
|
||||
dpool = VCenterDriver::VIHelper.one_pool(OpenNebula::DatastorePool)
|
||||
if dpool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula DatastorePool: #{dpool.message}"
|
||||
end
|
||||
ipool = VCenterDriver::VIHelper.one_pool(OpenNebula::ImagePool)
|
||||
if ipool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula ImagePool: #{ipool.message}"
|
||||
end
|
||||
npool = VCenterDriver::VIHelper.one_pool(OpenNebula::VirtualNetworkPool)
|
||||
if npool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula VirtualNetworkPool: #{npool.message}"
|
||||
end
|
||||
|
||||
# Get vcenter intance uuid as moref is unique for each vcenter
|
||||
vc_uuid = vi_client.vim.serviceContent.about.instanceUuid
|
||||
@ -473,7 +488,6 @@ def self.import_networks(con_ops, options)
|
||||
|
||||
# OpenNebula's VirtualNetworkPool
|
||||
npool = VCenterDriver::VIHelper.one_pool(OpenNebula::VirtualNetworkPool, false)
|
||||
|
||||
if npool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula VirtualNetworkPool: #{npool.message}"
|
||||
end
|
||||
@ -659,14 +673,12 @@ def self.import_datastore(con_ops, options)
|
||||
dc_folder = VCenterDriver::DatacenterFolder.new(vi_client)
|
||||
|
||||
dpool = VCenterDriver::VIHelper.one_pool(OpenNebula::DatastorePool, false)
|
||||
|
||||
if dpool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula DatastorePool: #{dpool.message}"
|
||||
end
|
||||
|
||||
# Get OpenNebula's host pool
|
||||
hpool = VCenterDriver::VIHelper.one_pool(OpenNebula::HostPool, false)
|
||||
|
||||
if hpool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula HostPool: #{hpool.message}"
|
||||
end
|
||||
|
@ -116,7 +116,12 @@ class Network
|
||||
end
|
||||
|
||||
def self.get_unmanaged_vnet_by_ref(ref, ccr_ref, template_ref, vcenter_uuid, pool = nil)
|
||||
pool = VCenterDriver::VIHelper.one_pool(OpenNebula::VirtualNetworkPool, false) if pool.nil?
|
||||
if pool.nil?
|
||||
pool = VCenterDriver::VIHelper.one_pool(OpenNebula::VirtualNetworkPool, false)
|
||||
if pool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula VirtualNetworkPool: #{pool.message}"
|
||||
end
|
||||
end
|
||||
element = pool.select do |e|
|
||||
e["TEMPLATE/VCENTER_NET_REF"] == ref &&
|
||||
e["TEMPLATE/VCENTER_CCR_REF"] == ccr_ref &&
|
||||
@ -142,6 +147,9 @@ class Network
|
||||
|
||||
networks = {}
|
||||
npool = VCenterDriver::VIHelper.one_pool(OpenNebula::VirtualNetworkPool, false)
|
||||
if npool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula VirtualNetworkPool: #{npool.message}"
|
||||
end
|
||||
|
||||
device_change_nics.each do |nic|
|
||||
if nic[:operation] == :remove
|
||||
|
@ -1985,6 +1985,9 @@ class VirtualMachine < Template
|
||||
detach_disk_array = []
|
||||
extra_config = []
|
||||
ipool = VCenterDriver::VIHelper.one_pool(OpenNebula::ImagePool)
|
||||
if ipool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula ImagePool: #{ipool.message}"
|
||||
end
|
||||
|
||||
vc_disks.each do |d|
|
||||
if !onevm_disks_vector.index(d[:path_wo_ds])
|
||||
@ -2107,6 +2110,9 @@ class VirtualMachine < Template
|
||||
spec_hash = {}
|
||||
spec_hash[:deviceChange] = []
|
||||
ipool = VCenterDriver::VIHelper.one_pool(OpenNebula::ImagePool)
|
||||
if ipool.respond_to?(:message)
|
||||
raise "Could not get OpenNebula ImagePool: #{ipool.message}"
|
||||
end
|
||||
|
||||
vm.config.hardware.device.each do |disk|
|
||||
if is_disk_or_cdrom?(disk)
|
||||
|
Loading…
x
Reference in New Issue
Block a user