From 248d0eebf3d5d6eb2836c81b44795f5b71c4db9b Mon Sep 17 00:00:00 2001 From: Florian Schaal <florian@schaal-24.de> Date: Sun, 29 Nov 2015 05:48:37 -0500 Subject: [PATCH] FS#3806 - HP Proliant / SmartArray RAID-Status incl. Code (PatrickR) --- server/lib/classes/cron.d/100-monitor_raid.inc.php | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 45 insertions(+), 0 deletions(-) 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 439ab8c..3480908 100644 --- a/server/lib/classes/cron.d/100-monitor_raid.inc.php +++ b/server/lib/classes/cron.d/100-monitor_raid.inc.php @@ -229,6 +229,51 @@ } } + /* + * HP Proliant + */ + system('which hpacucli', $retval); + if($retval === 0) { + $state = 'ok'; + $data['output'] = shell_exec('/usr/sbin/hpacucli ctrl all show config'); + $tmp = explode("\n", $data['output']); + if(is_array($tmp)) { + foreach ($tmp as $item) { + if (strpos($item, 'logicaldrive') !== false) { + if (strpos($item, 'OK') !== false) { + $this->_tools->_setState($state = 'ok'); + } elseif (strpos($item, 'Recovery Mode') !== false) { + $this->_tools->_setState($state = 'critical'); + break; + } elseif (strpos($item, 'Failed') !== false) { + $this->_tools->_setState($state = 'error'); + break; + } elseif (strpos($item, 'Recovering') !== false) { + $this->_tools->_setState($state = 'info'); + break; + } else { + $this->_tools->_setState($state = 'critical'); + } + } + if (strpos($item, 'physicaldrive') !== false) { + if (strpos($item, 'physicaldrive') !== false) { + if (strpos($item, 'OK') !== false) { + $this->_tools->_setState($state = 'ok'); + } elseif (strpos($item, 'Failed') !== false) { + $this->_tools->_setState($state = 'critical'); + break; + } elseif (strpos($item, 'Rebuilding') !== false) { + $this->_tools->_setState($state = 'info'); + break; + } else { + $this->_tools->_setState($state = 'critical'); + break; + } + } + } + } + } + } $res = array(); $res['server_id'] = $server_id; -- Gitblit v1.9.1