virsh: add function to get the CPU models for an arch

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Giuseppe Scrivano 2013-09-23 11:46:03 +02:00 committed by Eric Blake
parent dda4548c7b
commit ea45b23cfc
2 changed files with 59 additions and 0 deletions

View File

@ -664,6 +664,54 @@ cmdURI(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
return true; return true;
} }
/*
* "cpu-models" command
*/
static const vshCmdInfo info_cpu_models[] = {
{.name = "help",
.data = N_("CPU models")
},
{.name = "desc",
.data = N_("Get the CPU models for an arch.")
},
{.name = NULL}
};
static const vshCmdOptDef opts_cpu_models[] = {
{.name = "arch",
.type = VSH_OT_DATA,
.flags = VSH_OFLAG_REQ,
.help = N_("architecture")
},
{.name = NULL}
};
static bool
cmdCPUModelNames(vshControl *ctl, const vshCmd *cmd)
{
char **models;
size_t i;
int nmodels;
const char *arch = NULL;
if (vshCommandOptStringReq(ctl, cmd, "arch", &arch) < 0)
return false;
nmodels = virConnectGetCPUModelNames(ctl->conn, arch, &models, 0);
if (nmodels < 0) {
vshError(ctl, "%s", _("failed to get CPU model names"));
return false;
}
for (i = 0; i < nmodels; i++) {
vshPrint(ctl, "%s\n", models[i]);
VIR_FREE(models[i]);
}
VIR_FREE(models);
return true;
}
/* /*
* "version" command * "version" command
*/ */
@ -889,6 +937,12 @@ const vshCmdDef hostAndHypervisorCmds[] = {
.info = info_capabilities, .info = info_capabilities,
.flags = 0 .flags = 0
}, },
{.name = "cpu-models",
.handler = cmdCPUModelNames,
.opts = opts_cpu_models,
.info = info_cpu_models,
.flags = 0
},
{.name = "freecell", {.name = "freecell",
.handler = cmdFreecell, .handler = cmdFreecell,
.opts = opts_freecell, .opts = opts_freecell,

View File

@ -163,6 +163,7 @@ group as an option. For example:
Host and Hypervisor (help keyword 'host'): Host and Hypervisor (help keyword 'host'):
capabilities capabilities capabilities capabilities
cpu-models show the CPU models for an architecture
connect (re)connect to hypervisor connect (re)connect to hypervisor
freecell NUMA free memory freecell NUMA free memory
hostname print the hypervisor hostname hostname print the hypervisor hostname
@ -358,6 +359,10 @@ current domain is in.
=over 4 =over 4
=item B<cpu-models> I<arch>
Print the list of CPU models known for the specified architecture.
=item B<running> =item B<running>
The domain is currently running on a CPU The domain is currently running on a CPU