From d7f1c84e3e72ee77893fe08efac070b36df0ff76 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Sun, 29 Nov 2015 11:59:00 +0100
Subject: [PATCH] FS#3885 - LSI MegaRaid monitoring (code) (cwispy)

---
 .../classes/cron.d/100-monitor_raid.inc.php   | 21 +++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/server/lib/classes/cron.d/100-monitor_raid.inc.php b/server/lib/classes/cron.d/100-monitor_raid.inc.php
index 3480908e30..c7d8c4e90d 100644
--- a/server/lib/classes/cron.d/100-monitor_raid.inc.php
+++ b/server/lib/classes/cron.d/100-monitor_raid.inc.php
@@ -275,6 +275,27 @@ class cronjob_monitor_raid extends cronjob {
 			}
 		}
 
+		/*
+		* LSI MegaRaid
+		*/
+		system('which megacli', $retval);
+		system('which megacli64', $retval64);
+		if($retval === 0 || $retval64 === 0) {
+			$binary=@($retval === 0)?'megacli':'megacli64';
+			$state = 'ok';
+			$data['output'] = shell_exec($binary.' -LDInfo -Lall -aAll');
+			if (strpos($data['output'], 'Optimal') !== false) {
+				$this->_tools->_setState($state, 'ok');
+			} else if (strpos($data['output'], 'Degraded') !== false) {
+				$this->_tools->_setState($state, 'critical');
+			} else if (strpos($data['output'], 'Offline') !== false) {
+				$this->_tools->_setState($state, 'critical');
+			} else {
+				$this->_tools->_setState($state, 'critical');
+			}
+		}
+
+
 		$res = array();
 		$res['server_id'] = $server_id;
 		$res['type'] = $type;
-- 
GitLab