tbrehm
2011-05-30 794082b48ad46127601acbb97bcf336f23adc347
Fixed a Bug in the monitor is the LSI software raid software is installed but no LSI raid is configured.
1 files modified
52 ■■■■ changed files
server/lib/classes/monitor_tools.inc.php 52 ●●●● patch | view | raw | blame | history
server/lib/classes/monitor_tools.inc.php
@@ -993,32 +993,34 @@
                 * 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');
                            }
                        }
                    }
                }