class Kontena::Plugin::Cloud::Node::ListCommand
Public Instance Methods
default_organization()
click to toggle source
# File lib/kontena/plugin/cloud/node/list_command.rb, line 50 def default_organization unless current_master exit_with_error "Organization is required" end org, _ = parse_platform_name(current_master.name) org end
execute()
click to toggle source
# File lib/kontena/plugin/cloud/node/list_command.rb, line 17 def execute nodes = compute_client.get("/organizations/#{self.organization}/nodes")['data'] nodes.delete_if { |n| n.dig('attributes', 'state') == 'terminated' } if quiet? puts nodes.map { |n| n.dig('attributes', 'name')} return end platforms = fetch_platforms(nodes) print_table(nodes) do |n| node = Kontena::Cli::Models::Node.new(n) n['name'] = "#{state_icon(node.state)} #{node.name}" n['type'] = node.type n['region'] = node.region if platform = platforms[node.platform_id] n['platform'] = platform.to_path else n['platform'] = pastel.red('<orphan>') end end end
fetch_platforms(nodes)
click to toggle source
# File lib/kontena/plugin/cloud/node/list_command.rb, line 38 def fetch_platforms(nodes) platform_ids = nodes.map { |n| Kontena::Cli::Models::Node.new(n).platform_id }.compact.uniq platforms = {} platform_ids.each { |id| platform_data = cloud_client.get("/organizations/#{self.organization}/platforms/#{id}")['data'] rescue nil if platform_data platforms[id] = Kontena::Cli::Models::Platform.new(platform_data) end } platforms end
fields()
click to toggle source
# File lib/kontena/plugin/cloud/node/list_command.rb, line 58 def fields { 'name' => 'name', 'type' => 'type', 'platform' => 'platform', 'region' => 'region' } end
state_icon(state)
click to toggle source
# File lib/kontena/plugin/cloud/node/list_command.rb, line 67 def state_icon(state) case state when nil " ".freeze when 'running'.freeze pastel.green('⊛'.freeze) else pastel.dark('⊝'.freeze) end end