From 608f57d7d41f16541ef1e895101df9fb0380feba Mon Sep 17 00:00:00 2001 From: Morris Jette <jette@schedmd.com> Date: Thu, 6 Feb 2014 16:17:36 -0800 Subject: [PATCH] Set SLURM_JOB_USER & UID for task_epilog bug 521 --- src/common/env.c | 12 ++++++++++++ src/common/env.h | 2 ++ src/slurmd/slurmstepd/task.c | 2 ++ 3 files changed, 16 insertions(+) diff --git a/src/common/env.c b/src/common/env.c index 4f50bc113be..fca5904e305 100644 --- a/src/common/env.c +++ b/src/common/env.c @@ -838,6 +838,18 @@ int setup_env(env_t *env, bool preserve_env) rc = SLURM_FAILURE; } + if (env->user_name) { + if (setenvf(&env->env, "SLURM_JOB_UID", "%u", + (unsigned int) env->uid)) { + error("Can't set SLURM_JOB_UID env variable"); + rc = SLURM_FAILURE; + } + if (setenvf(&env->env, "SLURM_JOB_USER", "%s", env->user_name)){ + error("Can't set SLURM_JOB_USER env variable"); + rc = SLURM_FAILURE; + } + } + return rc; } diff --git a/src/common/env.h b/src/common/env.h index f606dbdfd8d..a8547f13a0a 100644 --- a/src/common/env.h +++ b/src/common/env.h @@ -78,6 +78,8 @@ typedef struct env_options { char *ckpt_dir; /* --ckpt-dir= */ uint16_t restart_cnt; /* count of job restarts */ uint16_t batch_flag; /* 1 if batch: queued job with script */ + uint32_t uid; /* user ID */ + char *user_name; /* user name */ } env_t; diff --git a/src/slurmd/slurmstepd/task.c b/src/slurmd/slurmstepd/task.c index b50be237820..c44849b916d 100644 --- a/src/slurmd/slurmstepd/task.c +++ b/src/slurmd/slurmstepd/task.c @@ -365,6 +365,8 @@ exec_task(stepd_step_rec_t *job, int i) job->envtp->distribution = -1; job->envtp->ckpt_dir = xstrdup(job->ckpt_dir); job->envtp->batch_flag = job->batch; + job->envtp->uid = job->uid; + job->envtp->user_name = xstrdup(job->user_name); /* Modify copy of job's environment. Do not alter in place or * concurrent searches of the environment can generate invalid memory -- GitLab