class Jerakia
Class Jerakia
Main Jerakia
class
Here we take a request object and read in the policy file which is evalulated in this instance
This class is a simple wrapper class to expose configuration options from the global configuration file to lookup plugins. It's exposed to the lookup as the config method. Eg: config
Constants
- VERSION
Public API to retrieve the latest released version of the code
This should be updated when a new gem is released and it is read from the gemspec file
Attributes
config[R]
log[R]
launcher[R]
options[R]
Public Class Methods
config=(data)
click to toggle source
# File lib/jerakia.rb, line 66 def config=(data) @config ||= data end
fatal(msg, e)
click to toggle source
# File lib/jerakia.rb, line 49 def self.fatal(msg, e) stacktrace = e.backtrace.join("\n") Jerakia.log.fatal msg Jerakia.log.fatal "Full stacktrace output:\n#{$!}\n\n#{stacktrace}" raise e end
log=(logger)
click to toggle source
# File lib/jerakia.rb, line 70 def log=(logger) @log ||= logger end
new(options = {})
click to toggle source
# File lib/jerakia.rb, line 28 def initialize(options = {}) @options = options @policies = {} load_config load_log_handler if config[:plugindir] $LOAD_PATH << config[:plugindir] unless $LOAD_PATH.include?(config[:plugindir]) end log.debug('Jerakia initialized') Jerakia.log.verbose("Jerakia started. Version #{Jerakia::VERSION}") @launcher = Jerakia::Launcher.new end
Public Instance Methods
config()
click to toggle source
# File lib/jerakia.rb, line 57 def config self.class.config end
log()
click to toggle source
# File lib/jerakia.rb, line 61 def log self.class.log end
lookup(request)
click to toggle source
# File lib/jerakia.rb, line 44 def lookup(request) raise Jerakia::PolicyError, "Policy '#{request.policy}' not defined" unless launcher.policy_exists?(request.policy) launcher.policies[request.policy.to_sym].run(request) end
Private Instance Methods
config_instance()
click to toggle source
# File lib/jerakia.rb, line 81 def config_instance File.exist?(configfile) ? Jerakia::Config.load_from_file(configfile) : Jerakia::Config.new end
configfile()
click to toggle source
# File lib/jerakia.rb, line 77 def configfile options[:config] || ENV['JERAKIA_CONFIG'] || '/etc/jerakia/jerakia.yaml' end
load_config()
click to toggle source
# File lib/jerakia.rb, line 85 def load_config self.class.config = config_instance end
load_log_handler()
click to toggle source
# File lib/jerakia.rb, line 97 def load_log_handler self.class.log = Jerakia::Log.new(loglevel.to_sym, logfile) end
logfile()
click to toggle source
# File lib/jerakia.rb, line 93 def logfile options[:logfile] || config['logfile'] || '/var/log/jerakia.log' end
loglevel()
click to toggle source
# File lib/jerakia.rb, line 89 def loglevel options[:loglevel] || config['loglevel'] || 'info' end