Skip to content

Commit 7fc07c8

Browse files
committed
B #6831: Fix onevm save duplicated disks
1 parent 5d6b857 commit 7fc07c8

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

src/oca/ruby/opennebula/virtual_machine_ext.rb

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,13 @@ class << obj
5151
'NETWORK_ID', 'VN_MAD', 'SECURITY_GROUPS', 'VLAN_ID',
5252
'BRIDGE_TYPE']
5353

54-
REMOVE_IMAGE_ATTRS = ['DEV_PREFIX', 'SOURCE', 'ORIGINAL_SIZE', 'SIZE',
55-
'DISK_SNAPSHOT_TOTAL_SIZE', 'DRIVER', 'IMAGE_STATE', 'SAVE',
54+
REMOVE_IMAGE_ATTRS = ['DEV_PREFIX', 'SOURCE', 'DRIVER', 'FORMAT', 'ORIGINAL_SIZE',
55+
'DISK_SNAPSHOT_TOTAL_SIZE', 'IMAGE_STATE', 'SAVE',
5656
'CLONE', 'READONLY', 'PERSISTENT', 'TARGET', 'ALLOW_ORPHANS',
5757
'CLONE_TARGET', 'CLUSTER_ID', 'DATASTORE', 'DATASTORE_ID',
5858
'DISK_ID', 'DISK_TYPE', 'IMAGE_ID', 'IMAGE', 'IMAGE_UNAME',
59-
'IMAGE_UID', 'LN_TARGET', 'TM_MAD', 'TYPE', 'OPENNEBULA_MANAGED']
59+
'IMAGE_UID', 'LN_TARGET', 'TM_MAD', 'TM_MAD_SYSTEM',
60+
'OPENNEBULA_MANAGED']
6061

6162
def save_as_template(name, desc, opts = {})
6263
opts = {
@@ -171,17 +172,17 @@ def save_as_template(name, desc, opts = {})
171172
if !valid?(image_id)
172173
logger.info 'Adding volatile disk' if logger
173174

174-
disk_str = template_like_str(
175-
'TEMPLATE',
176-
true,
177-
"DISK [ DISK_ID = #{disk_id} ]"
178-
)
175+
disk_str = disk.template_like_str('.').tr("\n", ",\n")
179176

180-
replace << "#{disk_str}\n"
177+
replace << "DISK = [ #{disk_str} ]\n"
181178

182179
next
183180
end
184181

182+
# SIZE, TYPE is important for volatile disk, remove them now
183+
disk.delete_element('SIZE')
184+
disk.delete_element('TYPE')
185+
185186
# CDROM disk, copy definition
186187
if type == 'CDROM'
187188
logger.info 'Adding CDROM disk' if logger
@@ -272,7 +273,7 @@ def save_as_template(name, desc, opts = {})
272273
# --------------------------------------------------------------
273274
# Rollback. Delete the template and the images created
274275
# --------------------------------------------------------------
275-
if ntid
276+
if ntid && !OpenNebula.is_error?(ntid)
276277
ntmpl = OpenNebula::Template.new_with_id(ntid, @client)
277278
ntmpl.delete
278279
end

0 commit comments

Comments
 (0)