#!/usr/bin/perl

use strict;

use NOCpulse::SMON;
use NOCpulse::Gritch;
use NOCpulse::Config;
use NOCpulse::Debug;
use NOCpulse::TimeSeriesQueue;
use NOCpulse::StateChangeQueue;
use NOCpulse::NotificationQueue;
#use NOCpulse::SNMPQueue;
use NOCpulse::CommandOutputQueue;
use Getopt::Long;

my $cfg = new NOCpulse::Config;
my $debug = new NOCpulse::Debug();
my $gritcher = new NOCpulse::Gritch($cfg->get('queues', 'gritchdb'));


my $debuglevel = 0;
my $loglevel   = 1;

&GetOptions('debug=i'    => \$debuglevel,
            'loglevel=i' => \$loglevel);

my $smon = NOCpulse::SMON->new( Debug => $debug, DebugLevel => $debuglevel,
		      LogLevel => $loglevel, Config => $cfg, Gritcher => $gritcher );

$smon->addQueue( NOCpulse::NotificationQueue->new( Debug => $debug, Config => $cfg, Gritcher => $gritcher ) );
$smon->addQueue( NOCpulse::CommandOutputQueue->new( Debug => $debug, Config => $cfg, Gritcher => $gritcher ) );
$smon->addQueue( NOCpulse::StateChangeQueue->new( Debug => $debug, Config => $cfg, Gritcher => $gritcher ) );
$smon->addQueue( NOCpulse::TimeSeriesQueue->new( Debug => $debug, Config => $cfg, Gritcher => $gritcher ) );

# Disabling fetching of SNMP alerts in the RHN Satellite context, as that
# notif method is not supported. Uncomment to reenable.
#$smon->addQueue( NOCpulse::SNMPQueue->new( Debug => $debug, Config => $cfg, Gritcher => $gritcher));

$smon->go();

