Class: Naginata::Configuration

Inherits:
Object
  • Object
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

.envObject



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

#backendObject



72
73
74
# File 'lib/naginata/configuration.rb', line 72

def backend
  SSHKit
end

#configure_backendObject



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

#keysObject



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_serversObject



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

def nagios_servers
  @nagios_servers ||= []
end

#servicesObject



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

#timestampObject



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

def timestamp
  @timestamp ||= Time.now.utc
end