module ILO_SDK::LogEntryHelper

Contains helper methods for Log Entry actions

Public Instance Methods

clear_logs(log_type) click to toggle source

Clear the specified logs @param [String, Symbol] log_type @raise [RuntimeError] if the request failed @return true

# File lib/ilo-sdk/helpers/log_entry_helper.rb, line 34
def clear_logs(log_type)
  new_action = { 'Action' => 'ClearLog' }
  response = rest_post(uri_for_log_type(log_type), body: new_action)
  response_handler(response)
  true
end
get_logs(severity_level, duration, log_type) click to toggle source

Get the specified logs @param [String, Symbol, NilClass] severity_level Set to nil to get all logs @param [String, Symbol] duration Up to this many hours ago @param [String, Symbol] log_type IEL or IML @raise [RuntimeError] if the request failed @return [Array] log entries

# File lib/ilo-sdk/helpers/log_entry_helper.rb, line 56
def get_logs(severity_level, duration, log_type)
  response = rest_get("#{uri_for_log_type(log_type)}Entries/")
  entries = response_handler(response)['Items']
  start_time = Time.now.utc - (duration * 3600)
  if severity_level.nil?
    entries.select { |e| Time.parse(e['Created']) > start_time }
  else
    entries.select { |e| severity_level.to_s.casecmp(e['Severity']) == 0 && Time.parse(e['Created']) > start_time }
  end
end
logs_empty?(log_type) click to toggle source

Check to see if the specified logs are empty @param [String, Symbol] log_type @raise [RuntimeError] if the request failed @return [TrueClass, FalseClass] logs_empty

# File lib/ilo-sdk/helpers/log_entry_helper.rb, line 45
def logs_empty?(log_type)
  response = rest_get("#{uri_for_log_type(log_type)}Entries/")
  response_handler(response)['Items'].empty?
end
uri_for_log_type(log_type, id = 1) click to toggle source

Get the URI for the specified log type @param [String, Symbol] log_type @raise [RuntimeError] if type is invalid @return [String] URI of log service

# File lib/ilo-sdk/helpers/log_entry_helper.rb, line 21
def uri_for_log_type(log_type, id = 1)
  resource = case log_type.to_s.upcase
             when 'IEL' then 'Managers'
             when 'IML' then 'Systems'
             else raise "Invalid log_type '#{log_type}'. Valid options are IEL and IML"
             end
  "/redfish/v1/#{resource}/#{id}/LogServices/#{log_type.upcase}/"
end