Class: Naginata::Configuration
- Inherits:
-
Object
- Object
- Naginata::Configuration
show all
- Defined in:
- lib/naginata/configuration.rb,
lib/naginata/configuration/filter.rb,
lib/naginata/configuration/service.rb,
lib/naginata/configuration/nagios_server.rb
Defined Under Namespace
Classes: Filter, Host, NagiosServer, Service
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(config = nil) ⇒ Configuration
Returns a new instance of Configuration.
8
9
10
|
# File 'lib/naginata/configuration.rb', line 8
def initialize(config = nil)
@config ||= config
end
|
Class Method Details
.env ⇒ Object
12
13
14
|
# File 'lib/naginata/configuration.rb', line 12
def self.env
@env ||= new
end
|
Instance Method Details
#add_filter(type, values) ⇒ Object
52
53
54
|
# File 'lib/naginata/configuration.rb', line 52
def add_filter(type, values)
filters << Filter.new(type, values)
end
|
#backend ⇒ Object
72
73
74
|
# File 'lib/naginata/configuration.rb', line 72
def backend
SSHKit
end
|
76
77
78
79
80
81
82
83
84
85
86
|
# File 'lib/naginata/configuration.rb', line 76
def configure_backend
backend.configure do |sshkit|
sshkit.format = fetch(:format)
sshkit.output_verbosity = fetch(:log_level)
sshkit.backend = fetch(:sshkit_backend, SSHKit::Backend::Netssh)
sshkit.backend.configure do |backend|
backend.pty = fetch(:pty)
backend.ssh_options = (backend.ssh_options || {}).merge(fetch(:ssh_options,{}))
end
end
end
|
#fetch(key, default = nil, &block) ⇒ Object
24
25
26
27
28
29
30
|
# File 'lib/naginata/configuration.rb', line 24
def fetch(key, default=nil, &block)
if block_given?
config.fetch(key, &block)
else
config.fetch(key, default)
end
end
|
#filter(list) ⇒ Object
56
57
58
|
# File 'lib/naginata/configuration.rb', line 56
def filter list
filters.reduce(list) { |l,f| f.filter l }
end
|
#filter_service(list) ⇒ Object
60
61
62
|
# File 'lib/naginata/configuration.rb', line 60
def filter_service list
filters.reduce(list) { |l,f| f.filter_service l }
end
|
#host(host, options = {}) ⇒ Object
41
42
43
44
45
46
|
# File 'lib/naginata/configuration.rb', line 41
def host(host, options = {})
ArgumentError "on: is required option" unless options[:on]
nagios = options[:on]
services << Host.new(host, on: nagios)
Array(options[:services]).each { |s| services << Service.new(s, host: host, on: nagios) }
end
|
#keys ⇒ Object
32
33
34
|
# File 'lib/naginata/configuration.rb', line 32
def keys
config.keys
end
|
#nagios_server(name) ⇒ Object
37
38
39
|
# File 'lib/naginata/configuration.rb', line 37
def nagios_server(name)
nagios_servers << NagiosServer.new(name)
end
|
#nagios_servers ⇒ Object
64
65
66
|
# File 'lib/naginata/configuration.rb', line 64
def nagios_servers
@nagios_servers ||= []
end
|
#services ⇒ Object
68
69
70
|
# File 'lib/naginata/configuration.rb', line 68
def services
@services ||= []
end
|
#set(key, value) ⇒ Object
16
17
18
|
# File 'lib/naginata/configuration.rb', line 16
def set(key, value)
config[key] = value
end
|
#set_if_empty(key, value) ⇒ Object
20
21
22
|
# File 'lib/naginata/configuration.rb', line 20
def set_if_empty(key, value)
config[key] = value unless config.has_key? key
end
|
#timestamp ⇒ Object
48
49
50
|
# File 'lib/naginata/configuration.rb', line 48
def timestamp
@timestamp ||= Time.now.utc
end
|