Subversion-Projekte lars-tiefland.nagios-php

Revision

Revision 84 | Revision 128 | Zur aktuellen Revision | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

<?php

    /**
     * @package nagios-php
     * @author Lars Tiefland <ltiefland@gmail.com>
     * @copyright 2013
     * @version $Rev: 86 $
     */

    // $Id: service.php 86 2013-01-02 13:28:36Z lars $

    /**
     * service
     * 
     * @package nagios-php
     * @author Lars Tiefland
     * @copyright 2012
     * @version $Rev: 86 $
     * @access public
     */
    class service
    {
        public $display_name;
        public $service_id;
        public $service_object_id;

        /**
         * service::__construct()
         * 
         * @param mixed $id
         * @return
         */
        public function __construct( $id )
        {
            $sql = "SELECT
                    service_id,
                    display_name,
                    service_object_id
                FROM
                    services
                WHERE
                    service_id = $id
                AND
                    instance_id = " . $GLOBALS["cfg"]["instance"] . "
            ";
            $res = $GLOBALS["db"]->query( $sql );
            $row = $res->fetchRow();
            //$this->host_id=$row["host_id"];
            foreach ( $row as $feld => $wert )
            {
                $this->$feld = $wert;
            }
        }
        /**
         * service::getStatusList()
         * 
         * @return
         */
        public static function getStatusList()
        {
            $sql = "SELECT
                                        count(current_state) AS anz
                                FROM
                                        servicestatus
                                WHERE
                                        instance_id = " . $GLOBALS["cfg"]["instance"] . "
                                AND
                                        current_state = 0
                        ";
            $res = $GLOBALS["db"]->query( $sql );
            $row = $res->fetchRow();
            $rows["ok"] = $row["anz"];
            $sql = "SELECT
                                        count(current_state) AS anz
                                FROM
                                        servicestatus
                                WHERE
                                        instance_id = " . $GLOBALS["cfg"]["instance"] . "
                                AND
                                        current_state = 1
                        ";
            $res = $GLOBALS["db"]->query( $sql );
            $row = $res->fetchRow();
            $rows["warning"] = $row["anz"];
            $sql = "SELECT
                                        count(current_state) AS anz
                                FROM
                                        servicestatus
                                WHERE
                                        instance_id = " . $GLOBALS["cfg"]["instance"] . "
                                AND
                                        current_state = 2
                        ";
            $res = $GLOBALS["db"]->query( $sql );
            $row = $res->fetchRow();
            $rows["critical"] = $row["anz"];
            $sql = "SELECT
                                        count(current_state) AS anz
                                FROM
                                        servicestatus
                                WHERE
                                        instance_id = " . $GLOBALS["cfg"]["instance"] . "
                                AND
                                        current_state = 3
                        ";
            $res = $GLOBALS["db"]->query( $sql );
            $row = $res->fetchRow();
            $rows["unknown"] = $row["anz"];
            $rows["total"] = array_sum( $rows );
            return $rows;
        }
    }

?>