mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-25 02:50:08 +03:00
F #4913: Datastores with same dc, ds or cluster name can be imported (add prefix to OpenNebula's datastore name) B#4942
This commit is contained in:
parent
ad51adc060
commit
752edca588
@ -38,6 +38,10 @@ class DatacenterFolder
|
||||
@vi_client.vim.serviceContent.about.instanceUuid
|
||||
end
|
||||
|
||||
def get_vcenter_instance_name
|
||||
@vi_client.vim.serviceContent.setting.setting.select{|set| set.key == 'VirtualCenter.InstanceName'}.first.value rescue nil
|
||||
end
|
||||
|
||||
def get_vcenter_api_version
|
||||
@vi_client.vim.serviceContent.about.apiVersion
|
||||
end
|
||||
@ -132,6 +136,8 @@ class DatacenterFolder
|
||||
|
||||
vcenter_uuid = get_vcenter_instance_uuid
|
||||
|
||||
vcenter_instance_name = get_vcenter_instance_name
|
||||
|
||||
pool = VCenterDriver::VIHelper.one_pool(OpenNebula::DatastorePool, false)
|
||||
|
||||
if pool.respond_to?(:message)
|
||||
@ -166,14 +172,14 @@ class DatacenterFolder
|
||||
already_image_ds = VCenterDriver::Storage.exists_one_by_ref_ccr_and_type?(ds["_ref"], ccr_ref, vcenter_uuid, "IMAGE_DS", pool)
|
||||
|
||||
if !already_image_ds
|
||||
object = ds.to_one_template(one_clusters[dc_name], ccr_ref, ccr_name, "IMAGE_DS", vcenter_uuid)
|
||||
object = ds.to_one_template(one_clusters[dc_name], ccr_ref, ccr_name, "IMAGE_DS", vcenter_uuid, vcenter_instance_name, dc_name)
|
||||
ds_objects[dc_name] << object if !object.nil?
|
||||
end
|
||||
|
||||
already_system_ds = VCenterDriver::Storage.exists_one_by_ref_ccr_and_type?(ds["_ref"], ccr_ref, vcenter_uuid, "SYSTEM_DS", pool)
|
||||
|
||||
if !already_system_ds
|
||||
object = ds.to_one_template(one_clusters[dc_name], ccr_ref, ccr_name, "SYSTEM_DS", vcenter_uuid)
|
||||
object = ds.to_one_template(one_clusters[dc_name], ccr_ref, ccr_name, "SYSTEM_DS", vcenter_uuid, vcenter_instance_name, dc_name)
|
||||
ds_objects[dc_name] << object if !object.nil?
|
||||
end
|
||||
end
|
||||
@ -196,7 +202,7 @@ class DatacenterFolder
|
||||
already_system_ds = VCenterDriver::Storage.exists_one_by_ref_ccr_and_type?(ds["_ref"], ccr_ref, vcenter_uuid, "SYSTEM_DS", pool)
|
||||
|
||||
if !already_system_ds
|
||||
object = ds.to_one_template(one_clusters[dc_name], ccr_ref, ccr_name, "SYSTEM_DS", vcenter_uuid)
|
||||
object = ds.to_one_template(one_clusters[dc_name], ccr_ref, ccr_name, "SYSTEM_DS", vcenter_uuid, vcenter_instance_name, dc_name)
|
||||
ds_objects[dc_name] << object if !object.nil?
|
||||
end
|
||||
end
|
||||
|
@ -154,7 +154,7 @@ class Storage
|
||||
return one
|
||||
end
|
||||
|
||||
def to_one_template(one_clusters, ccr_ref, ccr_name, type, vcenter_uuid)
|
||||
def to_one_template(one_clusters, ccr_ref, ccr_name, type, vcenter_uuid, vcenter_instance_name, dc_name)
|
||||
|
||||
one_cluster = one_clusters.select { |ccr| ccr[:ref] == ccr_ref }.first rescue nil
|
||||
|
||||
@ -163,9 +163,9 @@ class Storage
|
||||
ds_name = ""
|
||||
|
||||
if type == "IMAGE_DS"
|
||||
ds_name << "#{self['name']} - #{ccr_name} (IMG)"
|
||||
ds_name << "[#{vcenter_instance_name} #{dc_name}] #{self['name']} - #{ccr_name} (IMG)"
|
||||
else
|
||||
ds_name << "#{self['name']} - #{ccr_name} (SYS)"
|
||||
ds_name << "[#{vcenter_instance_name} - #{dc_name}] #{self['name']} - #{ccr_name} (SYS)"
|
||||
ds_name << " [StorDRS]" if self.class == VCenterDriver::StoragePod
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user