Class: Jerakia

Inherits:
Object
  • Object
show all
Defined in:
lib/jerakia.rb,
lib/jerakia/cli.rb,
lib/jerakia/util.rb,
lib/jerakia/request.rb,
lib/jerakia/version.rb

Direct Known Subclasses

Datamodel, Log, Response

Defined Under Namespace

Modules: Util Classes: Answer, CLI, Cache, Config, Datamodel, Datasource, Launcher, Log, Lookup, Policy, Request, Response, Scope

Constant Summary collapse

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

"0.4.4"

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Jerakia

Returns a new instance of Jerakia.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/jerakia.rb', line 13

def initialize(options={})
  configfile = options[:config] || ENV['JERAKIA_CONFIG'] ||  '/etc/jerakia/jerakia.yaml'
  @@config = Jerakia::Config.load_from_file(configfile)

  if @@config[:plugindir]
    $LOAD_PATH << @@config[:plugindir] unless $LOAD_PATH.include?(@@config[:plugindir])
  end

  @@filecache = {}
  loglevel = options[:loglevel] || @@config["loglevel"] || "info"
  logfile = options[:logfile] || @@config["logfile"] || "/var/log/jerakia.log"
  @@log = Jerakia::Log.new(loglevel.to_sym, logfile)
  @@log.debug("Jerakia initialized")
end

Class Method Details

.configObject



53
54
55
# File 'lib/jerakia.rb', line 53

def self.config
  @@config
end

.crit(msg) ⇒ Object



65
66
67
68
# File 'lib/jerakia.rb', line 65

def self.crit(msg)
  Jerakia.log.error msg
  fail msg
end

.fatal(msg, e) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/jerakia.rb', line 36

def self.fatal(msg,e)
  stacktrace=e.backtrace.join("\n")
  Jerakia.log.fatal msg
  Jerakia.log.fatal "Full stacktrace output:\n#{$!}\n\n#{stacktrace}"
  puts "Fatal error, check log output for details"
  throw Exception
end

.filecache(name) ⇒ Object



44
45
46
47
# File 'lib/jerakia.rb', line 44

def self.filecache(name)
  @@filecache[name] ||= File.read(name)
  return @@filecache[name]
end

.logObject



61
62
63
# File 'lib/jerakia.rb', line 61

def self.log
  @@log
end

Instance Method Details

#add_to_filecache(name, data) ⇒ Object



49
50
51
# File 'lib/jerakia.rb', line 49

def add_to_filecache(name,data)
  @@filecache[name] = data
end

#configObject



32
33
34
# File 'lib/jerakia.rb', line 32

def config
  @@config
end

#logObject



57
58
59
# File 'lib/jerakia.rb', line 57

def log
  @@log
end

#lookup(request) ⇒ Object



28
29
30
# File 'lib/jerakia.rb', line 28

def lookup(request)
  Jerakia::Launcher.new(request).answer
end