class Ufo::Ps::Task
Public Class Methods
extra_columns()
click to toggle source
# File lib/ufo/ps/task.rb, line 95 def self.extra_columns @@extra_columns end
extra_columns=(val)
click to toggle source
# File lib/ufo/ps/task.rb, line 91 def self.extra_columns=(val) @@extra_columns = val end
header()
click to toggle source
# File lib/ufo/ps/task.rb, line 3 def self.header header = %w[Id Name Release Started Status Notes] header << "Container Instance" if extra_columns header end
new(task)
click to toggle source
# File lib/ufo/ps/task.rb, line 9 def initialize(task) @task = task end
Public Instance Methods
container_instance_arn()
click to toggle source
# File lib/ufo/ps/task.rb, line 29 def container_instance_arn @task['container_instance_arn'].split('/').last end
extra_columns()
click to toggle source
# File lib/ufo/ps/task.rb, line 99 def extra_columns self.class.extra_columns end
hide?()
click to toggle source
hide stopped tasks have been stopped for more than 5 minutes
created_at=2018-07-05 21:52:13 -0700,
started_at=2018-07-05 21:52:15 -0700, stopping_at=2018-07-05 22:03:44 -0700, stopped_at=2018-07-05 22:03:45 -0700,
# File lib/ufo/ps/task.rb, line 54 def hide? stopped_at = time(@task["stopped_at"]) status == "STOPPED" && stopped_at < Time.now - 60 * 5 end
id()
click to toggle source
# File lib/ufo/ps/task.rb, line 19 def id @task['task_arn'].split('/').last.split('-').first end
name()
click to toggle source
# File lib/ufo/ps/task.rb, line 23 def name @task["overrides"]["container_overrides"].first["name"] rescue NoMethodError @task["containers"].first["name"] end
notes()
click to toggle source
# File lib/ufo/ps/task.rb, line 63 def notes return unless @task["stopped_reason"] if @task["stopped_reason"] =~ /Task failed ELB health checks/ "Failed ELB health check" else @task["stopped_reason"] end end
relative_time(start_time)
click to toggle source
stackoverflow.com/questions/195740/how-do-you-do-relative-time-in-rails/195894
# File lib/ufo/ps/task.rb, line 74 def relative_time(start_time) diff_seconds = Time.now - start_time case diff_seconds when 0 .. 59 "#{diff_seconds.to_i} seconds ago" when 60 .. (3600-1) "#{(diff_seconds/60).to_i} minutes ago" when 3600 .. (3600*24-1) "#{(diff_seconds/3600).to_i} hours ago" when (3600*24) .. (3600*24*30) "#{(diff_seconds/(3600*24)).to_i} days ago" else start_time.strftime("%m/%d/%Y") end end
release()
click to toggle source
# File lib/ufo/ps/task.rb, line 33 def release @task["task_definition_arn"].split('/').last end
started()
click to toggle source
# File lib/ufo/ps/task.rb, line 37 def started started = time(@task["started_at"]) return "PENDING" unless started relative_time(started) end
status()
click to toggle source
# File lib/ufo/ps/task.rb, line 59 def status @task["last_status"] end
time(value)
click to toggle source
# File lib/ufo/ps/task.rb, line 43 def time(value) Time.parse(value.to_s) rescue ArgumentError nil end
to_a()
click to toggle source
# File lib/ufo/ps/task.rb, line 13 def to_a row = [id, name, release, started, status, notes] row << container_instance_arn if extra_columns row end