Ejemplo n.º 1
0
 }
 DBstart();
 $result = true;
 if (!zbx_empty($_REQUEST['new_application'])) {
     $new_appid = API::Application()->create(array('name' => $_REQUEST['new_application'], 'hostid' => $_REQUEST['form_hostid']));
     if ($new_appid) {
         $new_appid = reset($new_appid['applicationids']);
         $applications[$new_appid] = $new_appid;
     } else {
         $result = false;
     }
 }
 if ($result) {
     $item = array('name' => get_request('name'), 'description' => get_request('description'), 'key_' => get_request('key'), 'hostid' => get_request('form_hostid'), 'interfaceid' => get_request('interfaceid', 0), 'delay' => get_request('delay'), 'history' => get_request('history'), 'status' => get_request('status'), 'type' => get_request('type'), 'snmp_community' => get_request('snmp_community'), 'snmp_oid' => get_request('snmp_oid'), 'value_type' => get_request('value_type'), 'trapper_hosts' => get_request('trapper_hosts'), 'port' => get_request('port'), 'units' => get_request('units'), 'multiplier' => get_request('multiplier', 0), 'delta' => get_request('delta'), 'snmpv3_securityname' => get_request('snmpv3_securityname'), 'snmpv3_securitylevel' => get_request('snmpv3_securitylevel'), 'snmpv3_authpassphrase' => get_request('snmpv3_authpassphrase'), 'snmpv3_privpassphrase' => get_request('snmpv3_privpassphrase'), 'formula' => get_request('formula'), 'trends' => get_request('trends'), 'logtimefmt' => get_request('logtimefmt'), 'valuemapid' => get_request('valuemapid'), 'delay_flex' => $db_delay_flex, 'authtype' => get_request('authtype'), 'username' => get_request('username'), 'password' => get_request('password'), 'publickey' => get_request('publickey'), 'privatekey' => get_request('privatekey'), 'params' => get_request('params'), 'ipmi_sensor' => get_request('ipmi_sensor'), 'data_type' => get_request('data_type'), 'applications' => $applications, 'inventory_link' => get_request('inventory_link'));
     if (isset($_REQUEST['itemid'])) {
         $db_item = get_item_by_itemid_limited($_REQUEST['itemid']);
         $db_item['applications'] = get_applications_by_itemid($_REQUEST['itemid']);
         foreach ($item as $field => $value) {
             if ($item[$field] == $db_item[$field]) {
                 unset($item[$field]);
             }
         }
         $item['itemid'] = $_REQUEST['itemid'];
         $result = API::Item()->update($item);
     } else {
         $result = API::Item()->create($item);
     }
 }
 $result = DBend($result);
 if (isset($_REQUEST['itemid'])) {
     show_messages($result, _('Item updated'), _('Cannot update item'));
Ejemplo n.º 2
0
    $_REQUEST['form'] = 'clone';
} elseif (isset($_REQUEST['save'])) {
    $delay_flex = get_request('delay_flex', array());
    $db_delay_flex = '';
    foreach ($delay_flex as $val) {
        $db_delay_flex .= $val['delay'] . '/' . $val['period'] . ';';
    }
    $db_delay_flex = trim($db_delay_flex, ';');
    $ifm = get_request('filter_macro');
    $ifv = get_request('filter_value');
    $filter = isset($ifm, $ifv) ? $ifm . ':' . $ifv : '';
    $item = array('interfaceid' => get_request('interfaceid'), 'name' => get_request('name'), 'description' => get_request('description'), 'key_' => get_request('key'), 'hostid' => get_request('hostid'), 'delay' => get_request('delay'), 'status' => get_request('status', ITEM_STATUS_DISABLED), 'type' => get_request('type'), 'snmp_community' => get_request('snmp_community'), 'snmp_oid' => get_request('snmp_oid'), 'trapper_hosts' => get_request('trapper_hosts'), 'port' => get_request('port'), 'snmpv3_contextname' => get_request('snmpv3_contextname'), 'snmpv3_securityname' => get_request('snmpv3_securityname'), 'snmpv3_securitylevel' => get_request('snmpv3_securitylevel'), 'snmpv3_authprotocol' => get_request('snmpv3_authprotocol'), 'snmpv3_authpassphrase' => get_request('snmpv3_authpassphrase'), 'snmpv3_privprotocol' => get_request('snmpv3_privprotocol'), 'snmpv3_privpassphrase' => get_request('snmpv3_privpassphrase'), 'delay_flex' => $db_delay_flex, 'authtype' => get_request('authtype'), 'username' => get_request('username'), 'password' => get_request('password'), 'publickey' => get_request('publickey'), 'privatekey' => get_request('privatekey'), 'params' => get_request('params'), 'ipmi_sensor' => get_request('ipmi_sensor'), 'lifetime' => get_request('lifetime'), 'filter' => $filter);
    if (hasRequest('itemid')) {
        $itemId = getRequest('itemid');
        DBstart();
        $dbItem = get_item_by_itemid_limited($itemId);
        // unset snmpv3 fields
        if ($item['snmpv3_securitylevel'] == ITEM_SNMPV3_SECURITYLEVEL_NOAUTHNOPRIV) {
            $item['snmpv3_authprotocol'] = ITEM_AUTHPROTOCOL_MD5;
            $item['snmpv3_privprotocol'] = ITEM_PRIVPROTOCOL_DES;
        } elseif ($item['snmpv3_securitylevel'] == ITEM_SNMPV3_SECURITYLEVEL_AUTHNOPRIV) {
            $item['snmpv3_privprotocol'] = ITEM_PRIVPROTOCOL_DES;
        }
        $item = CArrayHelper::unsetEqualValues($item, $dbItem);
        $item['itemid'] = $itemId;
        $result = API::DiscoveryRule()->update($item);
        $result = DBend($result);
        show_messages($result, _('Discovery rule updated'), _('Cannot update discovery rule'));
    } else {
        $result = API::DiscoveryRule()->create(array($item));
        show_messages($result, _('Discovery rule created'), _('Cannot add discovery rule'));
Ejemplo n.º 3
0
function copy_item_to_host($itemid, $hostid, $copy_mode = false)
{
    $db_tmp_item = get_item_by_itemid_limited($itemid);
    $db_tmp_item['hostid'] = $hostid;
    $db_tmp_item['applications'] = get_same_applications_for_host(get_applications_by_itemid($db_tmp_item['itemid']), $hostid);
    $db_tmp_item['templateid'] = $copy_mode ? 0 : $db_tmp_item['itemid'];
    $result = add_item($db_tmp_item);
    return $result;
}