Пример #1
0
function update_discovery_rule($druleid, $proxy_hostid, $name, $iprange, $delay, $status, $dchecks, $dchecks_deleted)
{
    if (!validate_ip_range($iprange)) {
        error('Incorrect IP range.');
        return false;
    }
    $result = DBexecute('update drules set proxy_hostid=' . $proxy_hostid . ',name=' . zbx_dbstr($name) . ',iprange=' . zbx_dbstr($iprange) . ',' . 'delay=' . $delay . ',status=' . $status . ' where druleid=' . $druleid);
    if ($result) {
        if (isset($dchecks)) {
            foreach ($dchecks as $val) {
                if (!isset($val['dcheckid'])) {
                    add_discovery_check($druleid, $val['type'], $val['ports'], $val['key'], $val['snmp_community'], $val['snmpv3_securityname'], $val['snmpv3_securitylevel'], $val['snmpv3_authpassphrase'], $val['snmpv3_privpassphrase']);
                }
            }
        }
        if (isset($dchecks_deleted) && !empty($dchecks_deleted)) {
            delete_discovery_check($dchecks_deleted);
        }
    }
    return $result;
}
Пример #2
0
function update_discovery_rule($druleid, $proxy_hostid, $name, $iprange, $delay, $status, $dchecks, $uniqueness_criteria, $dchecks_deleted)
{
    if (!validate_ip_range($iprange)) {
        error(S_INCORRECT_IP_RANGE);
        return false;
    }
    $result = DBexecute('update drules set proxy_hostid=' . $proxy_hostid . ',name=' . zbx_dbstr($name) . ',iprange=' . zbx_dbstr($iprange) . ',' . 'delay=' . $delay . ',status=' . $status . ' where druleid=' . $druleid);
    if ($result && isset($dchecks)) {
        $unique_dcheckid = 0;
        foreach ($dchecks as $id => $data) {
            if (!isset($data['dcheckid'])) {
                $data['dcheckid'] = add_discovery_check($druleid, $data['type'], $data['ports'], $data['key'], $data['snmp_community'], $data['snmpv3_securityname'], $data['snmpv3_securitylevel'], $data['snmpv3_authpassphrase'], $data['snmpv3_privpassphrase']);
            }
            if ($uniqueness_criteria == $id && $data['dcheckid']) {
                $unique_dcheckid = $data['dcheckid'];
            }
        }
        DBexecute('UPDATE drules' . ' SET unique_dcheckid=' . $unique_dcheckid . ' WHERE druleid=' . $druleid);
    }
    if ($result && isset($dchecks_deleted) && !empty($dchecks_deleted)) {
        delete_discovery_check($dchecks_deleted);
    }
    return $result;
}