function get_service_status($serviceid, $algorithm, $triggerid = null, $status = 0)
{
    if (is_numeric($triggerid)) {
        $status = ($serv_status = get_service_status_of_trigger($triggerid)) ? $serv_status : $status;
    }
    if ($algorithm == SERVICE_ALGORITHM_MAX || $algorithm == SERVICE_ALGORITHM_MIN) {
        $sort_order = $algorithm == SERVICE_ALGORITHM_MAX ? ' DESC' : '';
        $result = DBselect('SELECT s.status' . ' FROM services s,services_links l' . ' WHERE l.serviceupid=' . zbx_dbstr($serviceid) . ' AND s.serviceid=l.servicedownid' . ' ORDER BY s.status' . $sort_order);
        if ($row = DBfetch($result)) {
            $status = $row['status'];
        }
    }
    return $status;
}
Example #2
0
function get_service_status($serviceid, $algorithm, $triggerid = null, $status = 0)
{
    if (is_numeric($triggerid)) {
        $status = ($serv_status = get_service_status_of_trigger($triggerid)) ? $serv_status : $status;
    }
    if (SERVICE_ALGORITHM_MAX == $algorithm || SERVICE_ALGORITHM_MIN == $algorithm) {
        $sort_order = SERVICE_ALGORITHM_MAX == $algorithm ? ' DESC ' : ' ASC ';
        $sql = 'SELECT s.status' . ' FROM services s,services_links l ' . ' WHERE l.serviceupid=' . $serviceid . ' AND s.serviceid=l.servicedownid ' . ' ORDER BY s.status ' . $sort_order;
        $result = DBselect($sql);
        $rows = DBfetch($result);
        if ($rows && !zbx_empty($rows['status'])) {
            $status = $rows['status'];
        }
    }
    return $status;
}
Example #3
0
     $triggers = CTrigger::get($options);
     $triggerids = zbx_objectValues($triggers, 'triggerid');
     if ($_REQUEST['go'] == 'activate') {
         $status = TRIGGER_STATUS_ENABLED;
         $status_old = array('status' => 1);
         $status_new = array('status' => 0);
     } else {
         $status = TRIGGER_STATUS_DISABLED;
         $status_old = array('status' => 0);
         $status_new = array('status' => 1);
     }
     DBstart();
     $go_result = update_trigger_status($triggerids, $status);
     if ($go_result) {
         foreach ($triggers as $tnum => $trigger) {
             $serv_status = isset($_REQUEST['group_enable']) ? get_service_status_of_trigger($trigger['triggerid']) : 0;
             update_services($trigger['triggerid'], $serv_status);
             // updating status to all services by the dependency
             $host = reset($trigger['hosts']);
             add_audit_ext(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_TRIGGER, $trigger['triggerid'], $host['host'] . ':' . $trigger['description'], 'triggers', $status_old, $status_new);
         }
     }
     $go_result = DBend($go_result);
     show_messages($go_result, S_STATUS_UPDATED, S_CANNOT_UPDATE_STATUS);
 } else {
     if ($_REQUEST['go'] == 'copy_to' && isset($_REQUEST['copy']) && isset($_REQUEST['g_triggerid'])) {
         if (isset($_REQUEST['copy_targetid']) && $_REQUEST['copy_targetid'] > 0 && isset($_REQUEST['copy_type'])) {
             if (0 == $_REQUEST['copy_type']) {
                 /* hosts */
                 $hosts_ids = $_REQUEST['copy_targetid'];
             } else {