X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=torrus%2Fbin%2Fsnmpfailures.in;fp=torrus%2Fbin%2Fsnmpfailures.in;h=f46cc2d4ca13d8087b9aafe35ec333edd1053bfe;hp=0000000000000000000000000000000000000000;hb=74e058c8a010ef6feb539248a550d0bb169c1e94;hpb=35359a73152b3d7a9ad5e3d37faf81f6fedb76e8 diff --git a/torrus/bin/snmpfailures.in b/torrus/bin/snmpfailures.in new file mode 100644 index 000000000..f46cc2d4c --- /dev/null +++ b/torrus/bin/snmpfailures.in @@ -0,0 +1,98 @@ +#!@PERL@ -w +# Copyright (C) 2010 Stanislav Sinyagin +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + +# $Id: snmpfailures.in,v 1.1 2010-12-27 00:04:03 ivan Exp $ +# Stanislav Sinyagin + +BEGIN { require '@torrus_config_pl@'; } + +use strict; +use Getopt::Long; +use JSON; + +use Torrus::SiteConfig; +use Torrus::DB; +use Torrus::Log; +use Torrus::SNMP_Failures; + +exit(1) if not Torrus::SiteConfig::verify(); + + +my $tree; +my $print_details; + +my $help_needed; + + +my $ok = GetOptions('tree=s' => \$tree, + 'details' => \$print_details, + 'help' => \$help_needed); + +if( not $ok or not $tree or + $help_needed or scalar(@ARGV) > 0 ) +{ + print STDERR "Usage: $0 --tree=NAME [options...]\n", + "Options:\n", + " --tree=NAME tree name\n", + " --details print failure details\n", + " --help this help message\n"; + exit 1; +} + + +if( not Torrus::SiteConfig::treeExists( $tree ) ) +{ + Error('Tree ' . $tree . ' does not exist'); + exit 1; +} + + +my $out = {}; + +&Torrus::DB::setSafeSignalHandlers(); + +my $nInstances = Torrus::SiteConfig::collectorInstances( $tree ); +for( my $instance = 0; $instance < $nInstances; $instance++ ) +{ + my $db_failures = new Torrus::SNMP_Failures( -Tree => $tree, + -Instance => $instance ); + + if( not defined( $db_failures ) ) + { + exit(1); + } + + + $db_failures->read( $out, -details => $print_details ); + undef $db_failures; +} + + +my $json = new JSON; +$json->canonical(); +$json->pretty(); +print $json->encode($out); + + +exit(0); + + +# Local Variables: +# mode: perl +# indent-tabs-mode: nil +# perl-indent-level: 4 +# End: