diff --git a/snmp/poudriere b/snmp/poudriere index 6c20260e0..2a76a929c 100755 --- a/snmp/poudriere +++ b/snmp/poudriere @@ -10,7 +10,7 @@ poudriere - LibreNMS JSON style SNMP extend for monitoring Poudriere =head1 SYNOPSIS -poudriere [B<-w>] [B<-b>] [B<-o> ] [B<-a>]x +poudriere [B<-w>] [B<-b>] [B<-o> ] [B<-a>] [B<-z>] poudriere --help|-h @@ -38,6 +38,11 @@ Write the results out. Print out the compressed data if GZip+Base64 is smaller. +=head2 -z + +Zero the stats from `poudriere status` if it the status for a jail/ports/set +set is not not building. + =head2 -o Where to write the results to. Defaults to '/var/cache/poudriere.json', @@ -120,11 +125,13 @@ my $compress; my $version; my $help; my $history; +my $zero_non_build; GetOptions( a => \$history, 'o=s' => \$cache_base, w => \$write, b => \$compress, + z => \$zero_non_build, v => \$version, version => \$version, h => \$help, @@ -291,6 +298,17 @@ if ( $? == 0 ) { $found->{FETCH}, $found->{REMAIN}, $found->{TIME}, $found->{LOGS} ) = split( / +/, $status_split[$status_split_int], 14 ); + if ( $zero_non_build && $found->{STATUS} !~ /build/ ) { + $found->{QUEUE} = 0; + $found->{BUILT} = 0; + $found->{FAIL} = 0; + $found->{SKIP} = 0; + $found->{IGNORE} = 0; + $found->{FETCH} = 0; + $found->{REMAIN} = 0; + $found->{TIME} = 0; + } + if ( $found->{STATUS} ne 'done' ) { $data->{not_done} = 1; } @@ -345,7 +363,7 @@ if ( $? == 0 ) { if ( $item eq 'TIME' ) { $found->{$item} = time_to_seconds( $found->{$item} ); } - if ( $item =~ /^\d+$/ ) { + if ( $found->{$item} =~ /^\d+$/ ) { $data->{stats}{$item} += $found->{$item}; } }