Skip to content
Snippets Groups Projects
Commit 51a092ef authored by Thibault VINCENT's avatar Thibault VINCENT
Browse files

add: new wrapper to migrate libvirt vm

parent c2243e70
No related branches found
No related tags found
No related merge requests found
......@@ -566,6 +566,30 @@ class LibvirtVm(VM):
raise VMError('deletion of VM `%s` failed' % self.get_name())
self._hv_handle._cache_vm_rebuild()
def migrate(self, host, port):
'''
'''
if self.hypervisor().get_hv_type() == 'xen':
flags = (libvirt.VIR_MIGRATE_LIVE ^
libvirt.VIR_MIGRATE_PERSIST_DEST ^
libvirt.VIR_MIGRATE_UNDEFINE_SOURCE)
uri = 'xenmigr://%s:%d' % (host, port)
else:
flags = (libvirt.VIR_MIGRATE_LIVE ^
libvirt.VIR_MIGRATE_PERSIST_DEST ^
libvirt.VIR_MIGRATE_UNDEFINE_SOURCE ^
libvirt.VIR_MIGRATE_PEER2PEER ^
libvirt.VIR_MIGRATE_TUNNELLED)
uri = 'qemu+tcp://%s:%d/system' % (host, port)
try:
self._domain.migrate(self._hv_handle._lvcon_handle, flags, None, uri, 0)
except libvirt.libvirtError as err:
# FIXME ignore bogus exception properly
if not ('no domain with matching name' in err.message
or 'Domain not found' in err.message):
raise err
def power_on(self):
'''
'''
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment