From cc0cc6b714a3aeff1a8abecb26ef8d246b5e65b3 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Thu, 21 Mar 2013 15:35:13 +0100 Subject: [PATCH] virsh-domain: Fix declarations of flag variables in cmdChangeMedia The parameter options can be declared directly. Also use macros for mutual exclusion on some of the incompatible parameter variables. --- tools/virsh-domain.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index d6b4953384..1dfc9bc0e2 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -9837,26 +9837,21 @@ cmdChangeMedia(vshControl *ctl, const vshCmd *cmd) const char *doc = NULL; xmlNodePtr disk_node = NULL; const char *disk_xml = NULL; - unsigned int flags = VIR_DOMAIN_AFFECT_CURRENT; - bool config, live, current, force = false; - bool eject, insert, update = false; bool ret = false; int prepare_type = 0; const char *action = NULL; + bool config = vshCommandOptBool(cmd, "config"); + bool live = vshCommandOptBool(cmd, "live"); + bool current = vshCommandOptBool(cmd, "current"); + bool force = vshCommandOptBool(cmd, "force"); + bool eject = vshCommandOptBool(cmd, "eject"); + bool insert = vshCommandOptBool(cmd, "insert"); + bool update = vshCommandOptBool(cmd, "update"); + unsigned int flags = VIR_DOMAIN_AFFECT_CURRENT; - config = vshCommandOptBool(cmd, "config"); - live = vshCommandOptBool(cmd, "live"); - current = vshCommandOptBool(cmd, "current"); - force = vshCommandOptBool(cmd, "force"); - eject = vshCommandOptBool(cmd, "eject"); - insert = vshCommandOptBool(cmd, "insert"); - update = vshCommandOptBool(cmd, "update"); - - if (eject + insert + update > 1) { - vshError(ctl, "%s", _("--eject, --insert, and --update must be specified " - "exclusively.")); - return false; - } + VSH_EXCLUSIVE_OPTIONS_VAR(eject, insert); + VSH_EXCLUSIVE_OPTIONS_VAR(eject, update); + VSH_EXCLUSIVE_OPTIONS_VAR(insert, update); if (eject) { prepare_type = VSH_PREPARE_DISK_XML_EJECT;