class Eclair::K8sItem
Attributes
pod[R]
Public Class Methods
new(pod)
click to toggle source
Calls superclass method
Eclair::Item::new
# File lib/eclair/providers/k8s/k8s_item.rb, line 10 def initialize pod super() @pod = pod end
Public Instance Methods
color()
click to toggle source
# File lib/eclair/providers/k8s/k8s_item.rb, line 19 def color if @selected [Curses::COLOR_YELLOW, -1, Curses::A_BOLD] elsif !connectable? [Curses::COLOR_BLACK, -1, Curses::A_BOLD] else [Curses::COLOR_WHITE, -1] end end
command()
click to toggle source
# File lib/eclair/providers/k8s/k8s_item.rb, line 33 def command "kubectl exec --namespace #{namespace} -ti #{name} #{exec_command}" end
connectable?()
click to toggle source
# File lib/eclair/providers/k8s/k8s_item.rb, line 56 def connectable? status == "running" end
exec_command()
click to toggle source
# File lib/eclair/providers/k8s/k8s_item.rb, line 29 def exec_command @pod["metadata"]["labels"]["eclair_exec_command"] || "/bin/sh" end
header()
click to toggle source
# File lib/eclair/providers/k8s/k8s_item.rb, line 37 def header <<-EOS #{name} launched at #{launch_time.to_time} EOS end
id()
click to toggle source
# File lib/eclair/providers/k8s/k8s_item.rb, line 15 def id @pod["metadata"]["uid"] end
label()
click to toggle source
# File lib/eclair/providers/k8s/k8s_item.rb, line 44 def label " - #{name} [#{launched_at}]" end
name()
click to toggle source
# File lib/eclair/providers/k8s/k8s_item.rb, line 52 def name @pod["metadata"]["name"] end
namespace()
click to toggle source
# File lib/eclair/providers/k8s/k8s_item.rb, line 48 def namespace @pod["metadata"]["namespace"] end
search_key()
click to toggle source
# File lib/eclair/providers/k8s/k8s_item.rb, line 60 def search_key name.downcase end
Private Instance Methods
launch_time()
click to toggle source
# File lib/eclair/providers/k8s/k8s_item.rb, line 70 def launch_time Time.parse(@pod["metadata"]["creationTimestamp"]) end
launched_at()
click to toggle source
# File lib/eclair/providers/k8s/k8s_item.rb, line 74 def launched_at diff = Time.now - launch_time { "year" => 31557600, "month" => 2592000, "day" => 86400, "hour" => 3600, "minute" => 60, "second" => 1 }.each do |unit,v| if diff >= v value = (diff/v).to_i return "#{value} #{unit}#{value > 1 ? "s" : ""}" end end "now" end
status()
click to toggle source
# File lib/eclair/providers/k8s/k8s_item.rb, line 66 def status @pod["status"]["containerStatuses"].first["state"].keys.first rescue nil end