From 7cdde033ed7f81b667783fd8089c73ccfc207540 Mon Sep 17 00:00:00 2001 From: Morris Jette <jette@schedmd.com> Date: Fri, 14 Oct 2011 14:02:56 -0700 Subject: [PATCH] Preserve cloud node address after reconfigure Preserve the address information about nodes in the cloud after a reconfigure --- src/slurmctld/node_mgr.c | 7 ++++--- src/slurmctld/read_config.c | 13 +++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/slurmctld/node_mgr.c b/src/slurmctld/node_mgr.c index 80574e14baf..17a375c5ea1 100644 --- a/src/slurmctld/node_mgr.c +++ b/src/slurmctld/node_mgr.c @@ -558,11 +558,12 @@ extern int load_all_node_state ( bool state_only ) node_ptr->real_memory = real_memory; node_ptr->tmp_disk = tmp_disk; node_ptr->last_response = (time_t) 0; - node_ptr->last_idle = now; } - if (node_ptr) + if (node_ptr) { + node_ptr->last_idle = now; select_g_update_node_state(node_ptr); + } xfree(features); xfree(gres); @@ -686,7 +687,7 @@ extern void pack_all_node (char **buffer_ptr, int *buffer_size, else if (IS_NODE_FUTURE(node_ptr) && !IS_NODE_MAINT(node_ptr)) /* reboot req sent */ hidden = true; - else if (IS_NODE_CLOUD(node_ptr) && + else if (IS_NODE_CLOUD(node_ptr) && 0 && IS_NODE_POWER_SAVE(node_ptr)) hidden = true; else if ((node_ptr->name == NULL) || diff --git a/src/slurmctld/read_config.c b/src/slurmctld/read_config.c index a4442e60522..3f1221f1cce 100644 --- a/src/slurmctld/read_config.c +++ b/src/slurmctld/read_config.c @@ -969,6 +969,18 @@ static int _restore_node_state(int recover, hs = hostset_create(node_ptr->name); } + if (IS_NODE_CLOUD(node_ptr) && !IS_NODE_POWER_SAVE(node_ptr)) { + /* Preserve NodeHostname + NodeAddr set by scontrol */ + xfree(node_ptr->comm_name); + node_ptr->comm_name = old_node_ptr->comm_name; + old_node_ptr->comm_name = NULL; + xfree(node_ptr->node_hostname); + node_ptr->node_hostname = old_node_ptr->node_hostname; + old_node_ptr->node_hostname = NULL; + slurm_reset_alias(node_ptr->name, node_ptr->comm_name, + node_ptr->node_hostname); + } + node_ptr->last_response = old_node_ptr->last_response; if (old_node_ptr->port != node_ptr->config_ptr->cpus) { rc = ESLURM_NEED_RESTART; @@ -979,6 +991,7 @@ static int _restore_node_state(int recover, node_ptr->boot_time = old_node_ptr->boot_time; node_ptr->cpus = old_node_ptr->cpus; node_ptr->cores = old_node_ptr->cores; + node_ptr->last_idle = old_node_ptr->last_idle; node_ptr->sockets = old_node_ptr->sockets; node_ptr->threads = old_node_ptr->threads; node_ptr->real_memory = old_node_ptr->real_memory; -- GitLab