From bc963bc1f5611c78a319ddb77efb0037cc63768c Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Mon, 18 Oct 2010 03:41:41 -0400
Subject: [PATCH] Fixed problem in LSI raid controller detection code.
---
server/mods-available/monitor_core_module.inc.php | 78 ++++++++++++++++++++-------------------
1 files changed, 40 insertions(+), 38 deletions(-)
diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php
index 2260eef..a28d8f6 100644
--- a/server/mods-available/monitor_core_module.inc.php
+++ b/server/mods-available/monitor_core_module.inc.php
@@ -1085,49 +1085,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(is_file('/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