
Reviewed-by: Paulo Vital <pvital@linux.vnet.ibm.com> On Apr 08 09:52PM, Jose Ricardo Ziviani wrote:
- This commit replaces the current backing image to a complete clone when using a template based on an existing template.
Signed-off-by: Jose Ricardo Ziviani <joserz@linux.vnet.ibm.com> --- model/templates.py | 17 ++++++++++++++++- vmtemplate.py | 8 -------- 2 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/model/templates.py b/model/templates.py index 1e6ad30..87173d1 100644 --- a/model/templates.py +++ b/model/templates.py @@ -361,7 +361,22 @@ class LibvirtVMTemplate(VMTemplate): for v in vol_list: pool = self._get_storage_pool(v['pool']) # outgoing text to libvirt, encode('utf-8') - pool.createXML(v['xml'].encode('utf-8'), 0) + if 'base' in v and 'path' in v['base']: + conn = self.conn.get() + try: + volume_base = conn.storageVolLookupByPath( + v['base']['path']) + + except libvirt.libvirtError as e: + pool.createXML(v['xml'].encode('utf-8'), 0) + continue + + pool.createXMLFrom(v['xml'].encode('utf-8'), + volume_base, + 0) + else: + pool.createXML(v['xml'].encode('utf-8'), 0) + except libvirt.libvirtError as e: raise OperationFailed("KCHVMSTOR0008E", {'error': e.message}) return vol_list diff --git a/vmtemplate.py b/vmtemplate.py index a223beb..4ce5d19 100644 --- a/vmtemplate.py +++ b/vmtemplate.py @@ -264,14 +264,6 @@ class VMTemplate(object): v_tree.append(E.capacity(str(info['capacity']), unit='G'))
target_fmt = info['format'] - if 'base' in d: - # target must be qcow2 in order to use a backing file - target_fmt = 'qcow2' - - v_tree.append(E.backingStore( - E.path(info['base']['path']), - E.format(type=info['base']['format']))) - target = E.target( E.format(type=target_fmt), E.path(info['path'])) v_tree.append(target) -- 1.9.1
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel
-- Paulo Ricardo Paz Vital Linux Technology Center, IBM Systems http://www.ibm.com/linux/ltc/