From 80bc102a82e451eaee97f5c11c11090c1129eb86 Mon Sep 17 00:00:00 2001 From: "Zane C. Bowers-Hadley" Date: Thu, 18 Jul 2024 07:11:50 -0500 Subject: [PATCH 1/2] add -a for .data.history --- snmp/poudriere | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/snmp/poudriere b/snmp/poudriere index 36244c4f5..6c20260e0 100755 --- a/snmp/poudriere +++ b/snmp/poudriere @@ -6,11 +6,11 @@ poudriere - LibreNMS JSON style SNMP extend for monitoring Poudriere =head1 VERSION -0.1.0 +0.2.0 =head1 SYNOPSIS -poudriere [B<-w>] [B<-b>] [B<-o> ] +poudriere [B<-w>] [B<-b>] [B<-o> ] [B<-a>]x poudriere --help|-h @@ -26,6 +26,10 @@ or if using cron... =head1 FLAGS +=head2 -a + +Include `poudriere status -a` as .data.history . + =head2 -w Write the results out. @@ -115,7 +119,9 @@ my $write; my $compress; my $version; my $help; +my $history; GetOptions( + a => \$history, 'o=s' => \$cache_base, w => \$write, b => \$compress, @@ -447,6 +453,13 @@ if ( $? == 0 ) { } } ## end elsif ( $line =~ /^\[.*\].*\:.*\|.*\:/ ) } ## end foreach my $line (@build_info_split) + + # + # include this history if asked to + # + if ($history) { + $data->{history} = `poudriere -N status -a 2> /dev/null`; + } } else { $to_return->{error} = 1; $to_return->{errorString} = 'non-zero exit for "poudriere status -f"'; From b2a4f4adda8342f5724866d232128a1ee4946246 Mon Sep 17 00:00:00 2001 From: "Zane C. Bowers-Hadley" Date: Sat, 20 Jul 2024 07:24:06 -0500 Subject: [PATCH 2/2] add -z --- snmp/poudriere | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) 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}; } }