mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
B #2610: Fix CDs in saveas operation
This commit is contained in:
parent
a9b4193adf
commit
846de840af
@ -855,17 +855,25 @@ module OpenNebula
|
||||
image_id = disk["IMAGE_ID"]
|
||||
|
||||
if !image_id.nil? && !image_id.empty?
|
||||
rc = disk_saveas(disk_id.to_i,"#{name}-disk-#{disk_id}","",-1)
|
||||
if disk['TYPE'] == 'CDROM'
|
||||
replace << "DISK = [ IMAGE_ID = #{image_id}"
|
||||
if disk["OPENNEBULA_MANAGED"]
|
||||
replace << ", OPENNEBULA_MANAGED=#{disk["OPENNEBULA_MANAGED"]}"
|
||||
end
|
||||
replace << " ]\n"
|
||||
else
|
||||
rc = disk_saveas(disk_id.to_i,"#{name}-disk-#{disk_id}","",-1)
|
||||
|
||||
raise if OpenNebula.is_error?(rc)
|
||||
raise if OpenNebula.is_error?(rc)
|
||||
|
||||
if persistent == true
|
||||
OpenNebula::Image.new_with_id(rc.to_i, @client).persistent()
|
||||
if persistent == true
|
||||
OpenNebula::Image.new_with_id(rc.to_i, @client).persistent()
|
||||
end
|
||||
|
||||
img_ids << rc.to_i
|
||||
|
||||
replace << "DISK = [ IMAGE_ID = #{rc} ]\n"
|
||||
end
|
||||
|
||||
img_ids << rc.to_i
|
||||
|
||||
replace << "DISK = [ IMAGE_ID = #{rc} ]\n"
|
||||
else
|
||||
# Volatile disks cannot be saved, so the definition is copied
|
||||
replace << self.template_like_str(
|
||||
@ -874,12 +882,13 @@ module OpenNebula
|
||||
end
|
||||
|
||||
self.each('TEMPLATE/NIC') do |nic|
|
||||
|
||||
nic_id = nic["NIC_ID"]
|
||||
|
||||
if nic_id.nil? || nic_id.empty?
|
||||
rc = Error.new('The NIC_ID is missing from the VM template')
|
||||
raise
|
||||
end
|
||||
|
||||
REMOVE_VNET_ATTRS.each do |attr|
|
||||
nic.delete_element(attr)
|
||||
end
|
||||
|
@ -77,12 +77,12 @@ begin
|
||||
# Get source and target ds ref
|
||||
disk = vm.disk(disk_id)
|
||||
src_path = disk.path
|
||||
source_ds_ref = disk.ds_ref
|
||||
source_ds_ref = disk.ds._ref
|
||||
|
||||
source_ds_vc = VCenterDriver::Datastore.new_from_ref(source_ds_ref, vi_client)
|
||||
|
||||
# Get target ds ref
|
||||
target_ds = VCenterDriver::VIHelper.one_item(OpenNebula::Datastore, target_ds_id)
|
||||
target_ds = VCenterDriver::VIHelper.one_item(OpenNebula::Datastore, target_ds_id, false)
|
||||
target_ds_ref = target_ds['TEMPLATE/VCENTER_DS_REF']
|
||||
target_ds_vc = VCenterDriver::Datastore.new_from_ref(target_ds_ref, vi_client)
|
||||
target_ds_name_vc = target_ds_vc['name']
|
||||
|
@ -168,7 +168,7 @@ class VirtualMachine < VCenterDriver::Template
|
||||
@vc_res[:datastore]
|
||||
end
|
||||
|
||||
def ds_ref
|
||||
def image_ds_ref
|
||||
@one_res['VCENTER_DS_REF']
|
||||
end
|
||||
|
||||
|
@ -17,4 +17,4 @@
|
||||
# No : VCENTER_IMPORTED attribute will be set on imported images
|
||||
# this attribute prevents the image to be deleted.
|
||||
# Yes : You can delete the images using OpenNebula.
|
||||
:delete_images: Yes
|
||||
:delete_images: No
|
||||
|
Loading…
x
Reference in New Issue
Block a user