Sha256: 992fd8b3b075f5f26d20328a72931351210e899b4b0bb7f09eb34fed8736bf5d

Contents?: true

Size: 1.18 KB

Versions: 7

Compression:

Stored size: 1.18 KB

Contents

require_relative 'services_helper'

module Kontena::Cli::Services
  class ListCommand < Kontena::Command
    include Kontena::Cli::Common
    include Kontena::Cli::GridOptions
    include ServicesHelper

    def execute
      require_api_url
      token = require_token

      grids = client(token).get("grids/#{current_grid}/services")
      services = grids['services'].sort_by{|s| s['updated_at'] }.reverse
      titles = ['NAME', 'INSTANCES', 'STATEFUL', 'STATE', 'EXPOSED PORTS']
      puts "%-60s %-10s %-8s %-10s %-50s" % titles
      services.each do |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['name']}",
          instances,
          stateful,
          service['state'],
          ports
        ]
        puts "%-74s %-10.10s %-8s %-10s %-50s" % vars
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
kontena-cli-0.16.0.pre7 lib/kontena/cli/services/list_command.rb
kontena-cli-0.16.0.pre6 lib/kontena/cli/services/list_command.rb
kontena-cli-0.16.0.pre5 lib/kontena/cli/services/list_command.rb
kontena-cli-0.16.0.pre4 lib/kontena/cli/services/list_command.rb
kontena-cli-0.16.0.pre3 lib/kontena/cli/services/list_command.rb
kontena-cli-0.16.0.pre2 lib/kontena/cli/services/list_command.rb
kontena-cli-0.16.0.pre1 lib/kontena/cli/services/list_command.rb