|
/Users/cpanrun/depot/main/contrib-patched/perl/CPAN/src/Nagios-Object/blib/lib/Nagios/Object.pm |
Nagios::Object
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
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)]
);
my $localhost = Nagios::Host->new(
use => $generic_host,
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"
)
);
new()dump()print $object->dump();
use()name()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()
if ( $object->register ) { print $object->name, " is registerable." }
has_attribute()
# check to see if $object has attribute "command_line"
die if ( !$object->has_attribute("command_line") );
list_attributes()my @host_attributes = $host->list_attributes();
attribute_type()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()
if ( $object->attribute_is_list("members") ) {
$object->set_members( [$member] );
} else {
$object->set_members( $member );
}
attribute_allows_undef()NOTE: this may go away, since I'm not sure if it's really useful at all.
my $answer = $object->attribute_allows_undef("command_line");
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.
See AUTHOR.
|
/Users/cpanrun/depot/main/contrib-patched/perl/CPAN/src/Nagios-Object/blib/lib/Nagios/Object.pm |