class Kontena::Cli::Stacks::ShowCommand

Public Instance Methods

execute() click to toggle source
# File lib/kontena/cli/stacks/show_command.rb, line 20
def execute
  write_variables if values_to
  values? ? show_variables : show_stack
end
metadata() click to toggle source
# File lib/kontena/cli/stacks/show_command.rb, line 29
def metadata
  @metadata ||= stack['metadata'] || {}
end
show_service(service_id) click to toggle source

@param [String] service_id

# File lib/kontena/cli/stacks/show_command.rb, line 86
def show_service(service_id)
  token = require_token
  service = get_service(token, service_id)
  pad = '    '.freeze
  puts "#{pad}#{service['name']}:"
  puts "#{pad}  created: #{service['created_at']}"
  puts "#{pad}  updated: #{service['updated_at']}"
  puts "#{pad}  image: #{service['image']}"
  puts "#{pad}  revision: #{service['stack_revision']}"
  puts "#{pad}  state: #{service['state'] }"
  if service['health_status']
    puts "#{pad}  health_status:"
    puts "#{pad}    healthy: #{service['health_status']['healthy']}"
    puts "#{pad}    total: #{service['health_status']['total']}"
  end
  puts "#{pad}  stateful: #{service['stateful'] == true ? 'yes' : 'no' }"
  puts "#{pad}  scaling: #{service['instances'] }"
  puts "#{pad}  strategy: #{service['strategy']}"
  puts "#{pad}  read_only: #{service['read_only'] == true ? 'yes' : 'no'}"
  puts "#{pad}  deploy_opts:"
  puts "#{pad}    min_health: #{service['deploy_opts']['min_health']}"
  if service['deploy_opts']['wait_for_port']
    puts "#{pad}  wait_for_port: #{service['deploy_opts']['wait_for_port']}"
  end
  if service['deploy_opts']['interval']
    puts "#{pad}  interval: #{service['deploy_opts']['interval']}"
  end
  puts "#{pad}  dns: #{service['dns']}"

  if service['affinity'].to_a.size > 0
    puts "#{pad}  affinity: "
    service['affinity'].to_a.each do |a|
      puts "#{pad}    - #{a}"
    end
  end

  if service['secrets'].to_a.size > 0
    puts "#{pad}  secrets: "
    service['secrets'].to_a.each do |s|
      puts "#{pad}    - secret: #{s['secret']}"
      puts "#{pad}      name: #{s['name']}"
      puts "#{pad}      type: #{s['type']}"
    end
  end

  unless service['cmd'].to_s.empty?
    if service['cmd']
      puts "#{pad}  cmd: #{service['cmd'].join(' ')}"
    else
      puts "#{pad}  cmd: "
    end
  end

  if service['ports'].to_a.size > 0
    puts "#{pad}  ports:"
    service['ports'].to_a.each do |p|
      puts "#{pad}    - #{p['node_port']}:#{p['container_port']}/#{p['protocol']}"
    end
  end

  if service['volumes'].to_a.size > 0
    puts "#{pad}  volumes:"
    service['volumes'].to_a.each do |v|
      puts "#{pad}    - #{v}"
    end
  end

  if service['volumes_from'].to_a.size > 0
    puts "#{pad}  volumes_from:"
    service['volumes_from'].to_a.each do |v|
      puts "#{pad}    - #{v}"
    end
  end

  if service['links'].to_a.size > 0
    puts "#{pad}  links: "
    service['links'].to_a.each do |l|
      puts "#{pad}    - #{l['alias']} => #{l['id']}"
    end
  end
end
show_stack() click to toggle source
# File lib/kontena/cli/stacks/show_command.rb, line 49
def show_stack
  puts "#{stack['name']}:"
  puts "  created: #{stack['created_at']}"
  puts "  updated: #{stack['updated_at']}"
  puts "  state: #{stack['state']}"
  puts "  stack: #{stack['stack']}"
  puts "  version: #{stack['version']}"
  puts "  revision: #{stack['revision']}"
  puts "  expose: #{stack['expose'] || '-'}"

  puts "  variables:#{' -' if variables.empty?}"
  variables.each do |var, val|
    puts "    #{var}: #{val}"
  end

  puts "  metadata:#{' -' if metadata.empty?}"
  unless metadata.empty?
    output_lines = ::YAML.dump(metadata).split(/[\r\n]/)
    output_lines.shift # get rid of "---"
    puts output_lines.map { |line| '    %s' % line }.join("\n")
  end

  puts "  parent: #{stack['parent'] ? stack['parent']['name'] : '-'}"
  if stack['children'] && !stack['children'].empty?
    puts "  children:"
    stack['children'].each do |child|
      puts "    - #{child['name']}"
    end
  end

  puts "  services:"
  stack['services'].each do |service|
    show_service(service['id'])
  end
end
show_variables() click to toggle source
# File lib/kontena/cli/stacks/show_command.rb, line 37
def show_variables
  puts variable_yaml
end
stack() click to toggle source
# File lib/kontena/cli/stacks/show_command.rb, line 33
def stack
  @stack ||= client.get("stacks/#{current_grid}/#{name}")
end
variable_yaml() click to toggle source
# File lib/kontena/cli/stacks/show_command.rb, line 41
def variable_yaml
  ::YAML.dump(variables)
end
variables() click to toggle source
# File lib/kontena/cli/stacks/show_command.rb, line 25
def variables
  @variables ||= stack['variables'] || {}
end
write_variables() click to toggle source
# File lib/kontena/cli/stacks/show_command.rb, line 45
def write_variables
  File.write(values_to, variable_yaml)
end