Monitoring-Availability

 view release on metacpan or  search on metacpan

t/31-availability-host_with_services.t  view on Meta::CPAN

#!/usr/bin/env perl

#########################

use strict;
use Test::More;
use Data::Dumper;

# checks against localtime will fail otherwise
use POSIX qw(tzset);
$ENV{'TZ'} = "CET";
POSIX::tzset();

BEGIN {
    if( $^O eq 'MSWin32' ) {
        plan skip_all => 'windows is not supported';
    }
    else {
        plan tests => 19;
    }

    require 't/00_test_utils.pm';
    import TestUtils;
}

use_ok('Monitoring::Availability');

#########################
# read logs from data
my $logs;
while(my $line = <DATA>) {
    $logs .= $line;
}

my $expected = {
      'hosts' => {
        'n0_test_host_001' => { 'time_down' => 0, 'time_indeterminate_notrunning' => 0, 'scheduled_time_down' => 0, 'scheduled_time_up' => 0, 'time_unreachable' => 0, 'time_indeterminate_nodata' => 396597, 'time_indeterminate_outside_timeperiod' => 0...
      'services' => {
        'n0_test_host_001'      => {
            'n0_test_flap_19'       => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
            'n0_test_pending_06'    => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
            'n0_test_random_03'     => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
            'n0_test_ok_05'         => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
            'n0_test_unknown_04'    => { 'time_ok' => 0, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' => 3965...
            'n0_test_random_13'     => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
            'n0_test_ok_14'         => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
            'n0_test_ok_17'         => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
            'n0_test_random_02'     => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
            'n0_test_ok_12'         => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
            'n0_test_ok_08'         => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
            'n0_test_warning_18'    => { 'time_ok' => 0, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' => 3965...
            'n0_test_ok_11'         => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
            'n0_test_ok_07'         => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
            'n0_test_flap_00'       => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
            'n0_test_ok_10'         => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
            'n0_test_ok_09'         => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
            'n0_test_ok_01'         => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
            'n0_test_warning_16'    => { 'time_ok' => 0, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' => 3965...
            'n0_test_random_15'     => { 'time_ok' => 208203, 'scheduled_time_critical' => 0, 'scheduled_time_unknown' => 0, 'scheduled_time_warning' => 0, 'scheduled_time_ok' => 0, 'time_indeterminate_notrunning' => 0, 'time_indeterminate_nodata' =>...
    }
  }
};

my $expected_condensed_log = [
    { 'start' => '2010-01-22 00:00:00', 'end' => '2010-01-22 22:11:09', 'duration' => '0d 22h 11m 9s',  'type' => 'HOST UP (HARD)',     'plugin_output' => 'n0_test_host_001 (checked by mo) OK: ok hostcheck', 'class' => 'UP', 'in_downtime' => 0 },
];

my $expected_full_log = [
    { 'start' => '2010-01-08 15:50:52', 'end' => '2010-01-17 14:58:55', 'duration' => '8d 23h 8m 3s',   'type' => 'PROGRAM (RE)START',  'plugin_output' => 'Program start',                 'class' => 'INDETERMINATE' },
    { 'start' => '2010-01-17 14:58:55', 'end' => '2010-01-17 17:02:26', 'duration' => '0d 2h 3m 31s',   'type' => 'PROGRAM (RE)START',  'plugin_output' => 'Program start',                 'class' => 'INDETERMINATE' },
    { 'start' => '2010-01-17 17:02:26', 'end' => '2010-01-17 17:02:28', 'duration' => '0d 0h 0m 2s',    'type' => 'PROGRAM END',        'plugin_output' => 'Normal program termination',    'class' => 'INDETERMINATE' },



( run in 2.604 seconds using v1.01-cache-2.11-cpan-14f38c9f855 )