]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
virsh-domain: Fix declarations of flag variables in cmdChangeMedia
authorPeter Krempa <pkrempa@redhat.com>
Thu, 21 Mar 2013 14:35:13 +0000 (15:35 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 2 Apr 2013 14:02:43 +0000 (16:02 +0200)
The parameter options can be declared directly.

Also use macros for mutual exclusion on some of the incompatible
parameter variables.

tools/virsh-domain.c

index d6b49533843cc8bc723cf40bd10fe6afb0a35793..1dfc9bc0e2df3f930a196d2f7357141aa1ef3975 100644 (file)
@@ -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;