diff --git a/src/api/job_info.c b/src/api/job_info.c index f755518c47ecc755cda71f408b95704115e79453..5e40c443218a555e3009dca7a8e535ccb5da6e17 100644 --- a/src/api/job_info.c +++ b/src/api/job_info.c @@ -282,7 +282,11 @@ slurm_sprint_job_info ( job_info_t * job_ptr, int one_liner ) xstrcat(out, tmp_line); #endif - if (!select_job_res || !select_job_res->core_bitmap) + if (!select_job_res) + goto line7; + +#ifndef HAVE_BG + if (!select_job_res->core_bitmap) goto line7; last = bit_fls(select_job_res->core_bitmap); @@ -396,6 +400,45 @@ slurm_sprint_job_info ( job_info_t * job_ptr, int one_liner ) } hostlist_destroy(hl); hostlist_destroy(hl_last); +#else + if ((select_job_res->cpu_array_cnt > 0) && + (select_job_res->cpu_array_value) && + (select_job_res->cpu_array_reps)) { + int length = 0; + xstrcat(out, "AllocCPUs="); + length += 10; + for (i = 0; i < select_job_res->cpu_array_cnt; i++) { + if (length > 70) { + /* skip to last CPU group entry */ + if (i < select_job_res->cpu_array_cnt - 1) { + continue; + } + /* add elipsis before last entry */ + xstrcat(out, "...,"); + length += 4; + } + + snprintf(tmp_line, sizeof(tmp_line), "%d", + select_job_res->cpu_array_value[i]); + xstrcat(out, tmp_line); + length += strlen(tmp_line); + if (select_job_res->cpu_array_reps[i] > 1) { + snprintf(tmp_line, sizeof(tmp_line), "*%d", + select_job_res->cpu_array_reps[i]); + xstrcat(out, tmp_line); + length += strlen(tmp_line); + } + if (i < select_job_res->cpu_array_cnt - 1) { + xstrcat(out, ","); + length++; + } + } + if (one_liner) + xstrcat(out, " "); + else + xstrcat(out, "\n "); + } +#endif line7: /****** Line 7 ******/ convert_num_unit((float)job_ptr->num_procs, tmp1, sizeof(tmp1),