Sha256: 84ac2069118bbb9490c631e20128e328298d93e7e2f45a1685ef71a2152fbdca

Contents?: true

Size: 1.38 KB

Versions: 54

Compression:

Stored size: 1.38 KB

Contents

module Kontena::Cli::Helpers
  module HealthHelper
    def health_icon(health)
      case health
      when nil
        " "
      when :ok
        pastel.green('⊛')
      when :warning
        pastel.yellow('⊙')
      when :error
        pastel.red('⊗')
      when :offline
        pastel.dark('⊝')
      else
        fail "Invalid health=#{health}"
      end
    end

    # Validate grid nodes configuration and status
    #
    # @param grid [Hash] get(/grids/:grid) => { ... }
    # @param nodes [Array<Hash>] get(/grids/:grid/nodes)[nodes] => [ { ... } ]
    # @return [Symbol] health
    def grid_health(grid, nodes)
      initial = grid['initial_size']
      minimum = grid['initial_size'] / 2 + 1 # a majority is required for etcd quorum

      online = nodes.select{|node| node['initial_member'] && node['connected']}

      if online.length < minimum
        return :error
      elsif online.length < initial
        return :warning
      else
        return :ok
      end
    end

    # Validate grid node status based on the grid health
    #
    # @param node [Hash] GET /nodes/:grid/:node
    # @param grid_health [Symbol] @see #grid_health
    # @return [Symbol] health
    def node_health(node, grid_health)
      if node['initial_member']
        return node['connected'] ? grid_health : :offline
      else
        return node['connected'] ? :ok : :offline
      end
    end
  end
end

Version data entries

54 entries across 54 versions & 1 rubygems

Version Path
kontena-cli-1.3.5 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.3.5.rc1 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.4.0.pre6 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.4.0.pre5 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.4.0.pre4 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.4.0.pre3 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.4.0.pre2 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.4.0.pre1 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.3.4 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.3.4.rc1 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.3.3 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.3.3.rc1 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.3.2 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.3.2.rc2 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.3.2.rc1 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.3.1 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.3.1.rc2 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.3.1.rc1 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.3.0 lib/kontena/cli/helpers/health_helper.rb
kontena-cli-1.3.0.rc4 lib/kontena/cli/helpers/health_helper.rb