Exemple #1
0
function does_service_depend_on_the_service($serviceid, $serviceid2)
{
    $service = get_service_by_serviceid($serviceid);
    if ($service["status"] == 0) {
        return FALSE;
    }
    if (bccomp($serviceid, $serviceid2) == 0) {
        if ($service["status"] > 0) {
            return TRUE;
        }
    }
    $result = DBselect("SELECT serviceupid FROM services_links WHERE servicedownid={$serviceid2} and soft=0");
    while ($row = DBfetch($result)) {
        if (does_service_depend_on_the_service($serviceid, $row["serviceupid"]) == TRUE) {
            return TRUE;
        }
    }
    return FALSE;
}
Exemple #2
0
 empty($row['description']) ? $row['description'] = 'None' : '';
 $row['graph'] = new CLink(S_SHOW, "srv_status.php?serviceid=" . $row["serviceid"] . "&showgraph=1" . url_param('path'), "action");
 if (isset($row["triggerid"]) && !empty($row["triggerid"])) {
     $url = new CLink(expand_trigger_description($row['triggerid']), 'events.php?triggerid=' . $row['triggerid']);
     $row['caption'] = array($row['caption'] . ' [', $url, ']');
 }
 if ($row["status"] == 0 || isset($service) && bccomp($service["serviceid"], $row["serviceid"]) == 0) {
     $row['reason'] = '-';
 } else {
     $row['reason'] = '-';
     $result2 = DBselect('SELECT s.triggerid,s.serviceid ' . ' FROM services s, triggers t ' . ' WHERE s.status>0 ' . ' AND s.triggerid is not NULL ' . ' AND t.triggerid=s.triggerid ' . ' AND ' . DBcondition('t.triggerid', $available_triggers) . ' AND ' . DBin_node('s.serviceid') . ' ORDER BY s.status DESC, t.description');
     while ($row2 = DBfetch($result2)) {
         if (is_string($row['reason']) && $row['reason'] == '-') {
             $row['reason'] = new CList(null, "itservices");
         }
         if (does_service_depend_on_the_service($row["serviceid"], $row2["serviceid"])) {
             $row['reason']->AddItem(new CLink(expand_trigger_description($row2["triggerid"]), "events.php?triggerid=" . $row2["triggerid"]));
         }
     }
 }
 if ($row["showsla"] == 1) {
     $row['sla'] = new CLink(new CImg("chart_sla.php?serviceid=" . $row["serviceid"]), "report3.php?serviceid=" . $row["serviceid"] . "&year=" . date("Y"));
     $now = time(NULL);
     $period_start = $now - 7 * 24 * 3600;
     $period_end = $now;
     $stat = calculate_service_availability($row["serviceid"], $period_start, $period_end);
     if ($row["goodsla"] > $stat["ok"]) {
         $sla_style = 'red';
     } else {
         $sla_style = 'green';
     }
 }
 $row['graph'] = new CLink(S_SHOW, 'srv_status.php?serviceid=' . $row['serviceid'] . '&showgraph=1' . url_param('path'));
 if (isset($row['triggerid']) && !empty($row['triggerid'])) {
     $url = new CLink(expand_trigger_description($row['triggerid']), 'events.php?source=' . EVENT_SOURCE_TRIGGERS . '&triggerid=' . $row['triggerid']);
     $row['caption'] = array($row['caption'], ' [', $url, ']');
 }
 if ($row['status'] == 0 || isset($service) && bccomp($service['serviceid'], $row['serviceid']) == 0) {
     $row['reason'] = '-';
 } else {
     $row['reason'] = '-';
     $result2 = DBselect('SELECT s.triggerid,s.serviceid ' . ' FROM services s, triggers t ' . ' WHERE s.status>0 ' . ' AND s.triggerid is not NULL ' . ' AND t.triggerid=s.triggerid ' . ' AND ' . DBcondition('t.triggerid', $available_triggers) . ' AND ' . DBin_node('s.serviceid') . ' ORDER BY s.status DESC, t.description');
     while ($row2 = DBfetch($result2)) {
         if (is_string($row['reason']) && $row['reason'] == '-') {
             $row['reason'] = new CList(null, 'itservices');
         }
         if (does_service_depend_on_the_service($row['serviceid'], $row2['serviceid'])) {
             $row['reason']->addItem(new CLink(expand_trigger_description($row2['triggerid']), 'events.php?source=' . EVENT_SOURCE_TRIGGERS . '&triggerid=' . $row2['triggerid']));
         }
     }
 }
 if ($row['showsla'] == 1) {
     $stat = calculate_service_availability($row['serviceid'], $period_start, $period_end);
     $p = min($stat['problem'], 20);
     $sla_style = $row['goodsla'] > $stat['ok'] ? 'on' : 'off';
     $sizeX = 160;
     $sizeY = 15;
     $sizeX_red = $sizeX * $p / 20;
     $sizeX_green = $sizeX - $sizeX_red;
     $sla_tab = new CTable(null, 'invisible');
     $chart1 = null;
     if ($sizeX_green > 0) {