提交 c7151b0e 编写于 作者: R Roland Schulz 提交者: Michal Privoznik

tools: virsh: Add virshCellnoCompleter.

Signed-off-by: NRoland Schulz <schullzroll@gmail.com>
Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
上级 11a2550c
......@@ -756,3 +756,58 @@ virshNodedevEventNameCompleter(vshControl *ctl ATTRIBUTE_UNUSED,
virStringListFree(ret);
return NULL;
}
char **
virshCellnoCompleter(vshControl *ctl,
const vshCmd *cmd ATTRIBUTE_UNUSED,
unsigned int flags)
{
xmlXPathContextPtr ctxt = NULL;
virshControlPtr priv = ctl->privData;
unsigned int ncells = 0;
xmlNodePtr *cells = NULL;
xmlDocPtr doc = NULL;
size_t i = 0;
char *cap_xml = NULL;
char **ret = NULL;
virCheckFlags(0, NULL);
if (!priv->conn || virConnectIsAlive(priv->conn) <= 0)
goto error;
if (!(cap_xml = virConnectGetCapabilities(priv->conn)))
goto error;
if (!(doc = virXMLParseStringCtxt(cap_xml, _("capabilities"), &ctxt)))
goto error;
ncells = virXPathNodeSet("/capabilities/host/topology/cells/cell", ctxt, &cells);
if (ncells <= 0)
goto error;
if (VIR_ALLOC_N(ret, ncells + 1))
goto error;
for (i = 0; i < ncells; i++) {
if (!(ret[i] = virXMLPropString(cells[i], "id")))
goto error;
}
cleanup:
xmlXPathFreeContext(ctxt);
VIR_FREE(cells);
xmlFreeDoc(doc);
VIR_FREE(cap_xml);
return ret;
error:
if (ret) {
for (i = 0; i < ncells; i++)
VIR_FREE(ret[i]);
}
VIR_FREE(ret);
goto cleanup;
}
......@@ -94,4 +94,7 @@ char ** virshNodedevEventNameCompleter(vshControl *ctl,
const vshCmd *cmd,
unsigned int flags);
char ** virshCellnoCompleter(vshControl *ctl,
const vshCmd *cmd,
unsigned int flags);
#endif
......@@ -149,6 +149,7 @@ static const vshCmdInfo info_freecell[] = {
static const vshCmdOptDef opts_freecell[] = {
{.name = "cellno",
.type = VSH_OT_INT,
.completer = virshCellnoCompleter,
.help = N_("NUMA cell number")
},
{.name = "all",
......@@ -274,6 +275,7 @@ static const vshCmdInfo info_freepages[] = {
static const vshCmdOptDef opts_freepages[] = {
{.name = "cellno",
.type = VSH_OT_INT,
.completer = virshCellnoCompleter,
.help = N_("NUMA cell number")
},
{.name = "pagesize",
......@@ -483,6 +485,7 @@ static const vshCmdOptDef opts_allocpages[] = {
},
{.name = "cellno",
.type = VSH_OT_INT,
.completer = virshCellnoCompleter,
.help = N_("NUMA cell number")
},
{.name = "add",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册