Sha256: 32b96c54f305402d8be0bef1eb3e9d069ff7b4a43002b1061e672fdf313b5e02

Contents?: true

Size: 1.32 KB

Versions: 53

Compression:

Stored size: 1.32 KB

Contents

require 'kontena/cli/helpers/health_helper'
require 'kontena/cli/helpers/time_helper'

module Kontena::Cli::Nodes
  class HealthCommand < Kontena::Command
    include Kontena::Cli::Common
    include Kontena::Cli::GridOptions
    include Kontena::Cli::Helpers::HealthHelper
    include Kontena::Cli::Helpers::TimeHelper

    parameter "NODE", "Node name"

    requires_current_master
    requires_current_grid

    def execute
      return show_node_health("#{current_grid}/#{self.node}")
    end

    # @param id [String] :grid/:node
    # @return [Boolean] true if healthy
    def show_node_health(id)
      node_health = client.get("nodes/#{id}/health")

      if node_health['status'] == 'online'
        puts "#{health_icon(:ok)} Node is online for #{time_since(node_health['connected_at'])}"
      else
        puts "#{health_icon(:warning)} Node is #{node_health['status']}"
      end

      etcd_health, etcd_status = node_etcd_health(node_health['etcd_health'])

      puts "#{health_icon etcd_health} Node #{node_health['name']} etcd is #{etcd_status}"

      return etcd_health == :ok

    rescue Kontena::Errors::StandardErrorHash => exc
      raise unless exc.status == 422

      exc.errors.each do |what, error|
        puts "#{health_icon :offline} Node #{id} #{what} error: #{error}"
      end

      return false
    end
  end
end

Version data entries

53 entries across 53 versions & 2 rubygems

Version Path
krates-1.7.11 lib/kontena/cli/nodes/health_command.rb
krates-1.7.10 lib/kontena/cli/nodes/health_command.rb
krates-1.7.9 lib/kontena/cli/nodes/health_command.rb
krates-1.7.8 lib/kontena/cli/nodes/health_command.rb
krates-1.7.7 lib/kontena/cli/nodes/health_command.rb
krates-1.7.6 lib/kontena/cli/nodes/health_command.rb
krates-1.7.5 lib/kontena/cli/nodes/health_command.rb
krates-1.7.4 lib/kontena/cli/nodes/health_command.rb
krates-1.7.3 lib/kontena/cli/nodes/health_command.rb
krates-1.7.2 lib/kontena/cli/nodes/health_command.rb
krates-1.7.1 lib/kontena/cli/nodes/health_command.rb
krates-1.7.0 lib/kontena/cli/nodes/health_command.rb
krates-1.6.9 lib/kontena/cli/nodes/health_command.rb
krates-1.6.8 lib/kontena/cli/nodes/health_command.rb
krates-1.6.7 lib/kontena/cli/nodes/health_command.rb
krates-1.6.6 lib/kontena/cli/nodes/health_command.rb
krates-1.6.5 lib/kontena/cli/nodes/health_command.rb
krates-1.6.4 lib/kontena/cli/nodes/health_command.rb
krates-1.6.3 lib/kontena/cli/nodes/health_command.rb
krates-1.6.2 lib/kontena/cli/nodes/health_command.rb