1
1
# cython: embedsignature=True
2
2
# cython: profile=False
3
+ # cython: language_level=2
3
4
import os
4
5
import re
5
6
import sys
@@ -5434,8 +5435,8 @@ cdef class slurmdb_jobs:
5434
5435
if job is not NULL :
5435
5436
jobid = job.jobid
5436
5437
JOBS_info[u ' account' ] = slurm.stringOrNone(job.account, ' ' )
5437
- JOBS_info[u ' allocated_gres ' ] = slurm.stringOrNone(job.alloc_gres, ' ' )
5438
- JOBS_info[u ' allocated_nodes ' ] = job.alloc_nodes
5438
+ JOBS_info[u ' alloc_gres ' ] = slurm.stringOrNone(job.alloc_gres, ' ' )
5439
+ JOBS_info[u ' alloc_nodes ' ] = job.alloc_nodes
5439
5440
JOBS_info[u ' array_job_id' ] = job.array_job_id
5440
5441
JOBS_info[u ' array_max_tasks' ] = job.array_max_tasks
5441
5442
JOBS_info[u ' array_task_id' ] = job.array_task_id
@@ -5448,7 +5449,7 @@ cdef class slurmdb_jobs:
5448
5449
JOBS_info[u ' elapsed' ] = job.elapsed
5449
5450
JOBS_info[u ' eligible' ] = job.eligible
5450
5451
JOBS_info[u ' end' ] = job.end
5451
- JOBS_info[u ' exit_code ' ] = job.exitcode
5452
+ JOBS_info[u ' exitcode ' ] = job.exitcode
5452
5453
JOBS_info[u ' gid' ] = job.gid
5453
5454
JOBS_info[u ' jobid' ] = job.jobid
5454
5455
JOBS_info[u ' jobname' ] = slurm.stringOrNone(job.jobname, ' ' )
@@ -5466,11 +5467,101 @@ cdef class slurmdb_jobs:
5466
5467
JOBS_info[u ' show_full' ] = job.show_full
5467
5468
JOBS_info[u ' start' ] = job.start
5468
5469
JOBS_info[u ' state' ] = job.state
5469
- JOBS_info[u ' state_str' ] = slurm.slurm_job_state_string(job.state)
5470
+ JOBS_info[u ' state_str' ] = slurm.stringOrNone(slurm.slurm_job_state_string(job.state), ' ' )
5471
+
5472
+ # TRES are reported as strings in the format `TRESID=value` where TRESID is one of:
5473
+ # TRES_CPU=1, TRES_MEM=2, TRES_ENERGY=3, TRES_NODE=4, TRES_BILLING=5, TRES_FS_DISK=6, TRES_VMEM=7, TRES_PAGES=8
5474
+ # Example: '1=0,2=745472,3=0,6=1949,7=7966720,8=0'
5475
+ JOBS_info[u ' stats' ] = {}
5476
+ stats = JOBS_info[u ' stats' ]
5477
+ stats[u ' act_cpufreq' ] = job.stats.act_cpufreq
5478
+ stats[u ' consumed_energy' ] = job.stats.consumed_energy
5479
+ stats[u ' tres_usage_in_max' ] = slurm.stringOrNone(job.stats.tres_usage_in_max, ' ' )
5480
+ stats[u ' tres_usage_in_max_nodeid' ] = slurm.stringOrNone(job.stats.tres_usage_in_max_nodeid, ' ' )
5481
+ stats[u ' tres_usage_in_max_taskid' ] = slurm.stringOrNone(job.stats.tres_usage_in_max_taskid, ' ' )
5482
+ stats[u ' tres_usage_in_min' ] = slurm.stringOrNone(job.stats.tres_usage_in_min, ' ' )
5483
+ stats[u ' tres_usage_in_min_nodeid' ] = slurm.stringOrNone(job.stats.tres_usage_in_min_nodeid, ' ' )
5484
+ stats[u ' tres_usage_in_min_taskid' ] = slurm.stringOrNone(job.stats.tres_usage_in_min_taskid, ' ' )
5485
+ stats[u ' tres_usage_in_tot' ] = slurm.stringOrNone(job.stats.tres_usage_in_tot, ' ' )
5486
+ stats[u ' tres_usage_out_ave' ] = slurm.stringOrNone(job.stats.tres_usage_out_ave, ' ' )
5487
+ stats[u ' tres_usage_out_max' ] = slurm.stringOrNone(job.stats.tres_usage_out_max, ' ' )
5488
+ stats[u ' tres_usage_out_max_nodeid' ] = slurm.stringOrNone(job.stats.tres_usage_out_max_nodeid, ' ' )
5489
+ stats[u ' tres_usage_out_max_taskid' ] = slurm.stringOrNone(job.stats.tres_usage_out_max_taskid, ' ' )
5490
+ stats[u ' tres_usage_out_min' ] = slurm.stringOrNone(job.stats.tres_usage_out_min, ' ' )
5491
+ stats[u ' tres_usage_out_min_nodeid' ] = slurm.stringOrNone(job.stats.tres_usage_out_min_nodeid, ' ' )
5492
+ stats[u ' tres_usage_out_min_taskid' ] = slurm.stringOrNone(job.stats.tres_usage_out_min_taskid, ' ' )
5493
+ stats[u ' tres_usage_out_tot' ] = slurm.stringOrNone(job.stats.tres_usage_out_tot, ' ' )
5494
+
5495
+ # add job steps
5496
+ JOBS_info[u ' steps' ] = {}
5497
+ step_dict = JOBS_info[u ' steps' ]
5498
+
5499
+ stepsNum = slurm.slurm_list_count(job.steps)
5500
+ stepsIter = slurm.slurm_list_iterator_create(job.steps)
5501
+ for i in range (stepsNum):
5502
+ step = < slurm.slurmdb_step_rec_t * > slurm.slurm_list_next(stepsIter)
5503
+ step_info = {}
5504
+ if step is not NULL :
5505
+ step_id = step.stepid
5506
+
5507
+ step_info[u ' elapsed' ] = step.elapsed
5508
+ step_info[u ' end' ] = step.end
5509
+ step_info[u ' exitcode' ] = step.exitcode
5510
+
5511
+ # Don't add this unless you want to create an endless recursive structure
5512
+ # step_info[u'job_ptr'] = JOBS_Info # job's record
5513
+
5514
+ step_info[u ' nnodes' ] = step.nnodes
5515
+ step_info[u ' nodes' ] = slurm.stringOrNone(step.nodes, ' ' )
5516
+ step_info[u ' ntasks' ] = step.ntasks
5517
+ step_info[u ' pid_str' ] = slurm.stringOrNone(step.pid_str, ' ' )
5518
+ step_info[u ' req_cpufreq_min' ] = step.req_cpufreq_min
5519
+ step_info[u ' req_cpufreq_max' ] = step.req_cpufreq_max
5520
+ step_info[u ' req_cpufreq_gov' ] = step.req_cpufreq_gov
5521
+ step_info[u ' requid' ] = step.requid
5522
+ step_info[u ' start' ] = step.start
5523
+ step_info[u ' state' ] = step.state
5524
+ step_info[u ' state_str' ] = slurm.stringOrNone(slurm.slurm_job_state_string(step.state), ' ' )
5525
+
5526
+ # TRES are reported as strings in the format `TRESID=value` where TRESID is one of:
5527
+ # TRES_CPU=1, TRES_MEM=2, TRES_ENERGY=3, TRES_NODE=4, TRES_BILLING=5, TRES_FS_DISK=6, TRES_VMEM=7, TRES_PAGES=8
5528
+ # Example: '1=0,2=745472,3=0,6=1949,7=7966720,8=0'
5529
+ step_info[u ' stats' ] = {}
5530
+ stats = step_info[u ' stats' ]
5531
+ stats[u ' act_cpufreq' ] = step.stats.act_cpufreq
5532
+ stats[u ' consumed_energy' ] = step.stats.consumed_energy
5533
+ stats[u ' tres_usage_in_max' ] = slurm.stringOrNone(step.stats.tres_usage_in_max, ' ' )
5534
+ stats[u ' tres_usage_in_max_nodeid' ] = slurm.stringOrNone(step.stats.tres_usage_in_max_nodeid, ' ' )
5535
+ stats[u ' tres_usage_in_max_taskid' ] = slurm.stringOrNone(step.stats.tres_usage_in_max_taskid, ' ' )
5536
+ stats[u ' tres_usage_in_min' ] = slurm.stringOrNone(step.stats.tres_usage_in_min, ' ' )
5537
+ stats[u ' tres_usage_in_min_nodeid' ] = slurm.stringOrNone(step.stats.tres_usage_in_min_nodeid, ' ' )
5538
+ stats[u ' tres_usage_in_min_taskid' ] = slurm.stringOrNone(step.stats.tres_usage_in_min_taskid, ' ' )
5539
+ stats[u ' tres_usage_in_tot' ] = slurm.stringOrNone(step.stats.tres_usage_in_tot, ' ' )
5540
+ stats[u ' tres_usage_out_ave' ] = slurm.stringOrNone(step.stats.tres_usage_out_ave, ' ' )
5541
+ stats[u ' tres_usage_out_max' ] = slurm.stringOrNone(step.stats.tres_usage_out_max, ' ' )
5542
+ stats[u ' tres_usage_out_max_nodeid' ] = slurm.stringOrNone(step.stats.tres_usage_out_max_nodeid, ' ' )
5543
+ stats[u ' tres_usage_out_max_taskid' ] = slurm.stringOrNone(step.stats.tres_usage_out_max_taskid, ' ' )
5544
+ stats[u ' tres_usage_out_min' ] = slurm.stringOrNone(step.stats.tres_usage_out_min, ' ' )
5545
+ stats[u ' tres_usage_out_min_nodeid' ] = slurm.stringOrNone(step.stats.tres_usage_out_min_nodeid, ' ' )
5546
+ stats[u ' tres_usage_out_min_taskid' ] = slurm.stringOrNone(step.stats.tres_usage_out_min_taskid, ' ' )
5547
+ stats[u ' tres_usage_out_tot' ] = slurm.stringOrNone(step.stats.tres_usage_out_tot, ' ' )
5548
+
5549
+ step_info[u ' stepid' ] = step_id
5550
+ step_info[u ' stepname' ] = slurm.stringOrNone(step.stepname, ' ' )
5551
+ step_info[u ' suspended' ] = step.suspended
5552
+ step_info[u ' sys_cpu_sec' ] = step.sys_cpu_sec
5553
+ step_info[u ' sys_cpu_usec' ] = step.sys_cpu_usec
5554
+ step_info[u ' task_dist' ] = step.task_dist
5555
+ step_info[u ' tot_cpu_sec' ] = step.tot_cpu_sec
5556
+ step_info[u ' tot_cpu_usec' ] = step.tot_cpu_usec
5557
+ step_info[u ' tres_alloc_str' ] = slurm.stringOrNone(step.tres_alloc_str, ' ' )
5558
+ step_info[u ' user_cpu_sec' ] = step.user_cpu_sec
5559
+ step_info[u ' user_cpu_usec' ] = step.user_cpu_usec
5560
+
5561
+ step_dict[step_id] = step_info
5562
+
5563
+ slurm.slurm_list_iterator_destroy(stepsIter)
5470
5564
5471
- JOBS_info[u ' stat_actual_cpufreq' ] = job.stats.act_cpufreq
5472
-
5473
- JOBS_info[u ' steps' ] = " Not filled, string should be handled"
5474
5565
JOBS_info[u ' submit' ] = job.submit
5475
5566
JOBS_info[u ' suspended' ] = job.suspended
5476
5567
JOBS_info[u ' sys_cpu_sec' ] = job.sys_cpu_sec
@@ -5488,6 +5579,7 @@ cdef class slurmdb_jobs:
5488
5579
JOBS_info[u ' user_cpu_sec' ] = job.user_cpu_usec
5489
5580
JOBS_info[u ' wckey' ] = slurm.stringOrNone(job.wckey, ' ' )
5490
5581
JOBS_info[u ' wckeyid' ] = job.wckeyid
5582
+ JOBS_info[u ' work_dir' ] = slurm.stringOrNone(job.work_dir, ' ' )
5491
5583
J_dict[jobid] = JOBS_info
5492
5584
5493
5585
slurm.slurm_list_iterator_destroy(iters)
0 commit comments