diff --git a/src/common/slurm_cred.c b/src/common/slurm_cred.c index 119aa5527051d79861615f0ff5a9d6af0472fce5..0d1d2ac6a71abd42232b23da1a918ce8840931bb 100644 --- a/src/common/slurm_cred.c +++ b/src/common/slurm_cred.c @@ -1064,7 +1064,7 @@ slurm_cred_print(slurm_cred_t cred) info("Cred: job_mem %u", cred->job_mem ); info("Cred: task_mem %u", cred->task_mem ); info("Cred: Nodes %s", cred->nodes ); - info("Cred: alloc_lps_cnt %d", cred->alloc_lps_cnt ); + info("Cred: alloc_lps_cnt %u", cred->alloc_lps_cnt ); info("Cred: alloc_lps: "); for (i=0; i<cred->alloc_lps_cnt; i++) info("alloc_lps[%d] = %u ", i, cred->alloc_lps[i]); @@ -1074,6 +1074,18 @@ slurm_cred_print(slurm_cred_t cred) } +int slurm_cred_get_alloc_lps(slurm_cred_t cred, char **nodes, + uint32_t *alloc_lps_cnt, uint32_t **alloc_lps) +{ + if ((cred == NULL) || (nodes == NULL) || + (alloc_lps_cnt == NULL) || (alloc_lps == NULL)) + return EINVAL; + + *nodes = cred->nodes; + *alloc_lps_cnt = cred->alloc_lps_cnt; + *alloc_lps = cred->alloc_lps; + return SLURM_SUCCESS; +} static void _verifier_ctx_init(slurm_cred_ctx_t ctx) diff --git a/src/common/slurm_cred.h b/src/common/slurm_cred.h index 9ddb0d36e69aee433f20580477b5438043a8d4ea..cfe67fd61c80d815c4caa5d3c3b197f46cec3c62 100644 --- a/src/common/slurm_cred.h +++ b/src/common/slurm_cred.h @@ -267,6 +267,11 @@ int slurm_cred_get_signature(slurm_cred_t cred, char **datap, int *len); */ void slurm_cred_print(slurm_cred_t cred); +/* + * Get count of allocated LPS (processors) by node + */ +int slurm_cred_get_alloc_lps(slurm_cred_t cred, char **nodes, + uint32_t *alloc_lps_cnt, uint32_t **alloc_lps); #ifdef DISABLE_LOCALTIME extern char * timestr (const time_t *tp, char *buf, size_t n); #endif