[libvirt] [PATCH 5/5] virsh: selective block device migration
Michal Privoznik
mprivozn at redhat.com
Thu May 14 15:18:29 UTC 2015
On 12.05.2015 14:07, Pavel Boldin wrote:
> Add `virsh migrate' option `--migratedisks' that allows CLI user to
> explicitly specify block devices to migrate.
>
> Signed-off-by: Pavel Boldin <pboldin at mirantis.com>
> ---
> tools/virsh-domain.c | 43 +++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 43 insertions(+)
>
> diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
> index 4b627e1..4f43a25 100644
> --- a/tools/virsh-domain.c
> +++ b/tools/virsh-domain.c
> @@ -9793,6 +9793,10 @@ static const vshCmdOptDef opts_migrate[] = {
> .type = VSH_OT_STRING,
> .help = N_("filename containing updated XML for the target")
> },
> + {.name = "migratedisks",
> + .type = VSH_OT_STRING,
> + .help = N_("comma separated list of disks to be migrated")
> + },
This needs to be documented in the manpage too.
> {.name = NULL}
> };
>
> @@ -9852,6 +9856,45 @@ doMigrate(void *opaque)
> VIR_MIGRATE_PARAM_DEST_NAME, opt) < 0)
> goto save_error;
>
> + if (vshCommandOptStringReq(ctl, cmd, "migratedisks", &opt) < 0)
> + goto out;
> + if (opt) {
> + const char **val = NULL;
> + char *tok, *saveptr = NULL, *opt_copy = NULL, *optp;
> + size_t max = 0, n = 0;
> +
> + if (VIR_STRDUP(opt_copy, opt) < 0)
> + goto save_error;
> +
> + optp = opt_copy;
> + do {
> + tok = strtok_r(optp, ",", &saveptr);
> + optp = NULL;
> +
> + if (VIR_RESIZE_N(val, max, n, 1) < 0) {
> + VIR_FREE(opt_copy);
> + VIR_FREE(val);
> + goto save_error;
> + }
> +
> + val[n] = tok;
> + n++;
> + } while (tok != NULL);
Consider virStringSplit().
> +
> + if (virTypedParamsPackStrings(¶ms,
> + &nparams,
> + &maxparams,
> + VIR_MIGRATE_PARAM_MIGRATE_DISKS,
> + val) < 0) {
> + VIR_FREE(opt_copy);
> + VIR_FREE(val);
> + goto save_error;
> + }
> +
> + VIR_FREE(opt_copy);
> + VIR_FREE(val);
> + }
> +
> if (vshCommandOptStringReq(ctl, cmd, "xml", &opt) < 0)
> goto out;
> if (opt) {
>
Otherwise looking good.
Michal
More information about the libvir-list
mailing list