From 911d45c65bcdd9b8d53c8762ef0e62a5437f8734 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Tue, 02 Nov 2010 11:05:41 -0400
Subject: [PATCH] Added a new tool to force DNS Resyncs.

---
 server/mods-available/monitor_core_module.inc.php |   91 ++++++++++++++++++++++-----------------------
 1 files changed, 45 insertions(+), 46 deletions(-)

diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php
index dcdeac7..4555387 100644
--- a/server/mods-available/monitor_core_module.inc.php
+++ b/server/mods-available/monitor_core_module.inc.php
@@ -53,7 +53,7 @@
 		/*
          * Do the monitor every n minutes and write the result to the db
 		*/
-		$min = date('i');
+		$min = @date('i');
 		if (($min % $this->interval) == 0) {
 			$this->doMonitor();
 		}
@@ -921,20 +921,17 @@
              * Then test the upgrade.
              * if there is any output, then there is a needed update
 			*/
-			$emergeData = shell_exec('emerge -puDNt --color n --nospinner --quiet world');
+			$emergeData = shell_exec('glsa-check -t affected');
 			if ($emergeData == '') {
 				/* There is nothing to update! */
 				$state = 'ok';
+				$data['output'] = 'No unapplied GLSA\'s found on the system.';
 			}
 			else {
 				/* There is something to update! */
-				$state = 'warning';
+				$state = 'info';
+				$data['output'] = shell_exec('glsa-check -pv --nocolor affected 2>/dev/null');
 			}
-
-			/*
-             * Fetch the output
-			*/
-			$data['output'] = shell_exec('emerge -pvuDNt --color n --nospinner world');
 		}
 		else {
 			/*
@@ -1085,49 +1082,51 @@
 		/*
 		 * Check, if we have mpt-status installed (LSIsoftware-raid)
 		*/
-		system('which mpt-status', $retval);
-		if($retval === 0) {
-			/*
-             * Fetch the output
-			*/
-			$data['output'] = shell_exec('mpt-status --autoload -n');
-
-			/*
-             * Then calc the state.
-			*/
-			$state = 'ok';
-			foreach ($data['output'] as $item) {
+		if(file_exists('/proc/mpt/summary')) {
+			system('which mpt-status', $retval);
+			if($retval === 0) {
 				/*
-				 * The output contains information for every RAID and every HDD.
-				 * We only need the state of the RAID
+				* Fetch the output
 				*/
-				if (strpos($item, 'raidlevel:') !== false) {
+				$data['output'] = shell_exec('mpt-status --autoload -n');
+
+				/*
+				* Then calc the state.
+				*/
+				$state = 'ok';
+				foreach ($data['output'] as $item) {
 					/*
-					 * We found a raid, process the state of it
+					* The output contains information for every RAID and every HDD.
+					* We only need the state of the RAID
 					*/
-					if (strpos($item, ' ONLINE ') !== false) {
-						$this->_setState($state, 'ok');
-					}
-					elseif (strpos($item, ' OPTIMAL ') !== false) {
-						$this->_setState($state, 'ok');
-					}
-					elseif (strpos($item, ' INITIAL ') !== false) {
-						$this->_setState($state, 'info');
-					}
-					elseif (strpos($item, ' INACTIVE ') !== false) {
-						$this->_setState($state, 'critical');
-					}
-					elseif (strpos($item, ' RESYNC ') !== false) {
-						$this->_setState($state, 'info');
-					}
-					elseif (strpos($item, ' DEGRADED ') !== false) {
-						$this->_setState($state, 'critical');
-					}
-					else {
-						/* we don't know the state. so we set the state to critical, that the
-						 * admin is warned, that something is wrong
+					if (strpos($item, 'raidlevel:') !== false) {
+						/*
+						* We found a raid, process the state of it
 						*/
-						$this->_setState($state, 'critical');
+						if (strpos($item, ' ONLINE ') !== false) {
+							$this->_setState($state, 'ok');
+						}
+						elseif (strpos($item, ' OPTIMAL ') !== false) {
+							$this->_setState($state, 'ok');
+						}
+						elseif (strpos($item, ' INITIAL ') !== false) {
+							$this->_setState($state, 'info');
+						}
+						elseif (strpos($item, ' INACTIVE ') !== false) {
+							$this->_setState($state, 'critical');
+						}
+						elseif (strpos($item, ' RESYNC ') !== false) {
+							$this->_setState($state, 'info');
+						}
+						elseif (strpos($item, ' DEGRADED ') !== false) {
+							$this->_setState($state, 'critical');
+						}
+						else {
+							/* we don't know the state. so we set the state to critical, that the
+							* admin is warned, that something is wrong
+							*/
+							$this->_setState($state, 'critical');
+						}
 					}
 				}
 			}

--
Gitblit v1.9.1