Module: Morpheus::Cli::LogsHelper

Included in:
LogsCommand
Defined in:
lib/morpheus/cli/mixins/logs_helper.rb

Overview

Mixin for Morpheus::Cli command classes Provides common methods for fetching log records. The including class must establish @logs_interface, @containers_interface, @servers_interface

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



8
9
10
# File 'lib/morpheus/cli/mixins/logs_helper.rb', line 8

def self.included(klass)
  klass.send :include, Morpheus::Cli::PrintHelper
end

Instance Method Details

#clusters_interfaceObject



30
31
32
33
34
# File 'lib/morpheus/cli/mixins/logs_helper.rb', line 30

def clusters_interface
  # @api_client.clusters
  raise "#{self.class} has not defined @clusters_interface" if @clusters_interface.nil?
  @clusters_interface
end

#containers_interfaceObject



18
19
20
21
22
# File 'lib/morpheus/cli/mixins/logs_helper.rb', line 18

def containers_interface
  ## @api_client.containers
  raise "#{self.class} has not defined @logs_interface" if @containers_interface.nil?
  @containers_interface
end

#format_log_records(log_records, options = {}) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/morpheus/cli/mixins/logs_helper.rb', line 40

def format_log_records(log_records, options={})
  out = ""
  table_color = options.key?(:color) ? options[:color] : cyan
  log_records.each do |log_entry|
    log_level = ''
    case log_entry['level']
    when 'INFO'
      log_level = "#{blue}#{bold}INFO#{reset}"
    when 'DEBUG'
      log_level = "#{white}#{bold}DEBUG#{reset}"
    when 'WARN'
      log_level = "#{yellow}#{bold}WARN#{reset}"
    when 'ERROR'
      log_level = "#{red}#{bold}ERROR#{reset}"
    when 'FATAL'
      log_level = "#{red}#{bold}FATAL#{reset}"
    end
    out << table_color if table_color
    out << "[#{log_entry['ts']}] #{log_level} - #{log_entry['message'].to_s.strip}"
    out << table_color if table_color
    out << "\n"
  end
  return out
end

#logs_interfaceObject



12
13
14
15
16
# File 'lib/morpheus/cli/mixins/logs_helper.rb', line 12

def logs_interface
  # @api_client.logs
  raise "#{self.class} has not defined @logs_interface" if @logs_interface.nil?
  @logs_interface
end


36
37
38
# File 'lib/morpheus/cli/mixins/logs_helper.rb', line 36

def print_log_records(log_records, options={})
  print format_log_records(log_records, options)
end

#servers_interfaceObject



24
25
26
27
28
# File 'lib/morpheus/cli/mixins/logs_helper.rb', line 24

def servers_interface
  # @api_client.servers
  raise "#{self.class} has not defined @servers_interface" if @servers_interface.nil?
  @servers_interface
end