Sha256: 7591738988f8076e44c95f9377e1bed4e9f83c3759a25fa9bd85706efd3541fd
Contents?: true
Size: 1.74 KB
Versions: 4
Compression:
Stored size: 1.74 KB
Contents
module Vidar module K8s class ContainerStatus attr_reader :data, :state def initialize(data) @data = data @state = data["state"] end def name data["name"] end def ok? (ready? && running?) || terminated_completed? end def to_text parts = ["Name: #{name}"] + text_statuses parts.map { |s| s.ljust(50, " ") }.join(" | ") end def text_statuses if running? if ready? [ColorizedString["Status: Ready & Running"].light_green, "Started at: #{running_started_at}"] else [ColorizedString["Status: Not ready"].light_red, "Started at: #{running_started_at}"] end elsif terminated_completed? [ColorizedString["Status: Terminated/Completed"].light_green, "Finished at: #{terminated_finished_at}"] elsif terminated_error? [ColorizedString["Status: Terminated/Error"].light_red] elsif waiting? [ColorizedString["Status: Waiting"].light_green] else [ColorizedString[state.inspect].light_red] end end def waiting? state["waiting"] end def ready? data["ready"] end def running? !running_started_at.nil? end def running_started_at state.dig("running", "startedAt") end def terminated_completed? state.dig("terminated", "reason") == "Completed" || state.dig("terminated", "exitCode") == 0 end def terminated_finished_at state.dig("terminated", "finishedAt") end def terminated_error? state.dig("terminated", "reason") == "Error" || state.dig("terminated", "exitCode") end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
vidar-0.2.0 | lib/vidar/k8s/container_status.rb |
vidar-0.1.6 | lib/vidar/k8s/container_status.rb |
vidar-0.1.5 | lib/vidar/k8s/container_status.rb |
vidar-0.1.4 | lib/vidar/k8s/container_status.rb |