virsh: add --disable-deprecated-features flag to domcapabilities

Add a new flag, --disable-deprecated-features, to the domcapabilities
command.  This will modify the output to show the 'host-model' CPU
with features flagged as deprecated paired with the 'disable' policy.

virsh domcapabilities --disable-deprecated-features

Signed-off-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
Collin Walling 2024-12-16 18:03:57 -05:00 committed by Jiri Denemark
parent cd1e837c22
commit 15d45964e4
2 changed files with 14 additions and 1 deletions

View File

@ -568,6 +568,7 @@ domcapabilities
domcapabilities [virttype] [emulatorbin] [arch] [machine] domcapabilities [virttype] [emulatorbin] [arch] [machine]
[--xpath EXPRESSION] [--wrap] [--xpath EXPRESSION] [--wrap]
[--disable-deprecated-features]
Print an XML document describing the domain capabilities for the Print an XML document describing the domain capabilities for the
@ -609,6 +610,11 @@ a standalone document, however, for ease of additional processing,
the **--wrap** argument will cause the matching node to be wrapped the **--wrap** argument will cause the matching node to be wrapped
in a common root node. in a common root node.
The **--disable-deprecated-features** argument will modify the contents
of host-model CPU XML, updating the features list with any features
flagged as deprecated for the CPU model by the hypervisor. These
features will be paired with the "disable" policy.
pool-capabilities pool-capabilities
----------------- -----------------

View File

@ -114,6 +114,10 @@ static const vshCmdOptDef opts_domcapabilities[] = {
.type = VSH_OT_BOOL, .type = VSH_OT_BOOL,
.help = N_("wrap xpath results in an common root element"), .help = N_("wrap xpath results in an common root element"),
}, },
{.name = "disable-deprecated-features",
.type = VSH_OT_BOOL,
.help = N_("report host CPU model with deprecated features disabled"),
},
{.name = NULL} {.name = NULL}
}; };
@ -126,10 +130,13 @@ cmdDomCapabilities(vshControl *ctl, const vshCmd *cmd)
const char *arch = NULL; const char *arch = NULL;
const char *machine = NULL; const char *machine = NULL;
const char *xpath = NULL; const char *xpath = NULL;
const unsigned int flags = 0; /* No flags so far */ unsigned int flags = 0;
bool wrap = vshCommandOptBool(cmd, "wrap"); bool wrap = vshCommandOptBool(cmd, "wrap");
virshControl *priv = ctl->privData; virshControl *priv = ctl->privData;
if (vshCommandOptBool(cmd, "disable-deprecated-features"))
flags |= VIR_CONNECT_GET_DOMAIN_CAPABILITIES_DISABLE_DEPRECATED_FEATURES;
if (vshCommandOptString(ctl, cmd, "virttype", &virttype) < 0 || if (vshCommandOptString(ctl, cmd, "virttype", &virttype) < 0 ||
vshCommandOptString(ctl, cmd, "emulatorbin", &emulatorbin) < 0 || vshCommandOptString(ctl, cmd, "emulatorbin", &emulatorbin) < 0 ||
vshCommandOptString(ctl, cmd, "arch", &arch) < 0 || vshCommandOptString(ctl, cmd, "arch", &arch) < 0 ||