::
domcapabilities [virttype] [emulatorbin] [arch] [machine]
+ [--xpath EXPRESSION] [--wrap]
Print an XML document describing the domain capabilities for the
generate output for the default *machine*. Supplying a *machine*
value will generate output for the specific machine.
+If the **--xpath** argument provides an XPath expression, it will be
+evaluated against the output XML and only those matching nodes will
+be printed. The default behaviour is to print each matching node as
+a standalone document, however, for ease of additional processing,
+the **--wrap** argument will cause the matching node to be wrapped
+in a common root node.
+
pool-capabilities
-----------------
.type = VSH_OT_STRING,
.help = N_("machine type (/domain/os/type/@machine)"),
},
+ {.name = "xpath",
+ .type = VSH_OT_STRING,
+ .flags = VSH_OFLAG_REQ_OPT,
+ .completer = virshCompleteEmpty,
+ .help = N_("xpath expression to filter the XML document")
+ },
+ {.name = "wrap",
+ .type = VSH_OT_BOOL,
+ .help = N_("wrap xpath results in an common root element"),
+ },
{.name = NULL}
};
const char *emulatorbin = NULL;
const char *arch = NULL;
const char *machine = NULL;
+ const char *xpath = NULL;
const unsigned int flags = 0; /* No flags so far */
+ bool wrap = vshCommandOptBool(cmd, "wrap");
virshControl *priv = ctl->privData;
if (vshCommandOptStringReq(ctl, cmd, "virttype", &virttype) < 0 ||
vshCommandOptStringReq(ctl, cmd, "emulatorbin", &emulatorbin) < 0 ||
vshCommandOptStringReq(ctl, cmd, "arch", &arch) < 0 ||
- vshCommandOptStringReq(ctl, cmd, "machine", &machine) < 0)
+ vshCommandOptStringReq(ctl, cmd, "machine", &machine) < 0 ||
+ vshCommandOptStringQuiet(ctl, cmd, "xpath", &xpath) < 0)
return false;
caps = virConnectGetDomainCapabilities(priv->conn, emulatorbin,
return false;
}
- vshPrint(ctl, "%s\n", caps);
-
- return true;
+ return virshDumpXML(ctl, caps, "domcapabilities", xpath, wrap);
}
/*