class Hodor::Oozie::Job
Attributes
columns[RW]
conf[R]
id[R]
index[R]
parent_id[R]
rest_call[R]
skip_to[R]
Public Class Methods
new()
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 22 def initialize @index = -1 @rest_call = session.last_query end
Public Instance Methods
child_columns()
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 119 def child_columns first_child = children.first if first_child first_child.class.default_columns else nil end end
children()
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 43 def children if @children.nil? @children = expand end @children end
children_title()
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 128 def children_title "#{self.class.name.split('::').last} Children" end
conf_map()
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 177 def conf_map io = StringIO.new(conf || "") handler = Configuration.new() Ox.sax_parse(handler, io) handler.map end
definition()
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 188 def definition session.get_job_state(id, "show=definition") end
display_as_array(columns, ellipsis = false)
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 102 def display_as_array(columns, ellipsis = false) row = columns.inject([]) { |cols, head| if ellipsis val = "..." else display_override = "display_#{head.to_s}".to_sym if respond_to?(display_override) val = method(display_override.to_s).call else val = instance_variable_get("@#{head}") val = display_as_time(val) if val.is_a?(Time) end end cols << sanitize(val, 80) } end
display_as_time(val)
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 50 def display_as_time(val) display_date = val.strftime("%Y-%m-%d %H:%M") cur_date = Time.now.strftime("%Y-") if display_date[0..4].eql?(cur_date) display_date[5..-1] else display_date end end
display_children()
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 132 def display_children if children.nil? || children.length == 0 nil else headings = child_columns.map { |head| head.to_s.split('_').map { |w| w.capitalize }.join(' ') } children.each_with_index { |c, i| c.set_index(i) } truncated = children.length > session.len childrows = truncated ? children[0..session.len-1] : children rows = childrows.inject([]) { |result, v| result << v.display_as_array(child_columns) result } rows[rows.length-1][0] = "#{rows[rows.length-1][0]}+" if truncated { headings: headings, rows: rows } end end
display_properties()
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 73 def display_properties if self.class.respond_to?(:suppress_properties) suppress = self.class.suppress_properties else suppress = false end props = suppress ? nil : instance_variables.map { |var| var[1..-1] }.select { |var| !var.eql?("index") } if props rows = props.inject([]) { |result, prop| display_override = "display_#{prop.to_s}".to_sym if respond_to?(display_override) val = method(display_override.to_s).call else val = instance_variable_get("@#{prop}") if val.is_a?(Time) val = display_as_time(val) else val = val end end result << [prop, sanitize(val)] } { rows: rows } else nil end end
expand()
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 39 def expand nil end
indexed_job_id()
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 31 def indexed_job_id nil end
log()
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 184 def log session.get_job_state(id, "show=log") end
oozie()
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 18 def oozie Hodor::Oozie end
parse_time(timestamp)
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 35 def parse_time timestamp Time.strptime(timestamp, "%a, %d %b %Y %H:%M:%S %Z") if timestamp end
sanitize(val, max_length = 120)
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 60 def sanitize val, max_length = 120 sval = val.to_s.gsub(/\s+/, ' ') if sval.length > max_length sval.to_s[0..max_length-3] + '...' else sval end end
session()
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 14 def session Hodor::Oozie::Session.instance end
set_index(i)
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 27 def set_index(i) @index = i end
title()
click to toggle source
# File lib/hodor/api/oozie/job.rb, line 69 def title "#{self.class.name.split('::').last} Properties" end