diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2012-09-20 16:33:40 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2012-09-20 16:33:40 +0200 |
commit | cd5051e45e0ef1a4cc05302836cbbcc9501ad02d (patch) | |
tree | d3d38cf768bbcfe5f028b38b43f880769443263e | |
parent | d416090bc7bd01aad1e21dcd2af99dfc5ac5eda5 (diff) | |
download | vconsole-cd5051e45e0ef1a4cc05302836cbbcc9501ad02d.tar.gz |
add mem/vcpu sums to host line
-rw-r--r-- | domain.c | 21 | ||||
-rw-r--r-- | vconsole.c | 11 | ||||
-rw-r--r-- | vconsole.h | 5 |
3 files changed, 30 insertions, 7 deletions
@@ -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); } } @@ -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); @@ -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, |