/* * convert job_info_msg_t to perl HV */ int job_info_msg_to_hv(job_info_msg_t *job_info_msg, HV *hv) { int i; HV *hv_info; AV *av; _load_node_info(); STORE_FIELD(hv, job_info_msg, last_update, time_t); /* record_count implied in job_array */ av = newAV(); for(i = 0; i < job_info_msg->record_count; i ++) { hv_info = newHV(); if (job_info_to_hv(job_info_msg->job_array + i, hv_info) < 0) { SvREFCNT_dec(hv_info); SvREFCNT_dec(av); return -1; } av_store(av, i, newRV_noinc((SV*)hv_info)); } hv_store_sv(hv, "job_array", newRV_noinc((SV*)av)); _free_node_info(); return 0; }
/* * slurm_print_job_info - output information about a specific Slurm * job based upon message as loaded using slurm_load_jobs * IN out - file to write to * IN job_ptr - an individual job information record pointer * IN one_liner - print as a single line if true */ extern void slurm_print_job_info ( FILE* out, job_info_t * job_ptr, int one_liner ) { char *print_this; _load_node_info(); print_this = slurm_sprint_job_info(job_ptr, one_liner); fprintf(out, "%s", print_this); xfree(print_this); _free_node_info(); }