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@xxxxxxxxxxxx> > --- > 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list