class Puppet::Provider::Naginator

The base class for all Naginator providers.

Constants

NAME_STRING

Public Class Methods

nagios_type() click to toggle source

Retrieve the associated class from Nagios::Base.

# File lib/puppet/provider/naginator.rb, line 9
def self.nagios_type
  unless @nagios_type
    name = resource_type.name.to_s.sub(/^nagios_/, '')
    unless @nagios_type = Nagios::Base.type(name.to_sym)
      raise Puppet::DevError, "Could not find nagios type '#{name}'"
    end

    # And add our 'ensure' settings, since they aren't a part of
    # Naginator by default
    @nagios_type.send(:attr_accessor, :ensure, :target, :on_disk)
  end
  @nagios_type
end
new(resource = nil) click to toggle source
# File lib/puppet/provider/naginator.rb, line 49
def initialize(resource = nil)
  if resource.is_a?(Nagios::Base)
    # We don't use a duplicate here, because some providers (ParsedFile, at least)
    # use the hash here for later events.
    @property_hash = resource
  elsif resource
    @resource = resource if resource
    # LAK 2007-05-09: Keep the model stuff around for backward compatibility
    @model = resource
    @property_hash = self.class.nagios_type.new
  else
    @property_hash = self.class.nagios_type.new
  end
end
parse(text) click to toggle source
# File lib/puppet/provider/naginator.rb, line 23
def self.parse(text)
    Nagios::Parser.new.parse(text.gsub(NAME_STRING, "_naginator_name"))
rescue => detail
    raise Puppet::Error, "Could not parse configuration for #{resource_type.name}: #{detail}"
end
skip_record?(record) click to toggle source
# File lib/puppet/provider/naginator.rb, line 41
def self.skip_record?(record)
  false
end
to_file(records) click to toggle source
# File lib/puppet/provider/naginator.rb, line 29
def self.to_file(records)
  header + records.collect { |record|
      # Remap the TYPE_name or _naginator_name params to the
      # name if the record is a template (register == 0)
      if record.to_s =~ /register\s+0/
          record.to_s.sub("_naginator_name", "name").sub(record.type.to_s + "_name", "name")
      else
          record.to_s.sub("_naginator_name", NAME_STRING)
      end
  }.join("\n")
end
valid_attr?(klass, attr_name) click to toggle source
# File lib/puppet/provider/naginator.rb, line 45
def self.valid_attr?(klass, attr_name)
  nagios_type.parameters.include?(attr_name)
end