Sha256: c5ec4fff95f7f288d208a34e924bfb8b10a91a5ff01faaa03fc8b68abe8a1716
Contents?: true
Size: 1.54 KB
Versions: 3
Compression:
Stored size: 1.54 KB
Contents
require_relative 'services_helper' module Kontena::Cli::Services class ListCommand < Kontena::Command include Kontena::Cli::Common include Kontena::Cli::GridOptions include ServicesHelper option ["-q", "--quiet"], :flag, "Show only service names" option '--stack', 'STACK', 'Stack name' def execute require_api_url token = require_token grids = client(token).get("grids/#{current_grid}/services?stack=#{stack}") services = grids['services'].sort_by{|s| s['updated_at'] }.reverse if quiet? services.each do |service| puts "#{service.dig('stack', 'id')}/#{service['name']}" end else titles = ['NAME', 'INSTANCES', 'STATEFUL', 'STATE', 'EXPOSED PORTS'] puts "%-60s %-10s %-8s %-10s %-50s" % titles services.each do |service| print_service_row(service) end end end def print_service_row(service) stateful = service['stateful'] ? 'yes' : 'no' running = service['instances']['running'] desired = service['container_count'] instances = "#{running} / #{desired}" ports = service['ports'].map{|p| "#{p['ip']}:#{p['node_port']}->#{p['container_port']}/#{p['protocol']}" }.join(", ") health = health_status(service) vars = [ health_status_icon(health), "#{service.dig('stack', 'name')}/#{service['name']}", instances, stateful, service['state'], ports ] puts "%s %-58s %-10.10s %-8s %-10s %-50s" % vars end end end
Version data entries
3 entries across 3 versions & 1 rubygems