From 5ebe6b44c08a452548b318d52199fa806c0dd360 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Mon, 1 Feb 2016 23:46:28 +0000 Subject: [PATCH] Code clean up --- includes/functions.php | 3 ++- validate.php | 44 ++++++++++++++++++++++++------------------ 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/includes/functions.php b/includes/functions.php index c49857bca0..d3dad3911a 100644 --- a/includes/functions.php +++ b/includes/functions.php @@ -1373,7 +1373,7 @@ function dnslookup($device,$type=false,$return=false) { * **/ -class RRDReursiveFilterIterator extends \RecursiveFilterIterator { +class RRDRecursiveFilterIterator extends \RecursiveFilterIterator { public function accept() { $filename = $this->current()->getFilename(); if ($filename[0] === '.') { @@ -1402,6 +1402,7 @@ class RRDReursiveFilterIterator extends \RecursiveFilterIterator { **/ function rrdtest($path, &$stdOutput, &$stdError) { + global $config; //rrdtool info $command = $config['rrdtool'].' info '.escapeshellarg($path); $process = proc_open( diff --git a/validate.php b/validate.php index 8d64262f7f..f2fe619e32 100755 --- a/validate.php +++ b/validate.php @@ -271,36 +271,42 @@ foreach ($modules as $module) { break; case 'rrdcheck': - $directory = new RecursiveDirectoryIterator($config['rrd_dir']); - $filter = new RRDReursiveFilterIterator($directory); - $iterator = new RecursiveIteratorIterator($filter); - $total = iterator_count($iterator); - $iterator->rewind(); + // Loop through the rrd_dir + $rrd_directory = new RecursiveDirectoryIterator($config['rrd_dir']); + // Filter out any non rrd files + $rrd_directory_filter = new RRDRecursiveFilterIterator($rrd_directory); + $rrd_iterator = new RecursiveIteratorIterator($rrd_directory_filter); + $rrd_total = iterator_count($rrd_iterator); + $rrd_iterator->rewind(); // Rewind iterator in case iterator_count left iterator in unknown state - echo 'Scanning '.$total.' rrd files...'.PHP_EOL; + echo "\nScanning ".$rrd_total." rrd files in ".$config['rrd_dir']."...\n"; - $count = 0; + // Count loops so we can push status to the user + $loopcount = 0; $screenpad = 0; - foreach ($iterator as $filename => $file) { + foreach ($rrd_iterator as $filename => $file) { - $testResult = rrdtest($filename, $output, $error); + $rrd_test_result = rrdtest($filename, $output, $error); - $count++; - if (($count % 100) == 0 ) { - echo "\033[".$screenpad.'D'; - $echo = 'Status: '.$count.'/'.$total; - echo $echo; - $screenpad = strlen($echo); + $loopcount++; + if (($loopcount % 50) == 0 ) { + //This lets us update the previous status update without spamming in most consoles + echo "\033[".$screenpad."D"; + $test_status = 'Status: '.$loopcount.'/'.$rrd_total; + echo $test_status; + $screenpad = strlen($test_status); } - if ($testResult > 0) { - echo "\033[".$screenpad.'D'; - echo PHP_EOL.'Error parsing "'.$filename.'" '.$error.PHP_EOL; + // A non zero result means there was some kind of error + if ($rrd_test_result > 0) { + echo "\033[".$screenpad."D"; + print_fail('Error parsing "'.$filename.'" RRD '.trim($error)); $screenpad = 0; } - } + echo "\033[".$screenpad."D"; + echo "Status: ".$loopcount."/".$rrd_total." - Complete\n"; break; }//end switch