class Kontena::Cli::Nodes::ListCommand
Public Instance Methods
execute()
click to toggle source
# File lib/kontena/cli/nodes/list_command.rb, line 93 def execute print_table(node_data) end
fields()
click to toggle source
# File lib/kontena/cli/nodes/list_command.rb, line 49 def fields return ['name'] if quiet? { name: 'name', version: 'agent_version', status: 'status', initial: 'initial', labels: 'labels', } end
grid_nodes(grid_name)
click to toggle source
# File lib/kontena/cli/nodes/list_command.rb, line 64 def grid_nodes(grid_name) client.get("grids/#{grid_name}/nodes")['nodes'] end
grids()
click to toggle source
# File lib/kontena/cli/nodes/list_command.rb, line 60 def grids all? ? client.get("grids")['grids'] : [client.get("grids/#{current_grid}")] end
node_data()
click to toggle source
# File lib/kontena/cli/nodes/list_command.rb, line 68 def node_data grids.flat_map do |grid| grid_nodes = [] grid_nodes(grid['id']).each do |node| node['name'] = node_name(node, grid) grid_nodes << node next if quiet? node['agent_version'] ||= '-' node['initial'] = node_initial(node, grid) node['status'] = node_status(node) node['labels'] = node_labels(node) end unless quiet? grid_health = grid_health(grid, grid_nodes) grid_nodes.each do |node| node['name'] = health_icon(node_health(node, grid_health)) + " " + (node['name'] || node['node_id']) end end grid_nodes.sort_by { |n| n['node_number'] } end end
node_initial(node, grid)
click to toggle source
# File lib/kontena/cli/nodes/list_command.rb, line 40 def node_initial(node, grid) return '-' unless node['initial_member'] "#{node['node_number']} / #{grid['initial_size']}" end
node_labels(node)
click to toggle source
# File lib/kontena/cli/nodes/list_command.rb, line 45 def node_labels(node) (node['labels'] || ['-']).join(',') end
node_name(node, grid)
click to toggle source
# File lib/kontena/cli/nodes/list_command.rb, line 18 def node_name(node, grid) return node['name'] unless all? "#{grid['name']}/#{node['name']}" end
node_status(node)
click to toggle source
# File lib/kontena/cli/nodes/list_command.rb, line 23 def node_status(node) case node_status = node['status'] when 'created' "#{pastel.dark('created')} #{time_since(node['created_at'], terse: true)}" when 'connecting' "#{pastel.cyan('connecting')} #{time_since(node['connected_at'], terse: true)}" when 'online' "#{pastel.green('online')} #{time_since(node['connected_at'], terse: true)}" when 'drain' "#{pastel.yellow('drain')}" when 'offline' "#{pastel.red('offline')} #{time_since(node['disconnected_at'], terse: true)}" else pastel.white(node_status.to_s) end end