diff --git a/doc/man/Makefile.am b/doc/man/Makefile.am index feac6bbec2179359444ecad33c3f04c6b7408d20..360832c22fbe817fecd466350fbc8196b8de4774 100644 --- a/doc/man/Makefile.am +++ b/doc/man/Makefile.am @@ -67,6 +67,7 @@ man3_MANS = man3/slurm_hostlist_create.3 \ man3/slurm_spawn_kill.3 \ man3/slurm_step_ctx_create.3 \ man3/slurm_step_ctx_destroy.3 \ + man3/slurm_step_ctx_get.3 \ man3/slurm_step_ctx_set.3 \ man3/slurm_strerror.3 \ man3/slurm_submit_batch_job.3 \ diff --git a/doc/man/man3/slurm_spawn.3 b/doc/man/man3/slurm_spawn.3 index 00edf2fa77242b6029bc23bb6d83a43fab8db786..6682e791d6be81c84c8caf696245c336459504e1 100644 --- a/doc/man/man3/slurm_spawn.3 +++ b/doc/man/man3/slurm_spawn.3 @@ -1,4 +1,4 @@ -.TH "Slurm API" "3" "July 2004" "Morris Jette" "Slurm task spawn functions" +.TH "Slurm API" "3" "March 2005" "Morris Jette" "Slurm task spawn functions" .SH "NAME" slurm_spawn \- Slurm task spawn functions .SH "SYNTAX" @@ -127,6 +127,10 @@ Accepts two additional arguments, the first of type int and the second of type char **. By default the current environment variables are copied to started task's environment. .TP +\fBSLURM_STEP_CTX_RESP\fR +Get the job step response message. +Accepts one additional argument of type job_step_create_response_msg_t **. +.TP \fBSLURM_STEP_CTX_STEPID\fR Get the step id of the created job step. Accepts one additional argument of type uint32_t *. diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in index 10b5b3bad650be3bddb783cdc07056399ee3f2c8..9dacbf5d489767ae632cfbb065d1abfdd899341b 100644 --- a/slurm/slurm.h.in +++ b/slurm/slurm.h.in @@ -226,7 +226,8 @@ enum ctx_keys { SLURM_STEP_CTX_ENV, /* set environment variable count and values */ SLURM_STEP_CTX_STEPID, /* get the created job step id */ SLURM_STEP_CTX_TASKS, /* get array of task count on each node */ - SLURM_STEP_CTX_TID /* get array of task IDs for specified node */ + SLURM_STEP_CTX_TID, /* get array of task IDs for specified node */ + SLURM_STEP_CTX_RESP /* get job step create response message */ }; /*****************************************************************************\ diff --git a/src/api/spawn.c b/src/api/spawn.c index b297e631ddf08af9aee86581c9f3e2ec94a75648..968dc7f94b503bbd51e1d95b797ba96a2e46be90 100644 --- a/src/api/spawn.c +++ b/src/api/spawn.c @@ -162,6 +162,7 @@ slurm_step_ctx_get (slurm_step_ctx ctx, int ctx_key, ...) uint32_t node_inx; uint32_t *step_id_ptr; uint32_t **array_pptr = (uint32_t **) NULL; + job_step_create_response_msg_t ** step_resp_pptr; if ((ctx == NULL) || (ctx->magic != STEP_CTX_MAGIC)) { @@ -191,6 +192,12 @@ slurm_step_ctx_get (slurm_step_ctx ctx, int ctx_key, ...) *array_pptr = ctx->tids[node_inx]; break; + case SLURM_STEP_CTX_RESP: + step_resp_pptr = (job_step_create_response_msg_t **) + va_arg(ap, void *); + *step_resp_pptr = ctx->step_resp; + break; + default: slurm_seterrno(EINVAL); rc = SLURM_ERROR;