All pastes #543932 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-06-06 07:05 UTC
rendered paste body
$sql = " select nagios_statehistory.object_id, unix_timestamp(nagios_statehistory.state_time) as state_time, nagios_statehistory.state
                         from nagios_statehistory
                         inner join nagios_hostgroup_members on nagios_hostgroup_members.host_object_id=nagios_statehistory.object_id
                         inner join nagios_hostgroups on nagios_hostgroups.hostgroup_id=nagios_hostgroup_members.hostgroup_id where";

                if ($startTime == "null") {
                        if ($stopTime != "null") {
                                $sql .= " unix_timestamp(nagios_statehistory.state_time) < $stopTime ";
                        }
                } else {
                        if ($stopTime == "null") {
                                $sql .= " unix_timestamp(nagios_statehistory.state_time) > $startTime ";
                        } else {
                                $sql .= " unix_timestamp(nagios_statehistory.state_time) < $stopTime and unix_timestamp(nagios_statehistory.state_time) > $startTime ";
                        }
                }

                $includePending = FALSE;


                if ($_POST["type"] == 1) {
                        $sql .= "and nagios_statehistory.object_id in (";
                        for($i = 0; $i < $hostgroupCount; $i++) {
                                // yay for sql insertion attacks!
                                $sql = $sql . $hostgroups[$i];
                                if($i < $hostgroupCount - 1) {
                                        $sql = $sql . ",";
                                }
                        }
                } elseif ($_POST["type"] == 2) {
                        $i = 0;
                        $sql .= "and nagios_hostgroups.hostgroup_object_id in(";
                        foreach($hostgroups as $value) {
                                // yay for sql insertion attacks!
                                $sql = $sql . $hostgroups[$i];
                                if($i < $hostgroupCount - 1) {
                                        $sql = $sql . ",";
                                }
                                $i++;
                        }
                }

 $sql = $sql . ") order by nagios_statehistory.object_id, nagios_statehistory.state_time";

        $q = db_fetch_assoc("$sql");

        $row_count = count($q);

for($i = 0; $i < $row_count; $i++) {
                        if($q[$i]["object_id"] != $current_host) {
                                if($i != 0) {
                                        $host_times[$current_host]["total_time"] = time() - $first_time;
                                        $host_times[$current_host]["hostid"] = $current_host;
                                }
                                $last_state = $q[$i]["state"];
                                $last_time = $q[$i]["state_time"];
                                $first_time = $last_time;
                                $current_host = $q[$i]["object_id"];
                        } else {
                                switch ($last_state) {
                                        case 0: $state_name = "OK";
                                                break;
                                        case 1: $state_name = "DOWN";
                                                break;
                                        case 2: $state_name = "UNREACHABLE";
                                                break;
                                        default: $state_name = "UNKNOWN";
                                                break;
                                }
                                $host_times[$current_host][$state_name] = $q[$i]["state_time"] - $last_time;
                                $last_state = $q[$i]["state"];
                                $last_time = $q[$i]["state_time"];
                        }
                        echo "last state: ".$last_state." State Time: ".$last_time;
                }
                $host_times[$current_host]["total_time"] = time() - $first_time;
                $host_times[$current_host]["hostid"] = $current_host;