Class: Jerakia
- Inherits:
-
Object
show all
- Defined in:
- lib/jerakia.rb,
lib/jerakia/cli.rb,
lib/jerakia/util.rb,
lib/jerakia/error.rb,
lib/jerakia/request.rb,
lib/jerakia/version.rb,
lib/jerakia/dsl/lookup.rb,
lib/jerakia/dsl/policy.rb
Defined Under Namespace
Modules: Dsl, Util
Classes: Answer, CLI, Cache, Config, Datasource, Error, FileParseError, Launcher, Log, Lookup, Policy, PolicyError, Request, Response, Schema, SchemaError, 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
"1.1.1"
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(options = {}) ⇒ Jerakia
Returns a new instance of Jerakia.
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/jerakia.rb', line 15
def initialize(options={})
configfile = options[:config] || ENV['JERAKIA_CONFIG'] || '/etc/jerakia/jerakia.yaml'
@@config = File.exist?(configfile) ? Jerakia::Config.load_from_file(configfile) : Jerakia::Config.new
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")
Jerakia.log.verbose("Jerakia started. Version #{Jerakia::VERSION}")
end
|
Class Method Details
.config ⇒ Object
70
71
72
|
# File 'lib/jerakia.rb', line 70
def self.config
@@config
end
|
.fatal(msg, e) ⇒ Object
50
51
52
53
54
55
|
# File 'lib/jerakia.rb', line 50
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
|
.filecache(name) ⇒ Object
57
58
59
60
61
62
63
64
|
# File 'lib/jerakia.rb', line 57
def self.filecache(name)
begin
@@filecache[name] ||= File.read(name)
rescue Errno::ENOENT => e
raise Jerakia::Error, "Could not read file #{name}, #{e.message}"
end
return @@filecache[name]
end
|
.log ⇒ Object
78
79
80
|
# File 'lib/jerakia.rb', line 78
def self.log
@@log
end
|
Instance Method Details
#add_to_filecache(name, data) ⇒ Object
66
67
68
|
# File 'lib/jerakia.rb', line 66
def add_to_filecache(name,data)
@@filecache[name] = data
end
|
#config ⇒ Object
46
47
48
|
# File 'lib/jerakia.rb', line 46
def config
@@config
end
|
#log ⇒ Object
74
75
76
|
# File 'lib/jerakia.rb', line 74
def log
@@log
end
|
#lookup(request) ⇒ Object
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/jerakia.rb', line 35
def lookup(request)
begin
lookup_instance = Jerakia::Launcher.new(request)
lookup_instance.invoke_from_file
lookup_instance.answer
rescue Jerakia::Error => e
Jerakia.fatal(e.message, e)
end
end
|