aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2012-09-20 16:33:40 +0200
committerGerd Hoffmann <kraxel@redhat.com>2012-09-20 16:33:40 +0200
commitcd5051e45e0ef1a4cc05302836cbbcc9501ad02d (patch)
treed3d38cf768bbcfe5f028b38b43f880769443263e
parentd416090bc7bd01aad1e21dcd2af99dfc5ac5eda5 (diff)
downloadvconsole-cd5051e45e0ef1a4cc05302836cbbcc9501ad02d.tar.gz
add mem/vcpu sums to host line
-rw-r--r--domain.c21
-rw-r--r--vconsole.c11
-rw-r--r--vconsole.h5
3 files changed, 30 insertions, 7 deletions
diff --git a/domain.c b/domain.c
index 2170e88..70f9ec9 100644
--- a/domain.c
+++ b/domain.c
@@ -324,7 +324,8 @@ static void domain_update_tree_store(struct vconsole_domain *dom,
gtk_tree_store_set(dom->conn->win->store, guest,
NAME_COL, dom->name,
ID_COL, dom->id,
- RUNNING_COL, dom->info.state == VIR_DOMAIN_RUNNING,
+ IS_RUNNING_COL, dom->info.state == VIR_DOMAIN_RUNNING,
+ HAS_MEMCPU_COL, dom->info.state == VIR_DOMAIN_RUNNING,
STATE_COL, domain_state_name(dom),
NR_CPUS_COL, dom->info.nrVirtCpu,
LOAD_STR_COL, load,
@@ -536,7 +537,9 @@ void domain_update_all(struct vconsole_window *win)
GtkTreeIter host, guest;
struct vconsole_connect *conn;
struct vconsole_domain *dom;
+ char mem[16];
virDomainPtr d;
+ unsigned long memory, vcpus;
int rc;
/* all hosts */
@@ -545,6 +548,10 @@ void domain_update_all(struct vconsole_window *win)
gtk_tree_model_get(model, &host,
CPTR_COL, &conn,
-1);
+
+ memory = 0;
+ vcpus = 0;
+
/* all guests */
rc = gtk_tree_model_iter_nth_child(model, &guest, &host, 0);
while (rc) {
@@ -554,10 +561,22 @@ void domain_update_all(struct vconsole_window *win)
/* update */
d = virDomainLookupByUUIDString(conn->ptr, dom->uuid);
domain_update_info(dom, d);
+ if (dom->info.state == VIR_DOMAIN_RUNNING) {
+ memory += dom->info.memory;
+ vcpus += dom->info.nrVirtCpu;
+ }
domain_update_tree_store(dom, &guest);
virDomainFree(d);
rc = gtk_tree_model_iter_next(model, &guest);
}
+
+ snprintf(mem, sizeof(mem), "%ld M", memory / 1024);
+ gtk_tree_store_set(win->store, &host,
+ NR_CPUS_COL, vcpus,
+ MEMORY_COL, mem,
+ HAS_MEMCPU_COL, (gboolean)(memory > 0),
+ -1);
+
rc = gtk_tree_model_iter_next(model, &host);
}
}
diff --git a/vconsole.c b/vconsole.c
index 752784c..95fb458 100644
--- a/vconsole.c
+++ b/vconsole.c
@@ -794,12 +794,13 @@ static void vconsole_tab_list_create(struct vconsole_window *win)
G_TYPE_STRING, // URI_COL
G_TYPE_POINTER, // DPTR_COL
G_TYPE_INT, // ID_COL
- G_TYPE_BOOLEAN, // RUNNING_COL
G_TYPE_STRING, // STATE_COL
G_TYPE_INT, // NR_CPUS_COL
G_TYPE_STRING, // LOAD_STR_COL
G_TYPE_INT, // LOAD_INT_COL
G_TYPE_STRING, // MEMORY_COL
+ G_TYPE_BOOLEAN, // IS_RUNNING_COL
+ G_TYPE_BOOLEAN, // HAS_MEMCPU_COL
G_TYPE_STRING, // FOREGROUND_COL
G_TYPE_INT); // WEIGHT_COL
sortable = GTK_TREE_SORTABLE(win->store);
@@ -829,7 +830,7 @@ static void vconsole_tab_list_create(struct vconsole_window *win)
column = gtk_tree_view_column_new_with_attributes("ID",
renderer,
"text", ID_COL,
- "visible", RUNNING_COL,
+ "visible", IS_RUNNING_COL,
NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(win->tree), column);
@@ -847,7 +848,7 @@ static void vconsole_tab_list_create(struct vconsole_window *win)
column = gtk_tree_view_column_new_with_attributes("memory",
renderer,
"text", MEMORY_COL,
- "visible", RUNNING_COL,
+ "visible", HAS_MEMCPU_COL,
NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(win->tree), column);
@@ -857,7 +858,7 @@ static void vconsole_tab_list_create(struct vconsole_window *win)
column = gtk_tree_view_column_new_with_attributes("vcpus",
renderer,
"text", NR_CPUS_COL,
- "visible", RUNNING_COL,
+ "visible", HAS_MEMCPU_COL,
NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(win->tree), column);
@@ -868,7 +869,7 @@ static void vconsole_tab_list_create(struct vconsole_window *win)
renderer,
"text", LOAD_STR_COL,
"value", LOAD_INT_COL,
- "visible", RUNNING_COL,
+ "visible", IS_RUNNING_COL,
NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(win->tree), column);
diff --git a/vconsole.h b/vconsole.h
index 6d7c518..c637bb3 100644
--- a/vconsole.h
+++ b/vconsole.h
@@ -28,13 +28,16 @@ enum vconsole_cols {
/* guests only */
DPTR_COL, // vconsole_domain
ID_COL,
- RUNNING_COL,
STATE_COL,
NR_CPUS_COL,
LOAD_STR_COL,
LOAD_INT_COL,
MEMORY_COL,
+ /* flags */
+ IS_RUNNING_COL,
+ HAS_MEMCPU_COL,
+
/* beautify */
FOREGROUND_COL,
WEIGHT_COL,