From 8aa11f91624f548f0cdc4db376269163e59418b3 Mon Sep 17 00:00:00 2001
From: Danny Auble <da@schedmd.com>
Date: Tue, 16 Aug 2011 11:57:17 -0700
Subject: [PATCH] BLUEGENE - move init_grid information to a place that
 actually does things.

---
 src/plugins/select/bluegene/select_bluegene.c | 33 +++++++++++++++++--
 1 file changed, 30 insertions(+), 3 deletions(-)

diff --git a/src/plugins/select/bluegene/select_bluegene.c b/src/plugins/select/bluegene/select_bluegene.c
index 2b77e465bc4..bedc3879be8 100644
--- a/src/plugins/select/bluegene/select_bluegene.c
+++ b/src/plugins/select/bluegene/select_bluegene.c
@@ -1440,12 +1440,39 @@ extern bool select_p_node_ranking(struct node_record *node_ptr, int node_cnt)
 }
 
 /* All initialization is performed by init() */
-extern int select_p_node_init(struct node_record *node_ptr, int node_cnt)
+extern int select_p_node_init(struct node_record *node_ptr_array, int node_cnt)
 {
 #ifdef HAVE_BG
+	int i = 0;
+
+	if (!node_ptr_array)
+		return SLURM_SUCCESS;
+
 	if (node_cnt>0 && bg_conf)
-		if (node_ptr->cpus >= bg_conf->mp_cnode_cnt)
-			bg_conf->cpus_per_mp = node_ptr->cpus;
+		if (node_ptr_array->cpus >= bg_conf->mp_cnode_cnt)
+			bg_conf->cpus_per_mp = node_ptr_array->cpus;
+
+	for (i = 0; i < node_cnt; i++) {
+		struct node_record *node_ptr = &node_ptr_array[i];
+		select_nodeinfo_t *nodeinfo = NULL;
+
+		if (!node_ptr->name)
+			continue;
+
+		xassert(node_ptr->select_nodeinfo);
+		nodeinfo = node_ptr->select_nodeinfo->data;
+		xassert(nodeinfo);
+
+		nodeinfo->ba_mp = str2ba_mp(node_ptr->name);
+
+		if (!nodeinfo->ba_mp)
+			continue;
+		nodeinfo->ba_mp->index = i;
+		if (IS_NODE_DOWN(node_ptr) || IS_NODE_DRAIN(node_ptr))
+			ba_update_mp_state(
+				nodeinfo->ba_mp, node_ptr->node_state);
+		nodeinfo->ba_mp->state = node_ptr->node_state;
+	}
 
 	return SLURM_SUCCESS;
 #else
-- 
GitLab