Sha256: fbce84a4e75c28c20976aab682a10d6eaba05ff8aac0b8ee0f826d000a1c55c0
Contents?: true
Size: 1.16 KB
Versions: 2
Compression:
Stored size: 1.16 KB
Contents
require 'json' require 'date' require 'seira/commands/teleport' module Seira module Teleport class Status attr_reader :data def initialize(data: nil) @data = data @data ||= get_status_json end def [](key) data[key] end def active_cluster data.dig('active', 'cluster') end def kubernetes_cluster data.dig('active','kubernetes_cluster') end def roles @roles ||= data.dig('active', 'roles') end def has_role?(role) return false if roles.nil? roles.include?(role) end def is_valid? valid_until = data.dig('active', 'valid_until') return false if valid_until.nil? DateTime.parse(data.dig('active', 'valid_until')) > DateTime.now end private def get_status_json cmd = Seira::Commands::Teleport.new('status -f json', context: :none) out = cmd.invoke(clean_output: true, return_output: true) if out == '' {} else JSON.parse(cmd.invoke(clean_output: true, return_output: true)) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
seira-0.8.1 | lib/seira/teleport/status.rb |
seira-0.8.0 | lib/seira/teleport/status.rb |