示例#1
0
function generate_status_query($vars)
{
    $sql = "SELECT * FROM `status`";
    $sql .= " LEFT JOIN `status-state` USING(`status_id`)";
    $sql .= " WHERE 1";
    // Build query
    foreach ($vars as $var => $value) {
        switch ($var) {
            case "group":
            case "group_id":
                $values = get_group_entities($value);
                $sql .= generate_query_values($values, 'status.status_id');
                break;
            case "device":
            case "device_id":
                $sql .= generate_query_values($value, 'status.device_id');
                break;
            case "id":
                $sql .= generate_query_values($value, 'status.status_id');
                break;
            case "class":
                $sql .= generate_query_values($value, 'status.entPhysicalClass');
                break;
            case "event":
                $sql .= generate_query_values($value, 'status_event');
                break;
        }
    }
    $sql .= $GLOBALS['cache']['where']['devices_permitted'];
    return $sql;
}
示例#2
0
/**
 * Observium
 *
 *   This file is part of Observium.
 *
 * @package        observium
 * @subpackage     web
 * @copyright  (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited
 *
 */
function generate_sla_query($vars)
{
    $sql = 'SELECT * FROM `slas` ';
    $sql .= ' LEFT JOIN `slas-state` USING (`sla_id`)';
    $sql .= ' WHERE `deleted` = 0';
    // Build query
    foreach ($vars as $var => $value) {
        switch ($var) {
            case "group":
            case "group_id":
                $values = get_group_entities($value);
                $sql .= generate_query_values($values, 'slas.sla_id');
                break;
            case "device":
            case "device_id":
                $sql .= generate_query_values($value, 'slas.device_id');
                break;
            case "id":
                $sql .= generate_query_values($value, 'slas.sla_id');
                break;
            case "owner":
                $sql .= generate_query_values($value, 'slas.sla_owner');
                break;
            case "rtt_type":
                $sql .= generate_query_values($value, 'slas.rtt_type');
                break;
            case "event":
                $sql .= generate_query_values($value, 'rtt_event');
                break;
        }
    }
    $sql .= $GLOBALS['cache']['where']['devices_permitted'];
    return $sql;
}
/**
 * Observium
 *
 *   This file is part of Observium.
 *
 * @package        observium
 * @subpackage     web
 * @copyright  (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited
 *
 */
function generate_vm_query($vars)
{
    $sql = 'SELECT * FROM `vminfo` WHERE 1 ';
    // Build query
    foreach ($vars as $var => $value) {
        switch ($var) {
            case "group":
            case "group_id":
                $values = get_group_entities($value);
                $sql .= generate_query_values($values, 'vm_id');
                break;
            case "device":
            case "device_id":
                $sql .= generate_query_values($value, 'device_id');
                break;
            case "os":
                $sql .= generate_query_values($value, 'vm_guestos');
                break;
            case "state":
                $sql .= generate_query_values($value, 'vm_state');
                break;
            case "memory":
                $sql .= generate_query_values($value, 'vm_memory');
                break;
            case "cpu":
                $sql .= generate_query_values($value, 'vm_cpucount');
                break;
        }
    }
    $sql .= $GLOBALS['cache']['where']['devices_permitted'];
    return $sql;
}
示例#4
0
/**
 * Observium
 *
 *   This file is part of Observium.
 *
 * @package        observium
 * @subpackage     web
 * @copyright  (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited
 *
 */
function generate_pseudowire_query($vars)
{
    $sql = 'SELECT * FROM `pseudowires` ';
    $sql .= ' LEFT JOIN `pseudowires-state` USING (`pseudowire_id`)';
    //$sql .= " WHERE `pwRowStatus` = 'active'";
    $sql .= ' WHERE 1';
    // Build query
    foreach ($vars as $var => $value) {
        switch ($var) {
            case "group":
            case "group_id":
                $values = get_group_entities($value);
                $sql .= generate_query_values($values, 'pseudowire_id');
                break;
            case "device":
            case "device_id":
                $sql .= generate_query_values($value, 'device_id');
                break;
            case "port":
            case "port_id":
                $sql .= generate_query_values($value, 'port_id');
                break;
            case "id":
                $sql .= generate_query_values($value, 'pseudowire_id');
                break;
            case "pwid":
                $sql .= generate_query_values($value, 'pwID');
                break;
            case "pwtype":
                $sql .= generate_query_values($value, 'pwType');
                break;
            case "psntype":
                $sql .= generate_query_values($value, 'pwPsnType');
                break;
            case "peer_id":
                $sql .= generate_query_values($value, 'peer_device_id');
                break;
            case "peer_addr":
                $sql .= generate_query_values($value, 'peer_addr');
                break;
            case "event":
                $sql .= generate_query_values($value, 'event');
                break;
        }
    }
    $sql .= $GLOBALS['cache']['where']['devices_permitted'];
    return $sql;
}
示例#5
0
/**
 * Build devices where array
 *
 * This function returns an array of "WHERE" statements from a $vars array.
 * The returned array can be implode()d and used on the devices table.
 * Originally extracted from the /devices/ page
 *
 * @param array $vars
 * @return array
 */
function build_devices_where_array($vars)
{
    $where_array = array();
    foreach ($vars as $var => $value) {
        if ($value != '') {
            switch ($var) {
                case 'group':
                    $values = get_group_entities($value);
                    $where_array[$var] = generate_query_values($values, 'device_id');
                    break;
                case 'hostname':
                case 'sysname':
                    $where_array[$var] = generate_query_values($value, $var, '%LIKE%');
                    break;
                case 'location_text':
                    $where_array[$var] = generate_query_values($value, 'devices.location', '%LIKE%');
                    break;
                case 'location':
                    $where_array[$var] = generate_query_values($value, 'devices.location');
                    break;
                case 'location_lat':
                case 'location_lon':
                case 'location_country':
                case 'location_state':
                case 'location_county':
                case 'location_city':
                    if ($GLOBALS['config']['geocoding']['enable']) {
                        $where_array[$var] = generate_query_values($value, 'devices_locations.' . $var);
                    }
                    break;
                case 'os':
                case 'version':
                case 'hardware':
                case 'features':
                case 'type':
                case 'status':
                case 'ignore':
                case 'disabled':
                    $where_array[$var] = generate_query_values($value, $var);
                    break;
                case 'graph':
                    $where_array[$var] = generate_query_values(devices_with_graph($value), "devices.device_id");
            }
        }
    }
    return $where_array;
}
示例#6
0
/**
 * Observium
 *
 *   This file is part of Observium.
 *
 * @package        observium
 * @subpackage     functions
 * @copyright  (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited
 *
 */
function generate_p2pradio_query($vars)
{
    $sql = "SELECT * FROM `p2p_radios`";
    $sql .= ' WHERE 1' . generate_query_permitted(array('device'));
    // Build query
    foreach ($vars as $var => $value) {
        switch ($var) {
            case "group":
            case "group_id":
                $values = get_group_entities($value);
                $sql .= generate_query_values($values, 'radio_id');
                break;
            case "device":
            case "device_id":
                $sql .= generate_query_values($value, 'device_id');
                break;
        }
    }
    return $sql;
}
示例#7
0
/**
 * Observium
 *
 *   This file is part of Observium.
 *
 * @package    observium
 * @subpackage web
 * @copyright  (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited
 *
 */
function generate_processor_query($vars)
{
    $sql = "SELECT * FROM `processors`";
    $sql .= " LEFT JOIN `processors-state` USING(`processor_id`)";
    $sql .= ' WHERE 1' . generate_query_permitted(array('device'));
    // Build query
    foreach ($vars as $var => $value) {
        switch ($var) {
            case "group":
            case "group_id":
                $values = get_group_entities($value);
                $sql .= generate_query_values($values, 'processor_id');
                break;
            case "device":
            case "device_id":
                $sql .= generate_query_values($value, 'device_id');
                break;
        }
    }
    return $sql;
}
示例#8
0
/**
 * Observium
 *
 *   This file is part of Observium.
 *
 * @package        observium
 * @subpackage     web
 * @copyright  (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited
 *
 */
function build_mempool_query($vars)
{
    global $config, $cache;
    $sql = 'SELECT *, `mempools`.`mempool_id` AS `mempool_id` FROM `mempools`';
    $sql .= ' LEFT JOIN `mempools-state` USING(`mempool_id`)';
    $sql .= ' WHERE 1' . generate_query_permitted(array('device'));
    // Build query
    foreach ($vars as $var => $value) {
        switch ($var) {
            case "group":
            case "group_id":
                $values = get_group_entities($value);
                $sql .= generate_query_values($values, 'mempools.mempool_id');
                break;
            case "device":
            case "device_id":
                $sql .= generate_query_values($value, 'mempools.device_id');
                break;
        }
    }
    return $sql;
}
示例#9
0
/**
 * Observium
 *
 *   This file is part of Observium.
 *
 * @package        observium
 * @subpackage     webui
 * @copyright  (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited
 *
 */
function build_printersupplies_query($vars)
{
    $sql = 'SELECT * FROM `printersupplies`';
    $sql .= ' WHERE 1' . generate_query_permitted(array('device'));
    // Build query
    foreach ($vars as $var => $value) {
        switch ($var) {
            case "group":
            case "group_id":
                $values = get_group_entities($value);
                $sql .= generate_query_values($values, 'printersupplies.supply_id');
                break;
            case "device":
            case "device_id":
                $sql .= generate_query_values($value, 'printersupplies.device_id');
                break;
            case "supply":
                $sql .= generate_query_values($value, 'printersupplies.supply_type');
                break;
        }
    }
    return $sql;
}
示例#10
0
function permissions_cache($user_id)
{
    $permissions = array();
    foreach (dbFetchRows("SELECT * FROM `entity_permissions` WHERE `user_id` = ?", array($user_id)) as $entity) {
        switch ($entity['entity_type']) {
            case "group":
                // this is a group, so expand it's members into an array
                $group = get_group_by_id($entity['entity_id']);
                foreach (get_group_entities($entity['entity_id']) as $group_entity_id) {
                    $permissions[$group['entity_type']][$group_entity_id] = TRUE;
                }
                //break; // And also store self group permission in cache
            //break; // And also store self group permission in cache
            default:
                $permissions[$entity['entity_type']][$entity['entity_id']] = TRUE;
                break;
        }
    }
    // For limited users expand device permission into entity permission
    if ((!isset($_SESSION['user_limited']) || $_SESSION['user_limited']) && count($permissions['device'])) {
        foreach ($GLOBALS['config']['entities'] as $entity_type => $entity_def) {
            if ($entity_type == 'device' || $entity_def['hide'] || empty($entity_def['table_fields']['device_id'])) {
                continue;
            }
            $devices = array_keys($permissions['device']);
            $query = 'SELECT `' . $entity_def['table_fields']['id'] . '` FROM `' . $entity_def['table'] . '`';
            $query .= ' WHERE 1 ' . generate_query_values($devices, $entity_def['table_fields']['device_id']);
            foreach (dbFetchColumn($query) as $entity_id) {
                $permissions[$entity_type][$entity_id] = TRUE;
            }
        }
    }
    // Alerts
    $alert = array();
    foreach (dbFetchRows('SELECT `alert_table_id`, `device_id`, `entity_id`, `entity_type` FROM `alert_table`') as $alert_table_entry) {
        //r($alert_table_entry);
        if (is_entity_permitted($alert_table_entry['entity_id'], $alert_table_entry['entity_type'], $alert_table_entry['device_id'], $permissions)) {
            $alert[$alert_table_entry['alert_table_id']] = TRUE;
        }
    }
    if (count($alert)) {
        $permissions['alert'] = $alert;
    }
    return $permissions;
}
示例#11
0
/**
 * Build ports WHERE array
 *
 * This function returns an array of "WHERE" statements from a $vars array.
 * The returned array can be implode()d and used on the ports table.
 * Originally extracted from the /ports/ page
 *
 * @param array $vars
 * @return array
 */
function build_ports_where_array($vars)
{
    $where = array();
    foreach ($vars as $var => $value) {
        if ($value != '') {
            switch ($var) {
                case 'location':
                    $where[] = generate_query_values($value, $var);
                    break;
                case 'device_id':
                    $where[] = generate_query_values($value, 'ports.device_id');
                    break;
                case 'group':
                    $values = get_group_entities($value);
                    $where[] = generate_query_values($values, 'ports.port_id');
                    break;
                case 'disable':
                    $var = 'disabled';
                case 'disabled':
                    // FIXME. 'disabled' column never used in ports..
                // FIXME. 'disabled' column never used in ports..
                case 'deleted':
                case 'ignore':
                case 'ifSpeed':
                case 'ifType':
                    $where[] = generate_query_values($value, 'ports.' . $var);
                    break;
                case 'hostname':
                case 'ifAlias':
                case 'ifDescr':
                    $where[] = generate_query_values($value, $var, '%LIKE%');
                    break;
                case 'port_descr_type':
                    $where[] = generate_query_values($value, $var, 'LIKE');
                    break;
                case 'errors':
                    if ($value == 1 || $value == "yes") {
                        $where[] = " AND (`ifInErrors_delta` > '0' OR `ifOutErrors_delta` > '0')";
                    }
                    break;
                case 'alerted':
                    if ($value == "yes") {
                        $where[] = ' AND `ifAdminStatus` = "up" AND (`ifOperStatus` = "lowerLayerDown" OR `ifOperStatus` = "down")';
                    }
                case 'state':
                    if ($value == "down") {
                        $where[] = 'AND `ifAdminStatus` = "up" AND (`ifOperStatus` = "lowerLayerDown" OR `ifOperStatus` = "down")';
                    } else {
                        if ($value == "up") {
                            $where[] = 'AND `ifAdminStatus` = "up" AND ( `ifOperStatus` = "up" OR `ifOperStatus` = "monitoring" )';
                        } else {
                            if ($value == "admindown") {
                                $where[] = 'AND `ifAdminStatus` = "down"';
                            }
                        }
                    }
                    break;
                case 'cbqos':
                    if ($value && $value != 'no') {
                        $where[] = generate_query_values($GLOBALS['cache']['ports']['cbqos'], 'ports.port_id');
                    }
                    break;
            }
        }
    }
    return $where;
}
 * Observium
 *
 *   This file is part of Observium.
 *
 * @package    observium
 * @subpackage webui
 * @copyright  (C) 2006-2015 Adam Armstrong
 *
 */
global $sensor_type;
$sql = "SELECT *, `sensors`.`sensor_id` AS `sensor_id` FROM `sensors`";
$sql .= " LEFT JOIN `sensors-state` ON `sensors`.`sensor_id` = `sensors-state`.`sensor_id`";
$sql .= " WHERE `sensors`.`sensor_class` = ?" . generate_query_permitted(array('device'));
// Groups
if (isset($vars['group'])) {
    $values = get_group_entities($vars['group']);
    $sql .= generate_query_values($values, 'sensors.sensor_id');
}
$sensors = array();
foreach (dbFetchRows($sql, array($sensor_type)) as $sensor) {
    if (isset($cache['devices']['id'][$sensor['device_id']])) {
        $sensor['hostname'] = $cache['devices']['id'][$sensor['device_id']]['hostname'];
        $sensor['html_row_class'] = $cache['devices']['id'][$sensor['device_id']]['html_row_class'];
        $sensors[] = $sensor;
    }
}
$sensors = array_sort_by($sensors, 'hostname', SORT_ASC, SORT_STRING, 'sensor_descr', SORT_ASC, SORT_STRING);
$sensors_count = count($sensors);
// Pagination
$pagination_html = pagination($vars, $sensors_count);
echo $pagination_html;
<?php

//add up totals in/out for each type, put it in an array.
$totals_array = array();
foreach ($config['frontpage']['portpercent'] as $type => $data) {
    $totalInOctets = 0;
    $totalOutOctets = 0;
    //fetch ports in group using existing observium functioon
    foreach (get_group_entities($data['group']) as $port) {
        $octets = dbFetchRow("SELECT `ifInOctets_rate`, `ifOutOctets_rate` FROM `ports` WHERE `port_id` = ?", array($port));
        $totalInOctets = $totalInOctets + $octets['ifInOctets_rate'];
        $totalOutOctets = $totalOutOctets + $octets['ifOutOctets_rate'];
    }
    $totals_array[$type]["in"] = $totalInOctets * 8;
    $totals_array[$type]["out"] = $totalOutOctets * 8;
}
// total things up
$totalIn = 0;
$totalOut = 0;
foreach ($totals_array as $type => $dir) {
    $totalIn = $totalIn + $dir[in];
    $totalOut = $totalOut + $dir[out];
}
$percentage_bar = array();
$percentage_bar['border'] = "#EEE";
$percentage_bar['bg'] = "#f0f0f0";
$percentage_bar['width'] = "100%";
//$percentage_bar['text']    = $avai_perc."%";
//$percentage_bar['text_c']  = "#E25A00";
$percentage_bar_out = $percentage_bar;
// do the real work
示例#14
0
/**
 * Params:
 * short
 * pagination, pageno, pagesize
 * device_id, entity_id, entity_type, message, timestamp_from, timestamp_to
 */
function get_events_array($vars)
{
    $array = array();
    // Short events? (no pagination, small out)
    $array['short'] = isset($vars['short']) && $vars['short'];
    // With pagination? (display page numbers in header)
    $array['pagination'] = isset($vars['pagination']) && $vars['pagination'];
    pagination($vars, 0, TRUE);
    // Get default pagesize/pageno
    $array['pageno'] = $vars['pageno'];
    $array['pagesize'] = $vars['pagesize'];
    $start = $array['pagesize'] * $array['pageno'] - $array['pagesize'];
    $pagesize = $array['pagesize'];
    // Begin query generate
    $param = array();
    $where = ' WHERE 1 ';
    foreach ($vars as $var => $value) {
        if ($value != '') {
            switch ($var) {
                case 'device':
                case 'device_id':
                    $where .= generate_query_values($value, 'device_id');
                    break;
                case 'port':
                case 'entity':
                case 'entity_id':
                    $where .= generate_query_values($value, 'entity_id');
                    break;
                case 'severity':
                    $where .= generate_query_values($value, 'severity');
                    break;
                case 'type':
                case 'entity_type':
                    $where .= generate_query_values($value, 'entity_type');
                    break;
                case 'message':
                    $where .= generate_query_values($value, 'message', '%LIKE%');
                    break;
                case 'timestamp_from':
                    $where .= ' AND `timestamp` >= ?';
                    $param[] = $value;
                    break;
                case 'timestamp_to':
                    $where .= ' AND `timestamp` <= ?';
                    $param[] = $value;
                    break;
                case "group":
                case "group_id":
                    $values = get_group_entities($value);
                    $where .= generate_query_values($values, 'entity_id');
                    $where .= generate_query_values(get_group_entity_type($value), 'entity_type');
                    break;
            }
        }
    }
    // Show events only for permitted devices
    $query_permitted = generate_query_permitted();
    $query = 'FROM `eventlog` ';
    $query .= $where . $query_permitted;
    $query_count = 'SELECT COUNT(*) ' . $query;
    $query_updated = 'SELECT MAX(`timestamp`) ' . $query;
    $query = 'SELECT * ' . $query;
    $query .= ' ORDER BY `event_id` DESC ';
    $query .= "LIMIT {$start},{$pagesize}";
    // Query events
    $array['entries'] = dbFetchRows($query, $param);
    // Query events count
    if ($array['pagination'] && !$array['short']) {
        $array['count'] = dbFetchCell($query_count, $param);
        $array['pagination_html'] = pagination($vars, $array['count']);
    } else {
        $array['count'] = count($array['entries']);
    }
    // Query for last timestamp
    //$array['updated'] = dbFetchCell($query_updated, $param);
    return $array;
}
示例#15
0
/**
 * Observium
 *
 *   This file is part of Observium.
 *
 * @package    observium
 * @subpackage web
 * @copyright  (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited
 *
 */
function print_storage_table($vars)
{
    global $cache, $config;
    $graph_type = "storage_usage";
    $sql = "SELECT *, `storage`.`storage_id` AS `storage_id` FROM `storage`";
    $sql .= " LEFT JOIN `storage-state` USING(`storage_id`)";
    $sql .= ' WHERE 1' . generate_query_permitted(array('device'));
    // Build query
    if (!isset($vars['ignored'])) {
        $vars['ignored'] = 0;
    }
    foreach ($vars as $var => $value) {
        switch ($var) {
            case "group":
            case "group_id":
                $values = get_group_entities($value);
                $sql .= generate_query_values($values, 'storage.storage_id');
                break;
            case "device":
            case "device_id":
                $sql .= generate_query_values($value, 'storage.device_id');
                break;
            case 'ignored':
                $sql .= generate_query_values($value, 'storage.storage_ignore');
                break;
        }
    }
    $storages = array();
    foreach (dbFetchRows($sql) as $storage) {
        if (isset($cache['devices']['id'][$storage['device_id']])) {
            $storage['hostname'] = $cache['devices']['id'][$storage['device_id']]['hostname'];
            $storage['html_row_class'] = $cache['devices']['id'][$storage['device_id']]['html_row_class'];
            $storages[] = $storage;
        }
    }
    // Sorting
    // FIXME. Sorting can be as function, but in must before print_table_header and after get table from db
    switch ($vars['sort_order']) {
        case 'desc':
            $sort_order = SORT_DESC;
            $sort_neg = SORT_ASC;
            break;
        case 'reset':
            unset($vars['sort'], $vars['sort_order']);
            // no break here
        // no break here
        default:
            $sort_order = SORT_ASC;
            $sort_neg = SORT_DESC;
    }
    switch ($vars['sort']) {
        case 'usage':
            $storages = array_sort_by($storages, 'storage_perc', $sort_neg, SORT_NUMERIC);
            break;
        case 'mountpoint':
            $storages = array_sort_by($storages, 'storage_descr', $sort_order, SORT_STRING);
            break;
        case 'size':
        case 'free':
        case 'used':
            $storages = array_sort_by($storages, 'storage_' . $vars['sort'], $sort_neg, SORT_NUMERIC);
            break;
        default:
            $storages = array_sort_by($storages, 'hostname', $sort_order, SORT_STRING, 'storage_descr', $sort_order, SORT_STRING);
            break;
    }
    $storages_count = count($storages);
    // Pagination
    $pagination_html = pagination($vars, $storages_count);
    echo $pagination_html;
    if ($vars['pageno']) {
        $storages = array_chunk($storages, $vars['pagesize']);
        $storages = $storages[$vars['pageno'] - 1];
    }
    // End Pagination
    echo generate_box_open();
    print_storage_table_header($vars);
    foreach ($storages as $storage) {
        print_storage_row($storage, $vars);
    }
    echo "</tbody></table>";
    echo generate_box_close();
    echo $pagination_html;
}
示例#16
0
function cache_syslog_rules_assoc()
{
    $device_rules = array();
    foreach (dbFetchRows("SELECT * FROM `syslog_rules_assoc`") as $laa) {
        //print_r($laa);
        if ($laa['entity_type'] == 'group') {
            $devices = get_group_entities($laa['entity_id']);
            foreach ($devices as $dev_id) {
                $device_rules[$dev_id][$laa['la_id']] = TRUE;
            }
        } elseif ($laa['entity_type'] == 'device') {
            $device_rules[$laa['entity_id']][$laa['la_id']] = TRUE;
        }
    }
    return $device_rules;
}
示例#17
0
function build_sensor_query($vars)
{
    $sql = "SELECT * FROM `sensors`";
    $sql .= " LEFT JOIN `sensors-state` USING (`sensor_id`)";
    $sql .= " WHERE `sensor_deleted` = 0";
    // Build query
    foreach ($vars as $var => $value) {
        switch ($var) {
            case "metric":
                if ($value != "sensors") {
                    $sql .= generate_query_values($value, 'sensors.sensor_class');
                }
                break;
            case "group":
            case "group_id":
                $values = get_group_entities($value);
                $sql .= generate_query_values($values, 'sensors.sensor_id');
                break;
            case "device":
            case "device_id":
                $sql .= generate_query_values($value, 'sensors.device_id');
                break;
            case "entity_id":
                $sql .= generate_query_values($value, 'sensors.measured_entity');
                break;
            case "entity_type":
                $sql .= generate_query_values($value, 'sensors.measured_class');
                break;
            case "id":
                $sql .= generate_query_values($value, 'sensors.sensor_id');
                break;
            case "event":
                $sql .= generate_query_values($value, 'sensor_event');
                break;
        }
    }
    // $sql .= $GLOBALS['cache']['where']['devices_permitted'];
    $sql .= generate_query_permitted(array('device', 'sensor'));
    return $sql;
}
示例#18
0
if (!$config['web_show_disabled'] && !isset($vars['disabled'])) {
    $vars['disabled'] = '0';
}
if ($vars['format'] != 'graphs') {
    // reset all from/to vars if not use graphs
    unset($vars['from'], $vars['to'], $vars['timestamp_from'], $vars['timestamp_to'], $vars['graph']);
}
/// FIXME - new style (print_search_simple) of searching here
$where = ' WHERE 1 ';
$where_array = array();
$query_permitted = generate_query_permitted(array('device'), array('device_table' => 'devices'));
foreach ($vars as $var => $value) {
    if ($value != '') {
        switch ($var) {
            case 'group':
                $values = get_group_entities($value);
                $where_array[$var] = generate_query_values($values, 'device_id');
                break;
            case 'hostname':
            case 'sysname':
                $where_array[$var] = generate_query_values($value, $var, '%LIKE%');
                break;
            case 'location_text':
                $where_array[$var] = generate_query_values($value, 'location', '%LIKE%');
                break;
            case 'os':
            case 'version':
            case 'hardware':
            case 'features':
            case 'type':
            case 'status':
示例#19
0
function cache_alert_maintenance()
{
    $return = array();
    $now = time();
    $maints = dbFetchRows("SELECT * FROM `alerts_maint` WHERE `maint_start` < ? AND `maint_end` > ?", array($now, $now));
    if (is_array($maints) && count($maints)) {
        $return['count'] = count($maints);
        foreach ($maints as $maint) {
            if ($maint['maint_global'] == 1) {
                $return['global'][$maint['maint_id']] = $maint;
            } else {
                $assocs = dbFetchRows("SELECT * FROM `alerts_maint_assoc` WHERE `maint_id` = ?", array($maint['maint_id']));
                foreach ($assocs as $assoc) {
                    switch ($assoc['entity_type']) {
                        case "group":
                            // this is a group, so expand it's members into an array
                            $group = get_group_by_id($assoc['entity_id']);
                            $entities = get_group_entities($assoc['entity_id']);
                            foreach ($entities as $entity) {
                                $return[$group['entity_type']][$entity] = TRUE;
                            }
                            break;
                        default:
                            $return[$assoc['entity_type']][$assoc['entity_id']] = TRUE;
                            break;
                    }
                }
            }
        }
    }
    //print_r($return);
    return $return;
}