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; }
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) {