class Naginata::Configuration

Public Class Methods

env() click to toggle source
# File lib/naginata/configuration.rb, line 12
def self.env
  @env ||= new
end
new(config = nil) click to toggle source
# File lib/naginata/configuration.rb, line 8
def initialize(config = nil)
  @config ||= config
end

Public Instance Methods

add_filter(type, values) click to toggle source
# File lib/naginata/configuration.rb, line 52
def add_filter(type, values)
  filters << Filter.new(type, values)
end
backend() click to toggle source
# File lib/naginata/configuration.rb, line 72
def backend
  SSHKit
end
configure_backend() click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/naginata/configuration.rb, line 56
def filter list
  filters.reduce(list) { |l,f| f.filter l }
end
filter_service(list) click to toggle source
# File lib/naginata/configuration.rb, line 60
def filter_service list
  filters.reduce(list) { |l,f| f.filter_service l }
end
host(host, options = {}) click to toggle source
# 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() click to toggle source
# File lib/naginata/configuration.rb, line 32
def keys
  config.keys
end
nagios_server(name) click to toggle source

@ToDo second argment for server specific options

# File lib/naginata/configuration.rb, line 37
def nagios_server(name)
  nagios_servers << NagiosServer.new(name)
end
nagios_servers() click to toggle source
# File lib/naginata/configuration.rb, line 64
def nagios_servers
  @nagios_servers ||= []
end
services() click to toggle source
# File lib/naginata/configuration.rb, line 68
def services
  @services ||= []
end
set(key, value) click to toggle source
# File lib/naginata/configuration.rb, line 16
def set(key, value)
  config[key] = value
end
set_if_empty(key, value) click to toggle source
# File lib/naginata/configuration.rb, line 20
def set_if_empty(key, value)
  config[key] = value unless config.has_key? key
end
timestamp() click to toggle source
# File lib/naginata/configuration.rb, line 48
def timestamp
  @timestamp ||= Time.now.utc
end

Private Instance Methods

config() click to toggle source
# File lib/naginata/configuration.rb, line 95
def config
  @config ||= Hash.new
end
filters() click to toggle source
# File lib/naginata/configuration.rb, line 91
def filters
  @filters ||= []
end