]> xenbits.xensource.com Git - libvirt.git/commitdiff
virsh: Fix flag semantics and docs for "desc" command
authorPeter Krempa <pkrempa@redhat.com>
Wed, 8 Feb 2012 10:31:10 +0000 (11:31 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 8 Feb 2012 15:39:09 +0000 (16:39 +0100)
This patch fixes the domain modification impact flags for tie virsh
desc command to match the new semantics and fix the docs to match
actual behavior.

tools/virsh.c
tools/virsh.pod

index c107d8cdd44eb223aa75c97ded75d8a1ad30af61..66ba61c5e1814673eab15c18139300c6cab97468 100644 (file)
@@ -1051,7 +1051,7 @@ cmdDesc(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
     virDomainPtr dom;
     bool config = vshCommandOptBool(cmd, "config");
     bool live = vshCommandOptBool(cmd, "live");
-    /* current is ignored */
+    bool current = vshCommandOptBool(cmd, "current");
 
     bool title = vshCommandOptBool(cmd, "title");
     bool edit = vshCommandOptBool(cmd, "edit");
@@ -1068,6 +1068,19 @@ cmdDesc(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
     bool ret = false;
     unsigned int flags = VIR_DOMAIN_AFFECT_CURRENT;
 
+    if (current) {
+        if (live || config) {
+            vshError(ctl, "%s", _("--current must be specified exclusively"));
+            return false;
+        }
+        flags = VIR_DOMAIN_AFFECT_CURRENT;
+    } else {
+        if (config)
+            flags |= VIR_DOMAIN_AFFECT_CONFIG;
+        if (live)
+            flags |= VIR_DOMAIN_AFFECT_LIVE;
+    }
+
     if (!vshConnectionUsability(ctl, ctl->conn))
         return false;
 
@@ -1084,10 +1097,6 @@ cmdDesc(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
         virBufferAdd(&buf, opt->data, -1);
     }
 
-    if (live)
-        flags |= VIR_DOMAIN_AFFECT_LIVE;
-    if (config)
-        flags |= VIR_DOMAIN_AFFECT_CONFIG;
     if (title)
         type = VIR_DOMAIN_METADATA_TITLE;
     else
@@ -1122,7 +1131,7 @@ cmdDesc(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
 
             /* strip a possible newline at the end of file; some
              * editors enforce a newline, this makes editing the title
-             * more convinient */
+             * more convenient */
             if (title &&
                 (tmpstr = strrchr(desc_edited, '\n')) &&
                 *(tmpstr+1) == '\0')
index a85da1346c9d27c75271813446ef502570264a69..bd79b4c3b503af0c00e8d5760751a6131d115977 100644 (file)
@@ -435,20 +435,18 @@ Define a domain from an XML <file>. The domain definition is registered
 but not started.  If domain is already running, the changes will take
 effect on the next boot.
 
-=item B<desc> [I<--live> | I<--config>] [I<--title>] [I<--edit>]
-              [I<--new-desc> New description or title message]
+=item B<desc> [[I<--live>] [I<--config>] | [I<--current>]] [I<--title>]
+              [I<--edit>] [I<--new-desc> New description or title message]
 
 Show or modify description and title of a domain. These values are user
 fields that allow to store arbitrary textual data to allow easy
 identification of domains. Title should be short, although it's not enforced.
 
 Flags I<--live> or I<--config> select whether this command works on live
-or persistent definitions of the domain. By default both are influenced, while
-modifying and running definition is used while reading the note.
-
-If both I<--live> and I<--config> are specified, the I<--config> option takes
-precedence on getting the current description and both live configuration
-and config are updated while setting the description.
+or persistent definitions of the domain. If both I<--live> and I<--config>
+are specified, the I<--config> option takes precedence on getting the current
+description and both live configuration and config are updated while setting
+the description. I<--current> is exclusive and implied if none of these was specified.
 
 Flag I<--edit> specifies that an editor with the contents of current
 description or title should be opened and the contents saved back afterwards.