@@ -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