Skip to content
Snippets Groups Projects
Commit 9446bb30 authored by Danny Auble's avatar Danny Auble
Browse files

all part admin works node also works

parent 07d72d32
No related branches found
No related tags found
No related merge requests found
...@@ -377,6 +377,7 @@ extern GtkScrolledWindow *create_scrolled_window() ...@@ -377,6 +377,7 @@ extern GtkScrolledWindow *create_scrolled_window()
return scrolled_window; return scrolled_window;
} }
extern void create_page(GtkNotebook *notebook, display_data_t *display_data) extern void create_page(GtkNotebook *notebook, display_data_t *display_data)
{ {
GtkScrolledWindow *scrolled_window = create_scrolled_window(); GtkScrolledWindow *scrolled_window = create_scrolled_window();
......
...@@ -327,16 +327,12 @@ extern int update_state_node(GtkTreeStore *treestore, GtkTreeIter *iter, ...@@ -327,16 +327,12 @@ extern int update_state_node(GtkTreeStore *treestore, GtkTreeIter *iter,
if(!strcmp("drain", new_text)) { if(!strcmp("drain", new_text)) {
state = NODE_STATE_DRAIN; state = NODE_STATE_DRAIN;
node_msg->reason = get_reason(); node_msg->reason = get_reason();
} else if(!strcmp("NoResp", new_text)) {
state = NODE_STATE_NO_RESPOND;
} else if(!strcmp("resume", new_text)) { } else if(!strcmp("resume", new_text)) {
state = NODE_RESUME; state = NODE_RESUME;
} else { } else {
for(i = 0; i < NODE_STATE_END; i++) { for(i = 0; i < NODE_STATE_END; i++) {
upper = node_state_string(i); upper = node_state_string(i);
lower = str_tolower(upper); lower = str_tolower(upper);
if(!strcmp(upper, "?"))
break;
if(!strcmp(lower, new_text)) { if(!strcmp(lower, new_text)) {
state = i; state = i;
xfree(lower); xfree(lower);
...@@ -349,6 +345,8 @@ extern int update_state_node(GtkTreeStore *treestore, GtkTreeIter *iter, ...@@ -349,6 +345,8 @@ extern int update_state_node(GtkTreeStore *treestore, GtkTreeIter *iter,
rc = slurm_update_node(node_msg); rc = slurm_update_node(node_msg);
xfree(node_msg->reason); xfree(node_msg->reason);
if(rc != SLURM_SUCCESS)
return rc;
gtk_tree_store_set(treestore, iter, text_column, new_text, gtk_tree_store_set(treestore, iter, text_column, new_text,
num_column, state, -1); num_column, state, -1);
return rc; return rc;
......
...@@ -65,9 +65,12 @@ enum { ...@@ -65,9 +65,12 @@ enum {
SORTID_POS = POS_LOC, SORTID_POS = POS_LOC,
SORTID_NAME, SORTID_NAME,
SORTID_DEFAULT, SORTID_DEFAULT,
SORTID_HIDDEN,
SORTID_AVAIL, SORTID_AVAIL,
SORTID_TIMELIMIT, SORTID_TIMELIMIT,
SORTID_JOB_SIZE, SORTID_JOB_SIZE,
SORTID_MIN_NODES,
SORTID_MAX_NODES,
SORTID_ROOT, SORTID_ROOT,
SORTID_SHARE, SORTID_SHARE,
SORTID_GROUPS, SORTID_GROUPS,
...@@ -89,12 +92,19 @@ static display_data_t display_data_part[] = { ...@@ -89,12 +92,19 @@ static display_data_t display_data_part[] = {
create_model_part, admin_edit_part}, create_model_part, admin_edit_part},
{G_TYPE_STRING, SORTID_DEFAULT, "Default", TRUE, -1, refresh_part, {G_TYPE_STRING, SORTID_DEFAULT, "Default", TRUE, -1, refresh_part,
create_model_part, admin_edit_part}, create_model_part, admin_edit_part},
{G_TYPE_STRING, SORTID_HIDDEN, "Hidden", FALSE, -1, refresh_part,
create_model_part, admin_edit_part},
{G_TYPE_STRING, SORTID_AVAIL, "Availablity", TRUE, -1, refresh_part, {G_TYPE_STRING, SORTID_AVAIL, "Availablity", TRUE, -1, refresh_part,
create_model_part, admin_edit_part}, create_model_part, admin_edit_part},
{G_TYPE_STRING, SORTID_TIMELIMIT, "Time Limit", {G_TYPE_STRING, SORTID_TIMELIMIT, "Time Limit",
TRUE, -1, refresh_part, TRUE, -1, refresh_part,
create_model_part, admin_edit_part}, create_model_part, admin_edit_part},
{G_TYPE_STRING, SORTID_JOB_SIZE, "Job Size", FALSE, -1, refresh_part}, {G_TYPE_STRING, SORTID_JOB_SIZE, "Job Size", FALSE, -1, refresh_part,
create_model_part, admin_edit_part},
{G_TYPE_INT, SORTID_MIN_NODES, "Min Nodes", FALSE, -1, refresh_part,
create_model_part, admin_edit_part},
{G_TYPE_INT, SORTID_MAX_NODES, "Max Nodes", FALSE, -1, refresh_part,
create_model_part, admin_edit_part},
{G_TYPE_STRING, SORTID_ROOT, "Root", FALSE, -1, refresh_part, {G_TYPE_STRING, SORTID_ROOT, "Root", FALSE, -1, refresh_part,
create_model_part, admin_edit_part}, create_model_part, admin_edit_part},
{G_TYPE_STRING, SORTID_SHARE, "Share", FALSE, -1, refresh_part, {G_TYPE_STRING, SORTID_SHARE, "Share", FALSE, -1, refresh_part,
...@@ -272,6 +282,9 @@ static void _update_part_record(sview_part_info_t *sview_part_info, ...@@ -272,6 +282,9 @@ static void _update_part_record(sview_part_info_t *sview_part_info,
if(part_ptr->default_part) if(part_ptr->default_part)
gtk_tree_store_set(treestore, iter, SORTID_DEFAULT, "*", -1); gtk_tree_store_set(treestore, iter, SORTID_DEFAULT, "*", -1);
if(part_ptr->hidden)
gtk_tree_store_set(treestore, iter, SORTID_HIDDEN, "*", -1);
if (part_ptr->state_up) if (part_ptr->state_up)
gtk_tree_store_set(treestore, iter, SORTID_AVAIL, "up", -1); gtk_tree_store_set(treestore, iter, SORTID_AVAIL, "up", -1);
else else
...@@ -290,6 +303,10 @@ static void _update_part_record(sview_part_info_t *sview_part_info, ...@@ -290,6 +303,10 @@ static void _update_part_record(sview_part_info_t *sview_part_info,
part_ptr->min_nodes, part_ptr->min_nodes,
part_ptr->max_nodes, true); part_ptr->max_nodes, true);
gtk_tree_store_set(treestore, iter, SORTID_JOB_SIZE, time_buf, -1); gtk_tree_store_set(treestore, iter, SORTID_JOB_SIZE, time_buf, -1);
gtk_tree_store_set(treestore, iter, SORTID_MIN_NODES,
part_ptr->min_nodes, -1);
gtk_tree_store_set(treestore, iter, SORTID_MAX_NODES,
part_ptr->max_nodes, -1);
if(part_ptr->root_only) if(part_ptr->root_only)
gtk_tree_store_set(treestore, iter, SORTID_ROOT, "yes", -1); gtk_tree_store_set(treestore, iter, SORTID_ROOT, "yes", -1);
...@@ -358,6 +375,24 @@ static void _update_part_sub_record(sview_part_sub_t *sview_part_sub, ...@@ -358,6 +375,24 @@ static void _update_part_sub_record(sview_part_sub_t *sview_part_sub,
gtk_tree_store_set(treestore, iter, SORTID_STATE_NUM, gtk_tree_store_set(treestore, iter, SORTID_STATE_NUM,
sview_part_sub->node_state, -1); sview_part_sub->node_state, -1);
if (part_ptr->max_time == INFINITE)
snprintf(time_buf, sizeof(time_buf), "infinite");
else {
snprint_time(time_buf, sizeof(time_buf),
(part_ptr->max_time * 60));
}
gtk_tree_store_set(treestore, iter, SORTID_TIMELIMIT, time_buf, -1);
_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);
gtk_tree_store_set(treestore, iter, SORTID_MIN_NODES,
part_ptr->min_nodes, -1);
gtk_tree_store_set(treestore, iter, SORTID_MAX_NODES,
part_ptr->max_nodes, -1);
_build_min_max_string(time_buf, sizeof(time_buf), _build_min_max_string(time_buf, sizeof(time_buf),
sview_part_sub->min_cpus, sview_part_sub->min_cpus,
sview_part_sub->max_cpus, false); sview_part_sub->max_cpus, false);
...@@ -887,45 +922,96 @@ extern GtkListStore *create_model_part(int type) ...@@ -887,45 +922,96 @@ extern GtkListStore *create_model_part(int type)
char *upper = NULL, *lower = NULL; char *upper = NULL, *lower = NULL;
int i=0; int i=0;
switch(type) { switch(type) {
case SORTID_AVAIL: case SORTID_DEFAULT:
model = gtk_list_store_new(2, G_TYPE_STRING, model = gtk_list_store_new(1, G_TYPE_STRING,
G_TYPE_INT); G_TYPE_INT);
gtk_list_store_append(model, &iter); gtk_list_store_append(model, &iter);
gtk_list_store_set(model, &iter,
0, "yes",
-1);
gtk_list_store_append(model, &iter);
gtk_list_store_set(model, &iter,
0, "no",
-1);
break;
case SORTID_HIDDEN:
model = gtk_list_store_new(1, G_TYPE_STRING);
gtk_list_store_append(model, &iter);
gtk_list_store_set(model, &iter,
0, "yes",
-1);
gtk_list_store_append(model, &iter);
gtk_list_store_set(model, &iter,
0, "no",
-1);
break;
case SORTID_MIN_NODES:
break;
case SORTID_MAX_NODES:
break;
case SORTID_ROOT:
model = gtk_list_store_new(1, G_TYPE_STRING);
gtk_list_store_append(model, &iter);
gtk_list_store_set(model, &iter,
0, "yes",
-1);
gtk_list_store_append(model, &iter);
gtk_list_store_set(model, &iter,
0, "no",
-1);
break;
case SORTID_SHARE:
model = gtk_list_store_new(1, G_TYPE_STRING);
gtk_list_store_append(model, &iter);
gtk_list_store_set(model, &iter,
0, "yes",
-1);
gtk_list_store_append(model, &iter);
gtk_list_store_set(model, &iter,
0, "no",
-1);
gtk_list_store_append(model, &iter);
gtk_list_store_set(model, &iter,
0, "force",
-1);
break;
case SORTID_GROUPS:
break;
case SORTID_NODELIST:
break;
case SORTID_AVAIL:
model = gtk_list_store_new(1, G_TYPE_STRING);
gtk_list_store_append(model, &iter);
gtk_list_store_set(model, &iter, gtk_list_store_set(model, &iter,
0, "up", 0, "up",
1, i,
-1); -1);
gtk_list_store_append(model, &iter); gtk_list_store_append(model, &iter);
gtk_list_store_set(model, &iter, gtk_list_store_set(model, &iter,
0, "down", 0, "down",
1, i,
-1); -1);
break; break;
case SORTID_STATE: case SORTID_STATE:
model = gtk_list_store_new(2, G_TYPE_STRING, model = gtk_list_store_new(1, G_TYPE_STRING,
G_TYPE_INT); G_TYPE_INT);
gtk_list_store_append(model, &iter); gtk_list_store_append(model, &iter);
gtk_list_store_set(model, &iter, gtk_list_store_set(model, &iter,
0, "drain", 0, "drain",
1, i,
-1);
gtk_list_store_append(model, &iter);
gtk_list_store_set(model, &iter,
0, "NoResp",
1, i,
-1); -1);
gtk_list_store_append(model, &iter); gtk_list_store_append(model, &iter);
gtk_list_store_set(model, &iter, gtk_list_store_set(model, &iter,
0, "resume", 0, "resume",
1, i,
-1); -1);
for(i = 0; i < NODE_STATE_END; i++) { for(i = 0; i < NODE_STATE_END; i++) {
upper = node_state_string(i); upper = node_state_string(i);
if(!strcmp(upper, "UNKNOWN"))
continue;
gtk_list_store_append(model, &iter); gtk_list_store_append(model, &iter);
lower = str_tolower(upper); lower = str_tolower(upper);
gtk_list_store_set(model, &iter, gtk_list_store_set(model, &iter,
0, lower, 0, lower,
1, i,
-1); -1);
xfree(lower); xfree(lower);
} }
...@@ -946,11 +1032,75 @@ extern void admin_edit_part(GtkCellRendererText *cell, ...@@ -946,11 +1032,75 @@ extern void admin_edit_part(GtkCellRendererText *cell,
GtkTreeIter iter; GtkTreeIter iter;
update_node_msg_t node_msg; update_node_msg_t node_msg;
update_part_msg_t part_msg; update_part_msg_t part_msg;
char *temp = NULL;
int column = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cell), int column = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cell),
"column")); "column"));
gtk_tree_model_get_iter(GTK_TREE_MODEL(treestore), &iter, path); gtk_tree_model_get_iter(GTK_TREE_MODEL(treestore), &iter, path);
if(column != SORTID_STATE) {
slurm_init_part_desc_msg(&part_msg);
gtk_tree_model_get(GTK_TREE_MODEL(treestore), &iter,
SORTID_NAME,
&part_msg.name, -1);
}
switch(column) { switch(column) {
case SORTID_DEFAULT:
if (!strcasecmp(new_text, "yes")) {
part_msg.default_part = 1;
temp = "*";
} else {
part_msg.default_part = 0;
temp = "";
}
break;
case SORTID_HIDDEN:
if (!strcasecmp(new_text, "yes")) {
part_msg.hidden = 1;
temp = "*";
} else {
part_msg.hidden = 0;
temp = "";
}
break;
case SORTID_MIN_NODES:
if (!strcasecmp(new_text, "infinite")) {
part_msg.min_nodes = INFINITE;
} else {
part_msg.min_nodes =
(uint32_t)strtol(new_text, (char **)NULL, 10);
}
break;
case SORTID_MAX_NODES:
if (!strcasecmp(new_text, "infinite")) {
part_msg.max_nodes = INFINITE;
} else {
part_msg.max_nodes =
(uint32_t)strtol(new_text, (char **)NULL, 10);
}
break;
case SORTID_ROOT:
if (!strcasecmp(new_text, "yes")) {
part_msg.default_part = 1;
} else {
part_msg.default_part = 0;
}
temp = (char *)new_text;
break;
case SORTID_SHARE:
if (!strcasecmp(new_text, "yes")) {
part_msg.default_part = SHARED_YES;
} else if (!strcasecmp(new_text, "no")) {
part_msg.default_part = SHARED_NO;
} else {
part_msg.default_part = SHARED_FORCE;
}
break;
case SORTID_GROUPS:
break;
case SORTID_NODELIST:
break;
case SORTID_AVAIL: case SORTID_AVAIL:
slurm_init_part_desc_msg(&part_msg); slurm_init_part_desc_msg(&part_msg);
gtk_tree_model_get(GTK_TREE_MODEL(treestore), &iter, gtk_tree_model_get(GTK_TREE_MODEL(treestore), &iter,
...@@ -960,7 +1110,7 @@ extern void admin_edit_part(GtkCellRendererText *cell, ...@@ -960,7 +1110,7 @@ extern void admin_edit_part(GtkCellRendererText *cell,
part_msg.state_up = 1; part_msg.state_up = 1;
else else
part_msg.state_up = 0; part_msg.state_up = 0;
slurm_update_partition(&part_msg); temp = (char *)new_text;
break; break;
case SORTID_STATE: case SORTID_STATE:
gtk_tree_model_get(GTK_TREE_MODEL(treestore), &iter, gtk_tree_model_get(GTK_TREE_MODEL(treestore), &iter,
...@@ -972,6 +1122,13 @@ extern void admin_edit_part(GtkCellRendererText *cell, ...@@ -972,6 +1122,13 @@ extern void admin_edit_part(GtkCellRendererText *cell,
g_free(node_msg.node_names); g_free(node_msg.node_names);
break; break;
} }
if(column != SORTID_STATE) {
if(slurm_update_partition(&part_msg) == SLURM_SUCCESS)
gtk_tree_store_set(treestore, &iter, column, temp, -1);
}
gtk_tree_path_free (path); gtk_tree_path_free (path);
g_static_mutex_unlock(&sview_mutex); g_static_mutex_unlock(&sview_mutex);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment