Class: Jerakia

Inherits:
Object
  • Object
show all
Defined in:
lib/jerakia.rb,
lib/jerakia/cli.rb,
lib/jerakia/util.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.2"

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
# File 'lib/jerakia.rb', line 13

def initialize(options={})
  configfile = options[: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"
  @@log = Jerakia::Log.new(loglevel.to_sym)
  @@log.debug("Jerakia initialized")
end

Class Method Details

.configObject



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

def self.config
  @@config
end

.crit(msg) ⇒ Object



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

def self.crit(msg)
  fail msg
end

.fatal(msg, e) ⇒ Object



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

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



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

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

.logObject



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

def self.log
  @@log
end

Instance Method Details

#add_to_filecache(name, data) ⇒ Object



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

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

#configObject



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

def config
  @@config
end

#logObject



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

def log
  @@log
end

#lookup(request) ⇒ Object



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

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