From 794082b48ad46127601acbb97bcf336f23adc347 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Mon, 30 May 2011 12:08:11 +0000
Subject: [PATCH] Fixed a Bug in the monitor is the LSI software raid software
 is installed but no LSI raid is configured.

---
 server/lib/classes/monitor_tools.inc.php | 52 ++++++++++++------------
 1 file changed, 27 insertions(+), 25 deletions(-)

diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php
index f5258e386e..3d178805a2 100644
--- a/server/lib/classes/monitor_tools.inc.php
+++ b/server/lib/classes/monitor_tools.inc.php
@@ -993,32 +993,34 @@ class monitor_tools {
 				 * Then calc the state.
 				 */
 				$state = 'ok';
-				foreach ($data['output'] as $item) {
-					/*
-					 * The output contains information for every RAID and every HDD.
-					 * We only need the state of the RAID
-					 */
-					if (strpos($item, 'raidlevel:') !== false) {
+				if(is_array($data['output'])) {
+					foreach ($data['output'] as $item) {
 						/*
-						 * We found a raid, process the state of it
-						 */
-						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');
+						* The output contains information for every RAID and every HDD.
+						* We only need the state of the RAID
+						*/
+						if (strpos($item, 'raidlevel:') !== false) {
+							/*
+							* We found a raid, process the state of it
+							*/
+							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');
+							}
 						}
 					}
 				}
-- 
GitLab