<?php
/**
* NOC overview page
*
* @package NOC
* @version 1.0
* @author Martijn Bogaard
* @copyright 2008 SiteWK
* @todo item icon (warning icons etc)
*/
require_once('lib/common.php');
$page = $modules->getModuleByName('page');
$db = $modules->getModuleByName('database');
$page->setCurrentPage('group_overview');
if ($_GET->isIntegerValue('group'))
{
$db->query(new Query("SELECT `name` FROM `servergroups` WHERE `id` = ? LIMIT 0 , 1", $_GET->getIntegerValue('group')));
$tpl->assign('groupname', $db->fetch());
//laad de servers uit de groep
$db->query(new Query("SELECT s.*, (SELECT i.id FROM interruptions i, interruptionservers iss WHERE i.id = iss.interruptionID AND i.status != ".INT_CLOSED." AND iss.serverID = s.id LIMIT 0,1) AS interruptionID, (SELECT m.id FROM maintenance m, maintenanceservers ms WHERE m.id = ms.maintenanceID AND m.status = ".MAIN_ACK." AND ms.serverID = s.id LIMIT 0,1) AS ack_maintenanceID, (SELECT m.id FROM maintenance m, maintenanceservers ms WHERE m.id = ms.maintenanceID AND m.status != ".MAIN_ACK." AND m.status != ".MAIN_CLOSED." AND ms.serverID = s.id LIMIT 0,1) AS maintenanceID FROM servergroupservers sgs, servers s WHERE sgs.serverID = s.id AND sgs.groupID = ?", $_GET->getIntegerValue('group')));
for ($i = 0; $sData = $db->fetch(); $i++)
{
$db->
query(new Query
("SELECT sc. * , c.name, DATE_FORMAT( sc.last_check, '%d-%b-%Y %H:%i' ) AS date_last_check, (100 - (((SELECT SUM( UNIX_TIMESTAMP( end_time ) - UNIX_TIMESTAMP( start_time ) ) FROM `events` WHERE serverCheckID = sc.id) / (UNIX_TIMESTAMP() - ?))*100)) AS uptime FROM serverchecks sc, checks c WHERE c.id = sc.checkID AND `serverID` = ?",
array(strtotime("-1 month"),
$sData['id'])));
$servers[$i] = $sData;
$servers[$i]['checks'] = $db->fetchAll();
}
$tpl->assign('servers', $servers);
}
$page->parsePage('group_overview.tpl');