Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Nagios::Object(3)     User Contributed Perl Documentation    Nagios::Object(3)

NAME
       Nagios::Object -	Creates	perl objects to	represent Nagios objects

DESCRIPTION
       This module contains the	code for creating perl objects to represent
       any of the Nagios objects.  All of the perl classes are auto-generated
       at compile-time,	so it's	pretty trivial to add new attributes or	even
       entire objects.	The following is a list	of currently supported
       classes:

	Nagios::TimePeriod
	Nagios::Command
	Nagios::Contact
	Nagios::ContactGroup
	Nagios::Host
	Nagios::Service
	Nagios::HostGroup
	Nagios::ServiceEscalation
	Nagios::HostDependency
	Nagios::HostEscalation
	Nagios::HostGroupEscalation
	Nagios::ServiceDependency
	-- next	two are	for status.dat in Nagios 2.x
	Nagios::Info
	Nagios::Program

EXAMPLE
	use Nagios::Object;
	my $generic_host = Nagios::Host->new(
	   register			=> 0,
	   parents			=> undef,
	   check_command		=> $some_command,
	   max_check_attempts		=> 3,
	   checks_enabled		=> 1,
	   event_handler		=> $some_command,
	   event_handler_enabled	=> 0,
	   low_flap_threshold	       => 0,
	   high_flap_threshold	       => 0,
	   flap_detection_enabled	=> 0,
	   process_perf_data		=> 1,
	   retain_status_information	=> 1,
	   retain_nonstatus_information	=> 1,
	   notification_interval	=> $timeperiod,
	   notification_options		=> [qw(d u r)],
	   notifications_enabled	=> 1,
	   stalking_options		=> [qw(o d u)]
	);

	# this will automatically 'use'	$generic_host
	my $localhost =	$generic_host->new(
	   host_name =>	"localhost",
	   alias     =>	"Loopback",
	   address   =>	"127.0.0.1"
	);

	my $hostname = $localhost->host_name();
	printf "max check attempts for $hostname is %s.\n",
	    $localhost->max_check_attempts;

	$localhost->set_event_handler(
	    Nagios::Command->new(
		command_name =>	"new_event_handler",
		command_line =>	"/bin/true"
	    )
	);

METHODS
       new()
	   Create a new	object of one of the types listed above.

	   Calling new() on an existing	object will use	the LHS	object as the
	   template for	the object being created.   This is mainly useful for
	   creating objects without involving Nagios::Object::Config (like in
	   the test suite).

	    Nagios::Host->new( ... );

       dump()
	   Output a Nagios define { } block from an object.  This is still
	   EXPERIMENTAL, but may eventually be robust enough to	use for	a
	   configuration GUI.	Passing	in a single true argument will tell it
	   to flatten the object inheritance on	dump.

	    print $object->dump();
	    print $object->dump(1); # flatten

       name()
	   This	method is common to all	classes	created	by this	module.	 It
	   should always return	the textual name for an	object.	 It is used
	   internally by the Nagios::Object modules to allow polymorphism
	   (which is what makes	this module so compact).  This is the only way
	   to retrieve the name	of a template, since they are identified by
	   their "name"	field.

	    my $svc_desc = $service->name;
	    my $hostname = $host->name;

	   Which is just short for:

	    my $svc_desc = $service->service_description;
	    my $hostname = $service->host_name;

       register()
	   Returns true/undef to indicate whether the calling object is
	   registerable	or not.

	    if ( $object->register ) { print $object->name, " is registerable."	}

       has_attribute()
	   Returns true/undef to indicate whether the calling object has the
	   attribute specified as the only argument.

	    # check to see if $object has attribute "command_line"
	    die	if ( !$object->has_attribute("command_line") );

       list_attributes()
	   Returns a list of valid attributes for the calling object.

	    my @host_attributes	= $host->list_attributes();

       attribute_type()
	   Returns the type of data expected by	the object's set_ method for
	   the given attribute.	 For some fields like notification_options, it
	   may return "char_flag."

	   For "name" attributes, it will simply return	whatever %setup_data
	   contains.

	   This	method needs some TLC ...

	    my $type = $host->attribute_type("notification_period");

       attribute_is_list()
	   Returns true	if the attribute is supposed to	be a list (ARRAYREF).

	    if ( $object->attribute_is_list("members") ) {
	       $object->set_members( [$member] );
	    } else {
	       $object->set_members( $member );
	    }

AUTHOR
       Al Tobey	<tobeya@cpan.org>

       Thank you to the	fine people of #perl on	freenode.net for helping me
       with some hairy code and	silly optimizations.

WARNINGS
       See AUTHOR.

perl v5.24.1			  2017-07-03		     Nagios::Object(3)

NAME | DESCRIPTION | EXAMPLE | METHODS | AUTHOR | WARNINGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Nagios::Object&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help