Class: Puppet::Provider::Naginator
- Inherits:
-
ParsedFile
- Object
- Puppet::Provider
- ParsedFile
- Puppet::Provider::Naginator
- Defined in:
- lib/vendor/puppet/provider/naginator.rb
Overview
The base class for all Naginator providers.
Constant Summary collapse
- NAME_STRING =
"## --PUPPET_NAME-- (called '_naginator_name' in the manifest)"
Constants included from Util
Util::AbsolutePathPosix, Util::AbsolutePathWindows
Constants included from Util::Docs
Instance Attribute Summary
Attributes inherited from ParsedFile
Attributes included from Util::FileParsing
#line_separator, #trailing_separator
Attributes inherited from Puppet::Provider
Attributes included from Util::Docs
Class Method Summary collapse
-
.nagios_type ⇒ Object
Retrieve the associated class from Nagios::Base.
- .parse(text) ⇒ Object
- .skip_record?(record) ⇒ Boolean
- .to_file(records) ⇒ Object
- .valid_attr?(klass, attr_name) ⇒ Boolean
Instance Method Summary collapse
-
#initialize(resource = nil) ⇒ Naginator
constructor
A new instance of Naginator.
Methods inherited from ParsedFile
backup_target, clean, clear, #create, #destroy, #exists?, filetype, filetype=, #flush, flush, flush_target, header, initvars, instances, match_providers_with_resources, mk_resource_methods, modified, prefetch, #prefetch, prefetch_all_targets, prefetch_target, record?, #record_type, resource_type=, retrieve, target_object, target_records, targets
Methods included from Util::FileParsing
#clear_records, #fields, #handle_record_line, #handle_text_line, #lines, #parse, #parse_line, #record_line, #records?, #text_line, #to_file, #to_line, #valid_attr?
Methods included from Util
absolute_path?, activerecord_version, benchmark, binread, chuser, classproxy, #execfail, #execpipe, execute, execute_posix, execute_windows, logmethods, memory, path_to_uri, proxy, replace_file, safe_posix_fork, symbolize, symbolizehash, symbolizehash!, synchronize_on, thinmark, #threadlock, uri_to_path, wait_for_output, which, withumask
Methods included from Util::POSIX
#get_posix_field, #gid, #idfield, #methodbyid, #methodbyname, #search_posix_field, #uid
Methods inherited from Puppet::Provider
#<=>, #clear, command, #command, commands, declared_feature?, default?, defaultfor, #get, initvars, instances, make_command_methods, mk_resource_methods, mkmodelmethods, #name, optional_commands, #set, specificity, supports_parameter?, #to_s
Methods included from Util::Logging
#clear_deprecation_warnings, #deprecation_warning, #send_log
Methods included from Util::Docs
#desc, #dochook, #doctable, #markdown_definitionlist, #markdown_header, #nodoc?, #pad, scrub
Methods included from Util::Warnings
clear_warnings, notice_once, warnonce
Methods included from Confiner
#confine, #confine_collection, #suitable?
Methods included from Util::Errors
#adderrorcontext, #devfail, #error_context, #exceptwrap, #fail
Constructor Details
#initialize(resource = nil) ⇒ Naginator
Returns a new instance of Naginator.
49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/vendor/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 |
Class Method Details
.nagios_type ⇒ Object
Retrieve the associated class from Nagios::Base.
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/vendor/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 |
.parse(text) ⇒ Object
23 24 25 26 27 |
# File 'lib/vendor/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) ⇒ Boolean
41 42 43 |
# File 'lib/vendor/puppet/provider/naginator.rb', line 41 def self.skip_record?(record) false end |
.to_file(records) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/vendor/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) ⇒ Boolean
45 46 47 |
# File 'lib/vendor/puppet/provider/naginator.rb', line 45 def self.valid_attr?(klass, attr_name) nagios_type.parameters.include?(attr_name) end |