From 53ff78bcd85b2e8df67edd1ecf2c70de4c9c96fe Mon Sep 17 00:00:00 2001 Message-Id: <53ff78bcd85b2e8df67edd1ecf2c70de4c9c96fe.1382534061.git.jdenemar@redhat.com> From: Michal Privoznik Date: Fri, 11 Oct 2013 11:24:33 +0200 Subject: [PATCH] Migration: Introduce VIR_MIGRATE_PARAM_LISTEN_ADDRESS https://bugzilla.redhat.com/show_bug.cgi?id=1015215 The parameter allows overriding default listen address for '-incoming' cmd line argument on destination. Signed-off-by: Michal Privoznik (cherry picked from commit 72aafe9c812e17547df185abebb3fe4e56d0d982) Signed-off-by: Jiri Denemark --- include/libvirt/libvirt.h.in | 10 ++++++++++ tools/virsh-domain.c | 11 +++++++++++ tools/virsh.pod | 10 ++++++++-- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in index 52ac95d..1bc6624 100644 --- a/include/libvirt/libvirt.h.in +++ b/include/libvirt/libvirt.h.in @@ -1270,6 +1270,16 @@ typedef enum { */ #define VIR_MIGRATE_PARAM_GRAPHICS_URI "graphics_uri" +/** + * VIR_MIGRATE_PARAM_LISTEN_ADDRESS: + * + * virDomainMigrate* params field: The listen address that hypervisor on the + * destination side should bind to for incoming migration. Both, IPv4 and IPv6 + * addresses are accepted as well as hostnames (the resolving is done on + * destination). Some hypervisors do not support this feature an will return an + * error if this field is used. + */ +#define VIR_MIGRATE_PARAM_LISTEN_ADDRESS "listen_address" /* Domain migration. */ virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn, diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index bf5f425..b4faa69 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -8405,6 +8405,10 @@ static const vshCmdOptDef opts_migrate[] = { .type = VSH_OT_DATA, .help = N_("graphics URI to be used for seamless graphics migration") }, + {.name = "listen-address", + .type = VSH_OT_DATA, + .help = N_("listen address that destination should bind to for incoming migration") + }, {.name = "dname", .type = VSH_OT_DATA, .help = N_("rename to new name during migration (if supported)") @@ -8461,6 +8465,13 @@ doMigrate(void *opaque) VIR_MIGRATE_PARAM_GRAPHICS_URI, opt) < 0) goto save_error; + if (vshCommandOptStringReq(ctl, cmd, "listen-address", &opt) < 0) + goto out; + if (opt && + virTypedParamsAddString(¶ms, &nparams, &maxparams, + VIR_MIGRATE_PARAM_LISTEN_ADDRESS, opt) < 0) + goto save_error; + if (vshCommandOptStringReq(ctl, cmd, "dname", &opt) < 0) goto out; if (opt && diff --git a/tools/virsh.pod b/tools/virsh.pod index 3ff6da1..808a90c 100644 --- a/tools/virsh.pod +++ b/tools/virsh.pod @@ -1070,8 +1070,8 @@ stats. [I<--persistent>] [I<--undefinesource>] [I<--suspend>] [I<--copy-storage-all>] [I<--copy-storage-inc>] [I<--change-protection>] [I<--unsafe>] [I<--verbose>] [I<--compressed>] [I<--abort-on-error>] -I I [I] [I] [I] -[I<--timeout> B] [I<--xml> B] +I I [I] [I] [I] +[I] [I<--timeout> B] [I<--xml> B] Migrate domain to another host. Add I<--live> for live migration; <--p2p> for peer-2-peer migration; I<--direct> for direct migration; or I<--tunnelled> @@ -1178,6 +1178,12 @@ specific parameters separated by '&'. Currently recognized parameters are spice://target.host.com:1234/?tlsPort=4567 +Optional I sets the listen address that hypervisor on the +destination side should bind to for incoming migration. Both IPv4 and IPv6 +addresses are accepted as well as hostnames (the resolving is done on +destination). Some hypervisors do not support this feature and will return an +error if this parameter is used. + =item B I I Set maximum tolerable downtime for a domain which is being live-migrated to -- 1.8.4