[libvirt] [PATCH] virsh: Fix flag semantics and docs for "desc" command

Peter Krempa pkrempa at redhat.com
Wed Feb 8 12:16:27 UTC 2012

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   |   21 +++++++++++++++------
 tools/virsh.pod |   12 +++++-------
 2 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/tools/virsh.c b/tools/virsh.c
index c107d8c..66ba61c 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -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;
+        }
+    } 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)
@@ -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')
diff --git a/tools/virsh.pod b/tools/virsh.pod
index a85da13..21e0f57 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -435,7 +435,7 @@ 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>]
+=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
@@ -443,12 +443,10 @@ 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.

More information about the libvir-list mailing list