From 3932aae593962badd1ee6ef4fd4e2b12d1dee77d Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Wed, 9 Mar 2005 11:01:39 +0000 Subject: [PATCH] Add switch state to job epilog. --- src/common/slurm_protocol_defs.c | 1 + src/common/slurm_protocol_defs.h | 1 + src/common/slurm_protocol_pack.c | 7 +++++++ src/slurmd/req.c | 4 ++++ 4 files changed, 13 insertions(+) diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c index 4824438a326..7559ced07e3 100644 --- a/src/common/slurm_protocol_defs.c +++ b/src/common/slurm_protocol_defs.c @@ -378,6 +378,7 @@ void slurm_free_epilog_complete_msg(epilog_complete_msg_t * msg) { if (msg) { xfree(msg->node_name); + switch_g_free_node_info(&msg->switch_nodeinfo); xfree(msg); } } diff --git a/src/common/slurm_protocol_defs.h b/src/common/slurm_protocol_defs.h index 7cae18d1a95..f5eb91d6c8e 100644 --- a/src/common/slurm_protocol_defs.h +++ b/src/common/slurm_protocol_defs.h @@ -233,6 +233,7 @@ typedef struct epilog_complete_msg { uint32_t job_id; uint32_t return_code; char *node_name; + switch_node_info_t switch_nodeinfo; } epilog_complete_msg_t; typedef struct shutdown_msg { diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c index ffac52bb9bc..a1d25e04667 100644 --- a/src/common/slurm_protocol_pack.c +++ b/src/common/slurm_protocol_pack.c @@ -1303,6 +1303,7 @@ _pack_epilog_comp_msg(epilog_complete_msg_t * msg, Buf buffer) pack32(msg->job_id, buffer); pack32(msg->return_code, buffer); packstr(msg->node_name, buffer); + switch_g_pack_node_info(msg->switch_nodeinfo, buffer); } static int @@ -1319,9 +1320,15 @@ _unpack_epilog_comp_msg(epilog_complete_msg_t ** msg, Buf buffer) safe_unpack32(&(tmp_ptr->job_id), buffer); safe_unpack32(&(tmp_ptr->return_code), buffer); safe_unpackstr_xmalloc(& (tmp_ptr->node_name), &uint16_tmp, buffer); + if (switch_g_alloc_node_info(&tmp_ptr->switch_nodeinfo) + || switch_g_unpack_node_info(tmp_ptr->switch_nodeinfo, buffer)) + goto unpack_error; + return SLURM_SUCCESS; unpack_error: + xfree(tmp_ptr->node_name); + switch_g_free_node_info(&tmp_ptr->switch_nodeinfo); xfree(tmp_ptr); *msg = NULL; return SLURM_ERROR; diff --git a/src/slurmd/req.c b/src/slurmd/req.c index f8c82f83e7e..ae5c71f30d6 100644 --- a/src/slurmd/req.c +++ b/src/slurmd/req.c @@ -1015,6 +1015,10 @@ _epilog_complete(uint32_t jobid, int rc) req.job_id = jobid; req.return_code = rc; req.node_name = conf->node_name; + if (switch_g_alloc_node_info(&req.switch_nodeinfo)) + error("switch_g_alloc_node_info: %m"); + if (switch_g_build_node_info(req.switch_nodeinfo)) + error("switch_g_build_node_info: %m"); msg.msg_type = MESSAGE_EPILOG_COMPLETE; msg.data = &req; -- GitLab