Florian Schaal
2015-11-29 248d0eebf3d5d6eb2836c81b44795f5b71c4db9b
FS#3806 - HP Proliant / SmartArray RAID-Status incl. Code (PatrickR)
1 files modified
45 ■■■■■ changed files
server/lib/classes/cron.d/100-monitor_raid.inc.php 45 ●●●●● patch | view | raw | blame | history
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;