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;
+ }
+ 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')
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.
--
1.7.6.1