From fb3a98c0f06fb14a188e5a020936768fa04cb205 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Fri, 22 Oct 2010 06:24:31 -0400
Subject: [PATCH] Merged serveral bugfixes and new language files from stable branch (revisions 2055 - 2093)

---
 server/mods-available/monitor_core_module.inc.php |   80 ++++++++++++++++++++-------------------
 1 files changed, 41 insertions(+), 39 deletions(-)

diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php
index c687998..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();
 		}
@@ -1082,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