diff --git a/src/sview/part_info.c b/src/sview/part_info.c index c18721184f01d735281e0767798eebde7a69f5b7..8d9c1b6e9e604c05d7b331667ca5f7b320cee386 100644 --- a/src/sview/part_info.c +++ b/src/sview/part_info.c @@ -34,10 +34,18 @@ DEF_TIMERS; enum { SORTID_POS = POS_LOC, SORTID_NAME, + SORTID_DEFAULT, SORTID_AVAIL, SORTID_TIMELIMIT, + SORTID_JOB_SIZE, + SORTID_ROOT, + SORTID_SHARE, + SORTID_GROUPS, SORTID_NODES, + SORTID_CPUS, + SORTID_DISK, SORTID_NODELIST, + SORTID_STATE, SORTID_UPDATED, SORTID_CNT }; @@ -45,10 +53,18 @@ enum { static display_data_t display_data_part[] = { {G_TYPE_INT, SORTID_POS, NULL, FALSE, -1, refresh_part}, {G_TYPE_STRING, SORTID_NAME, "Partition", TRUE, -1, refresh_part}, + {G_TYPE_STRING, SORTID_DEFAULT, "Default", TRUE, -1, refresh_part}, {G_TYPE_STRING, SORTID_AVAIL, "Availablity", TRUE, -1, refresh_part}, {G_TYPE_STRING, SORTID_TIMELIMIT, "Time Limit", TRUE, -1, refresh_part}, + {G_TYPE_STRING, SORTID_JOB_SIZE, "Job Size", FALSE, -1, refresh_part}, + {G_TYPE_STRING, SORTID_ROOT, "Root", FALSE, -1, refresh_part}, + {G_TYPE_STRING, SORTID_SHARE, "Share", FALSE, -1, refresh_part}, + {G_TYPE_STRING, SORTID_GROUPS, "Groups", FALSE, -1, refresh_part}, {G_TYPE_STRING, SORTID_NODES, "Nodes", TRUE, -1, refresh_part}, + {G_TYPE_STRING, SORTID_CPUS, "CPUs", FALSE, -1, refresh_part}, + {G_TYPE_STRING, SORTID_DISK, "Disk", FALSE, -1, refresh_part}, + {G_TYPE_STRING, SORTID_STATE, "State", TRUE, -1, refresh_part}, #ifdef HAVE_BG {G_TYPE_STRING, SORTID_NODELIST, "BP List", TRUE, -1, refresh_part}, #else @@ -75,6 +91,26 @@ static display_data_t options_data_part[] = { static display_data_t *local_display_data = NULL; +static int +_build_min_max_string(char *buffer, int buf_size, int min, int max, bool range) +{ + char tmp_min[7]; + char tmp_max[7]; + convert_to_kilo(min, tmp_min); + convert_to_kilo(max, tmp_max); + + if (max == min) + return snprintf(buffer, buf_size, "%s", tmp_max); + else if (range) { + if (max == INFINITE) + return snprintf(buffer, buf_size, "%s-infinite", + tmp_min); + else + return snprintf(buffer, buf_size, "%s-%s", + tmp_min, tmp_max); + } else + return snprintf(buffer, buf_size, "%s+", tmp_min); +} static void _update_part_record(partition_info_t *part_ptr, GtkTreeStore *treestore, GtkTreeIter *iter) @@ -84,6 +120,9 @@ static void _update_part_record(partition_info_t *part_ptr, gtk_tree_store_set(treestore, iter, SORTID_NAME, part_ptr->name, -1); + if(part_ptr->default_part) + gtk_tree_store_set(treestore, iter, SORTID_DEFAULT, "*", -1); + if (part_ptr->state_up) gtk_tree_store_set(treestore, iter, SORTID_AVAIL, "up", -1); else @@ -97,9 +136,33 @@ static void _update_part_record(partition_info_t *part_ptr, } gtk_tree_store_set(treestore, iter, SORTID_TIMELIMIT, time_buf, -1); - - convert_to_kilo(part_ptr->total_nodes, tmp_cnt); + + _build_min_max_string(time_buf, sizeof(time_buf), + part_ptr->min_nodes, + part_ptr->max_nodes, true); + gtk_tree_store_set(treestore, iter, SORTID_JOB_SIZE, time_buf, -1); + + if(part_ptr->root_only) + gtk_tree_store_set(treestore, iter, SORTID_ROOT, "yes", -1); + else + gtk_tree_store_set(treestore, iter, SORTID_ROOT, "no", -1); + + if(part_ptr->shared > 1) + gtk_tree_store_set(treestore, iter, SORTID_SHARE, "force", -1); + else if(part_ptr->shared) + gtk_tree_store_set(treestore, iter, SORTID_SHARE, "yes", -1); + else + gtk_tree_store_set(treestore, iter, SORTID_SHARE, "no", -1); + + if(part_ptr->allow_groups) + gtk_tree_store_set(treestore, iter, SORTID_GROUPS, + part_ptr->allow_groups, -1); + else + gtk_tree_store_set(treestore, iter, SORTID_GROUPS, "all", -1); + + convert_to_kilo(part_ptr->total_nodes, tmp_cnt); gtk_tree_store_set(treestore, iter, SORTID_NODES, tmp_cnt, -1); + gtk_tree_store_set(treestore, iter, SORTID_NODELIST, part_ptr->nodes, -1); gtk_tree_store_set(treestore, iter, SORTID_UPDATED, 1, -1);