From f7e40ae87918ae0ced3c6388c9faf05191d4c15a Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 4 Apr 2006 14:37:32 +0000 Subject: [PATCH] add nodeinfo, rename dinfo to dominfo, fix libvirt.h typo --- ChangeLog | 7 ++++++ docs/FAQ.html | 2 +- docs/libvir.html | 2 +- include/libvirt.h | 2 +- include/libvirt.h.in | 2 +- include/libvirt/libvirt.h | 2 +- include/libvirt/libvirt.h.in | 2 +- src/virsh.c | 47 +++++++++++++++++++++++++++++++----- 8 files changed, 54 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0f11bb18c9..e35c6aa585 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Tue Apr 4 12:41:53 CEST 2006 Karel Zak + + * src/virsh.c: add new command "nodeinfo" + * include/libvirt.h.in: fix typo (virNodeInfo.memory is in kB) + * docs/FAQ.html docs/libvir.html src/virsh.c: rename command + "dinfo" to "dominfo" + Mon Apr 3 14:46:39 EDT 2006 Daniel Veillard * include/libvirt.h[.in] src/driver.h src/libvirt.c diff --git a/docs/FAQ.html b/docs/FAQ.html index f2d2645227..81323a149c 100644 --- a/docs/FAQ.html +++ b/docs/FAQ.html @@ -36,7 +36,7 @@
  • Failure to use the API for non-root users

    Large parts of the API may only be accessible with root priviledges, however the read only access to the xenstore data doesnot have to be - forbidden to user, at least for monitoring purposes. If "virsh dinfo" + forbidden to user, at least for monitoring purposes. If "virsh dominfo" fails to run as an user, change the mode of the xenstore read-only socket with:

    chmod 666 /var/run/xenstored/socket_ro

    diff --git a/docs/libvir.html b/docs/libvir.html index 2daa9fae62..594b1b1b7f 100644 --- a/docs/libvir.html +++ b/docs/libvir.html @@ -567,7 +567,7 @@ containing the same field as a virError in C, but cast to Python.

  • Failure to use the API for non-root users

    Large parts of the API may only be accessible with root priviledges, however the read only access to the xenstore data doesnot have to be - forbidden to user, at least for monitoring purposes. If "virsh dinfo" + forbidden to user, at least for monitoring purposes. If "virsh dominfo" fails to run as an user, change the mode of the xenstore read-only socket with:

    chmod 666 /var/run/xenstored/socket_ro

    diff --git a/include/libvirt.h b/include/libvirt.h index 02ca8c2197..fe1677b5ba 100644 --- a/include/libvirt.h +++ b/include/libvirt.h @@ -158,7 +158,7 @@ typedef struct _virNodeInfo virNodeInfo; struct _virNodeInfo { char model[32]; /* string indicating the CPU model */ - unsigned long memory;/* memory size in megabytes */ + unsigned long memory;/* memory size in kilobytes */ unsigned int cpus; /* the number of active CPUs */ unsigned int mhz; /* expected CPU frequency */ unsigned int nodes; /* the number of NUMA cell, 1 for uniform mem access */ diff --git a/include/libvirt.h.in b/include/libvirt.h.in index a73c46ac93..f90292f5ee 100644 --- a/include/libvirt.h.in +++ b/include/libvirt.h.in @@ -158,7 +158,7 @@ typedef struct _virNodeInfo virNodeInfo; struct _virNodeInfo { char model[32]; /* string indicating the CPU model */ - unsigned long memory;/* memory size in megabytes */ + unsigned long memory;/* memory size in kilobytes */ unsigned int cpus; /* the number of active CPUs */ unsigned int mhz; /* expected CPU frequency */ unsigned int nodes; /* the number of NUMA cell, 1 for uniform mem access */ diff --git a/include/libvirt/libvirt.h b/include/libvirt/libvirt.h index 02ca8c2197..fe1677b5ba 100644 --- a/include/libvirt/libvirt.h +++ b/include/libvirt/libvirt.h @@ -158,7 +158,7 @@ typedef struct _virNodeInfo virNodeInfo; struct _virNodeInfo { char model[32]; /* string indicating the CPU model */ - unsigned long memory;/* memory size in megabytes */ + unsigned long memory;/* memory size in kilobytes */ unsigned int cpus; /* the number of active CPUs */ unsigned int mhz; /* expected CPU frequency */ unsigned int nodes; /* the number of NUMA cell, 1 for uniform mem access */ diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in index a73c46ac93..f90292f5ee 100644 --- a/include/libvirt/libvirt.h.in +++ b/include/libvirt/libvirt.h.in @@ -158,7 +158,7 @@ typedef struct _virNodeInfo virNodeInfo; struct _virNodeInfo { char model[32]; /* string indicating the CPU model */ - unsigned long memory;/* memory size in megabytes */ + unsigned long memory;/* memory size in kilobytes */ unsigned int cpus; /* the number of active CPUs */ unsigned int mhz; /* expected CPU frequency */ unsigned int nodes; /* the number of NUMA cell, 1 for uniform mem access */ diff --git a/src/virsh.c b/src/virsh.c index 39c3665bd3..868eb91cd6 100644 --- a/src/virsh.c +++ b/src/virsh.c @@ -714,22 +714,22 @@ cmdDestroy(vshControl * ctl, vshCmd * cmd) } /* - * "dinfo" command + * "dominfo" command */ -static vshCmdInfo info_dinfo[] = { - {"syntax", "dinfo "}, +static vshCmdInfo info_dominfo[] = { + {"syntax", "dominfo "}, {"help", "domain information"}, {"desc", "Returns basic information about the domain."}, {NULL, NULL} }; -static vshCmdOptDef opts_dinfo[] = { +static vshCmdOptDef opts_dominfo[] = { {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, "domain name or id"}, {NULL, 0, 0, NULL} }; static int -cmdDinfo(vshControl * ctl, vshCmd * cmd) +cmdDominfo(vshControl * ctl, vshCmd * cmd) { virDomainInfo info; virDomainPtr dom; @@ -777,6 +777,40 @@ cmdDinfo(vshControl * ctl, vshCmd * cmd) return ret; } +/* + * "nodeinfo" command + */ +static vshCmdInfo info_nodeinfo[] = { + {"syntax", "nodeinfo"}, + {"help", "node information"}, + {"desc", "Returns basic information about the node."}, + {NULL, NULL} +}; + +static int +cmdNodeinfo(vshControl * ctl, vshCmd * cmd ATTRIBUTE_UNUSED) +{ + virNodeInfo info; + + if (!vshConnectionUsability(ctl, ctl->conn, TRUE)) + return FALSE; + + if (virNodeGetInfo(ctl->conn, &info) < 0) { + vshError(ctl, FALSE, "failed to get node information"); + return FALSE; + } + vshPrint(ctl, VSH_MESG, "%-20s %s\n", "CPU model:", info.model); + vshPrint(ctl, VSH_MESG, "%-20s %d\n", "CPU(s):", info.cpus); + vshPrint(ctl, VSH_MESG, "%-20s %d MHz\n", "CPU frequency:", info.mhz); + vshPrint(ctl, VSH_MESG, "%-20s %d\n", "CPU socket(s):", info.sockets); + vshPrint(ctl, VSH_MESG, "%-20s %d\n", "Core(s) per socket:", info.cores); + vshPrint(ctl, VSH_MESG, "%-20s %d\n", "Thread(s) per core:", info.threads); + vshPrint(ctl, VSH_MESG, "%-20s %d\n", "NUMA cell(s):", info.nodes); + vshPrint(ctl, VSH_MESG, "%-20s %lu kB\n", "Memory size:", info.memory); + + return TRUE; +} + /* * "dumpxml" command */ @@ -992,7 +1026,8 @@ cmdQuit(vshControl * ctl, vshCmd * cmd ATTRIBUTE_UNUSED) static vshCmdDef commands[] = { {"connect", cmdConnect, opts_connect, info_connect}, {"create", cmdCreate, opts_create, info_create}, - {"dinfo", cmdDinfo, opts_dinfo, info_dinfo}, + {"dominfo", cmdDominfo, opts_dominfo, info_dominfo}, + {"nodeinfo", cmdNodeinfo, NULL, info_nodeinfo}, {"dumpxml", cmdDumpXML, opts_dumpxml, info_dumpxml}, {"dstate", cmdDstate, opts_dstate, info_dstate}, {"suspend", cmdSuspend, opts_suspend, info_suspend},