@maap-jupyterlab/dps-jupyter-extension
Version:
A JupyterLab extension for submitting and viewing jobs.
52 lines (51 loc) • 2.9 kB
JavaScript
export const parseJobData = (data) => {
let tmpJobs = [];
data.map((job) => {
let tmpJob = {};
let tmp = Object.entries(job);
if (tmp[0][0]) {
tmpJob.payload_id = tmp[0][0];
}
if (tmp[0][1]) {
tmpJob.name = "";
tmpJob.job_type = tmp[0][1]['type'];
tmpJob.status = tmp[0][1]['status'];
tmpJob.tags = tmp[0][1]['tags'];
tmpJob.traceback = tmp[0][1]['traceback'];
if (tmp[0][1]['job']) {
tmpJob.username = tmp[0][1]['job']['username'];
tmpJob.job_id = tmp[0][1]['job']['job_id'];
if (tmp[0][1]['job']['job_info']) {
tmpJob.queue = tmp[0][1]['job']['job_info']['job_queue'];
tmpJob.time_end = tmp[0][1]['job']['job_info']['time_end'];
/* If there is no time_start field, that implies the job never started (i.e. revoked). For sorting purposes, grab time_queued instead. */
tmpJob.time_start = tmp[0][1]['job']['job_info']['time_start'] ? tmp[0][1]['job']['job_info']['time_start'] : ""; //tmp[0][1]['job']['job_info']['time_queued']
tmpJob.time_queued = tmp[0][1]['job']['job_info']['time_queued'];
tmpJob.duration = tmp[0][1]['job']['job_info']['duration'];
if (tmp[0][1]['job']['job_info']['facts']) {
tmpJob.ec2_instance_id = tmp[0][1]['job']['job_info']['facts']['ec2_instance_id'];
tmpJob.ec2_instance_type = tmp[0][1]['job']['job_info']['facts']['ec2_instance_type'];
tmpJob.ec2_availability_zone = tmp[0][1]['job']['job_info']['facts']['ec2_placement_availability_zone'];
}
if (tmp[0][1]['job']['job_info']['metrics']) {
tmpJob.job_dir_size = tmp[0][1]['job']['job_info']['metrics']['job_dir_size'];
if (tmp[0][1]['job']['job_info']['metrics']['products_staged']) {
tmpJob.products = tmp[0][1]['job']['job_info']['metrics']['products_staged'];
}
}
}
}
if (tmp[0][1]['job']['context']) {
tmpJob.command = tmp[0][1]['job']['context']['_command'];
tmpJob.disk_usage = tmp[0][1]['job']['context']['_disk_usage'];
tmpJob.container_image_name = tmp[0][1]['job']['context']['container_image_name'];
tmpJob.container_image_url = tmp[0][1]['job']['context']['container_image_url'];
if (tmp[0][1]['job']['context']['job_specification']) {
tmpJob.params = tmp[0][1]['job']['context']['job_specification']['params'];
}
}
}
tmpJobs.push(tmpJob);
});
return tmpJobs;
};