mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Add a second URI parameter to virDomainMigratePerform3 method
The virDomainMigratePerform3 currently has a single URI parameter whose meaning varies. It is either - A QEMU migration URI (normal migration) - A libvirtd connection URI (peer2peer migration) Unfortunately when using peer2peer migration, without also using tunnelled migration, it is possible that both URIs are required. This adds a second URI parameter to the virDomainMigratePerform3 method, to cope with this scenario. Each parameter how has a fixed meaning. NB, there is no way to actually take advantage of this yet, since virDomainMigrate/virDomainMigrateToURI do not have any way to provide the 2 separate URIs * daemon/remote.c, src/remote/remote_driver.c, src/remote/remote_protocol.x, src/remote_protocol-structs: Add the second URI parameter to perform3 message * src/driver.h, src/libvirt.c, src/libvirt_internal.h: Add the second URI parameter to Perform3 method * src/libvirt_internal.h, src/qemu/qemu_migration.c, src/qemu/qemu_migration.h: Update to handle URIs correctly
This commit is contained in:
@@ -3292,6 +3292,8 @@ remoteDispatchDomainMigratePerform3(struct qemud_server *server ATTRIBUTE_UNUSED
|
||||
virDomainPtr dom = NULL;
|
||||
char *xmlin;
|
||||
char *dname;
|
||||
char *uri;
|
||||
char *dconnuri;
|
||||
char *cookieout = NULL;
|
||||
int cookieoutlen = 0;
|
||||
int rv = -1;
|
||||
@@ -3306,12 +3308,14 @@ remoteDispatchDomainMigratePerform3(struct qemud_server *server ATTRIBUTE_UNUSED
|
||||
|
||||
xmlin = args->xmlin == NULL ? NULL : *args->xmlin;
|
||||
dname = args->dname == NULL ? NULL : *args->dname;
|
||||
uri = args->uri == NULL ? NULL : *args->uri;
|
||||
dconnuri = args->dconnuri == NULL ? NULL : *args->dconnuri;
|
||||
|
||||
if (virDomainMigratePerform3(dom, xmlin,
|
||||
args->cookie_in.cookie_in_val,
|
||||
args->cookie_in.cookie_in_len,
|
||||
&cookieout, &cookieoutlen,
|
||||
args->uri,
|
||||
dconnuri, uri,
|
||||
args->flags, dname, args->resource) < 0)
|
||||
goto cleanup;
|
||||
|
||||
@@ -3343,6 +3347,8 @@ remoteDispatchDomainMigrateFinish3(struct qemud_server *server ATTRIBUTE_UNUSED,
|
||||
virDomainPtr dom = NULL;
|
||||
char *cookieout = NULL;
|
||||
int cookieoutlen = 0;
|
||||
char *uri;
|
||||
char *dconnuri;
|
||||
int rv = -1;
|
||||
|
||||
if (!conn) {
|
||||
@@ -3350,11 +3356,14 @@ remoteDispatchDomainMigrateFinish3(struct qemud_server *server ATTRIBUTE_UNUSED,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
uri = args->uri == NULL ? NULL : *args->uri;
|
||||
dconnuri = args->dconnuri == NULL ? NULL : *args->dconnuri;
|
||||
|
||||
if (virDomainMigrateFinish3(conn, args->dname,
|
||||
args->cookie_in.cookie_in_val,
|
||||
args->cookie_in.cookie_in_len,
|
||||
&cookieout, &cookieoutlen,
|
||||
args->uri,
|
||||
dconnuri, uri,
|
||||
args->flags,
|
||||
args->cancelled,
|
||||
&dom) < 0)
|
||||
|
||||
Reference in New Issue
Block a user