Class: OodCore::Job::Info
- Inherits:
-
Object
- Object
- OodCore::Job::Info
- Defined in:
- lib/ood_core/job/info.rb
Overview
An object that describes a submitted job
Instance Attribute Summary collapse
-
#accounting_id ⇒ String?
readonly
The account the job is charged against.
-
#allocated_nodes ⇒ Array<NodeInfo>
readonly
Set of machines that is utilized for job execution.
-
#cpu_time ⇒ Fixnum?
readonly
The accumulated CPU time in seconds.
-
#dispatch_time ⇒ Time?
readonly
The time the job first entered a “Started” state.
-
#id ⇒ String
readonly
The identifier of the job.
-
#job_name ⇒ String?
readonly
Name of the job.
-
#job_owner ⇒ String?
readonly
Owner of job.
-
#native ⇒ Object
readonly
Native resource manager output for job info.
-
#procs ⇒ Fixnum?
readonly
Number of procs allocated for job.
-
#queue_name ⇒ String?
readonly
Name of the queue in which the job was queued or started.
-
#status ⇒ Status
readonly
The status of the job.
-
#submission_time ⇒ Time?
readonly
The time at which the job was submitted.
-
#submit_host ⇒ String?
readonly
Name of the submission host for this job.
-
#wallclock_limit ⇒ Fixnum?
readonly
The total wall clock time limit in seconds.
-
#wallclock_time ⇒ Fixnum?
readonly
The accumulated wall clock time in seconds.
Instance Method Summary collapse
-
#==(other) ⇒ Boolean
The comparison operator.
-
#eql?(other) ⇒ Boolean
Whether objects are identical to each other.
-
#hash ⇒ Fixnum
Generate a hash value for this object.
-
#initialize(id:, status:, allocated_nodes: [], submit_host: nil, job_name: nil, job_owner: nil, accounting_id: nil, procs: nil, queue_name: nil, wallclock_time: nil, wallclock_limit: nil, cpu_time: nil, submission_time: nil, dispatch_time: nil, native: nil, **_) ⇒ Info
constructor
A new instance of Info.
-
#to_h ⇒ Hash
Convert object to hash.
Constructor Details
#initialize(id:, status:, allocated_nodes: [], submit_host: nil, job_name: nil, job_owner: nil, accounting_id: nil, procs: nil, queue_name: nil, wallclock_time: nil, wallclock_limit: nil, cpu_time: nil, submission_time: nil, dispatch_time: nil, native: nil, **_) ⇒ Info
Returns a new instance of Info.
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/ood_core/job/info.rb', line 83 def initialize(id:, status:, allocated_nodes: [], submit_host: nil, job_name: nil, job_owner: nil, accounting_id: nil, procs: nil, queue_name: nil, wallclock_time: nil, wallclock_limit: nil, cpu_time: nil, submission_time: nil, dispatch_time: nil, native: nil, **_) @id = id.to_s @status = Status.new(state: status.to_sym) @allocated_nodes = allocated_nodes.map { |n| NodeInfo.new(n.to_h) } @submit_host = submit_host && submit_host.to_s @job_name = job_name && job_name.to_s @job_owner = job_owner && job_owner.to_s @accounting_id = accounting_id && accounting_id.to_s @procs = procs && procs.to_i @queue_name = queue_name && queue_name.to_s @wallclock_time = wallclock_time && wallclock_time.to_i @wallclock_limit = wallclock_limit && wallclock_limit.to_i @cpu_time = cpu_time && cpu_time.to_i @submission_time = submission_time && Time.at(submission_time.to_i) @dispatch_time = dispatch_time && Time.at(dispatch_time.to_i) @native = native end |
Instance Attribute Details
#accounting_id ⇒ String? (readonly)
The account the job is charged against
33 34 35 |
# File 'lib/ood_core/job/info.rb', line 33 def accounting_id @accounting_id end |
#allocated_nodes ⇒ Array<NodeInfo> (readonly)
Set of machines that is utilized for job execution
17 18 19 |
# File 'lib/ood_core/job/info.rb', line 17 def allocated_nodes @allocated_nodes end |
#cpu_time ⇒ Fixnum? (readonly)
The accumulated CPU time in seconds
53 54 55 |
# File 'lib/ood_core/job/info.rb', line 53 def cpu_time @cpu_time end |
#dispatch_time ⇒ Time? (readonly)
The time the job first entered a “Started” state
61 62 63 |
# File 'lib/ood_core/job/info.rb', line 61 def dispatch_time @dispatch_time end |
#id ⇒ String (readonly)
The identifier of the job
9 10 11 |
# File 'lib/ood_core/job/info.rb', line 9 def id @id end |
#job_name ⇒ String? (readonly)
Name of the job
25 26 27 |
# File 'lib/ood_core/job/info.rb', line 25 def job_name @job_name end |
#job_owner ⇒ String? (readonly)
Owner of job
29 30 31 |
# File 'lib/ood_core/job/info.rb', line 29 def job_owner @job_owner end |
#native ⇒ Object (readonly)
Should not be used by generic apps
Native resource manager output for job info
66 67 68 |
# File 'lib/ood_core/job/info.rb', line 66 def native @native end |
#procs ⇒ Fixnum? (readonly)
Number of procs allocated for job
37 38 39 |
# File 'lib/ood_core/job/info.rb', line 37 def procs @procs end |
#queue_name ⇒ String? (readonly)
Name of the queue in which the job was queued or started
41 42 43 |
# File 'lib/ood_core/job/info.rb', line 41 def queue_name @queue_name end |
#status ⇒ Status (readonly)
The status of the job
13 14 15 |
# File 'lib/ood_core/job/info.rb', line 13 def status @status end |
#submission_time ⇒ Time? (readonly)
The time at which the job was submitted
57 58 59 |
# File 'lib/ood_core/job/info.rb', line 57 def submission_time @submission_time end |
#submit_host ⇒ String? (readonly)
Name of the submission host for this job
21 22 23 |
# File 'lib/ood_core/job/info.rb', line 21 def submit_host @submit_host end |
#wallclock_limit ⇒ Fixnum? (readonly)
The total wall clock time limit in seconds
49 50 51 |
# File 'lib/ood_core/job/info.rb', line 49 def wallclock_limit @wallclock_limit end |
#wallclock_time ⇒ Fixnum? (readonly)
The accumulated wall clock time in seconds
45 46 47 |
# File 'lib/ood_core/job/info.rb', line 45 def wallclock_time @wallclock_time end |
Instance Method Details
#==(other) ⇒ Boolean
The comparison operator
130 131 132 |
# File 'lib/ood_core/job/info.rb', line 130 def ==(other) to_h == other.to_h end |
#eql?(other) ⇒ Boolean
Whether objects are identical to each other
137 138 139 |
# File 'lib/ood_core/job/info.rb', line 137 def eql?(other) self.class == other.class && self == other end |
#hash ⇒ Fixnum
Generate a hash value for this object
143 144 145 |
# File 'lib/ood_core/job/info.rb', line 143 def hash [self.class, to_h].hash end |
#to_h ⇒ Hash
Convert object to hash
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/ood_core/job/info.rb', line 107 def to_h { id: id, status: status, allocated_nodes: allocated_nodes, submit_host: submit_host, job_name: job_name, job_owner: job_owner, accounting_id: accounting_id, procs: procs, queue_name: queue_name, wallclock_time: wallclock_time, wallclock_limit: wallclock_limit, cpu_time: cpu_time, submission_time: submission_time, dispatch_time: dispatch_time, native: native } end |