unset($_REQUEST['form']); show_messages($result, S_GROUP_DELETED, S_CANNOT_DELETE_GROUP); unset($_REQUEST['groupid']); } else { if ($_REQUEST['go'] == 'delete') { /* group operations */ $result = true; $groups = get_request('groups', array()); $db_groups = DBselect('select groupid, name from groups where ' . DBin_node('groupid')); DBstart(); while ($db_group = DBfetch($db_groups)) { if (!uint_in_array($db_group['groupid'], $groups)) { continue; } /* if(!$group = get_hostgroup_by_groupid($db_group['groupid'])) continue;*/ $result &= delete_host_group($db_group['groupid']); /* if($result){ add_audit(AUDIT_ACTION_DELETE,AUDIT_RESOURCE_HOST_GROUP, S_HOST_GROUP.' ['.$group['name'].' ] ['.$group['groupid'].']'); }*/ } $result = DBend($result); show_messages(true, S_GROUP_DELETED, S_CANNOT_DELETE_GROUP); } else { if (str_in_array($_REQUEST['go'], array('activate', 'disable'))) { $result = true; $status = $_REQUEST['go'] == 'activate' ? HOST_STATUS_MONITORED : HOST_STATUS_NOT_MONITORED; $groups = get_request('groups', array()); $db_hosts = DBselect('select h.hostid, hg.groupid ' . ' from hosts_groups hg, hosts h' . ' where h.hostid=hg.hostid ' . ' and h.status in (' . HOST_STATUS_MONITORED . ',' . HOST_STATUS_NOT_MONITORED . ')' . ' and ' . DBin_node('h.hostid')); DBstart(); while ($db_host = DBfetch($db_hosts)) {
/** * Delete HostGroups * * @param array $groups * @param array $groups[0,..]['groupid'] * @return boolean */ public static function delete($groups) { $groups = zbx_toArray($groups); $groupids = zbx_objectValues($groups, 'groupid'); try { self::BeginTransaction(__METHOD__); $options = array('groupids' => $groupids, 'editable' => 1, 'output' => API_OUTPUT_SHORTEN, 'preservekeys' => 1); $del_groups = self::get($options); foreach ($groups as $gnum => $group) { if (!isset($del_groups[$group['groupid']])) { self::exception(ZBX_API_ERROR_PERMISSIONS, S_NO_PERMISSION); } } if (empty($groupids)) { self::exception(ZBX_API_ERROR_PARAMETERS, 'Empty input parameter'); } $result = delete_host_group($groupids); if (!$result) { self::exception(ZBX_API_ERROR_PARAMETERS, 'Cannot delete group'); } self::EndTransaction(true, __METHOD__); return array('groupids' => $groupids); } catch (APIException $e) { self::EndTransaction(false, __METHOD__); $error = $e->getErrors(); $error = reset($error); self::setError(__METHOD__, $e->getCode(), $error); return false; } }
/** * Delete HostGroups * * {@source} * @access public * @static * @since 1.8 * @version 1 * * @static * @param array $groupids * @return boolean */ public static function delete($groupids) { $result = delete_host_group($groupids); if ($result) { return $groupids; } else { self::$error = array('error' => ZBX_API_ERROR_INTERNAL, 'data' => 'Internal zabbix error'); return false; } }
function delete_groups_by_hostid($hostid) { $sql = 'SELECT groupid FROM hosts_groups WHERE hostid=' . $hostid; $result = DBselect($sql); while ($row = DBfetch($result)) { $sql = 'DELETE FROM hosts_groups WHERE hostid=' . $hostid . ' AND groupid=' . $row['groupid']; DBexecute($sql); $sql = 'SELECT COUNT(*) as count FROM hosts_groups WHERE groupid=' . $row['groupid']; $result2 = DBselect($sql); $row2 = DBfetch($result2); if ($row2["count"] == 0) { delete_host_group($row["groupid"]); } } }
function delete_groups_by_hostid($hostids) { zbx_value2array($hostids); $groupids = array(); $sql = 'SELECT DISTINCT groupid FROM hosts_groups WHERE ' . DBcondition('hostid' . $hostids); $result = DBselect($sql); while ($group = DBfetch($result)) { $groupids[$group['groupid']] = $group['groupid']; } foreach ($hostids as $id => $hostid) { $sql = 'DELETE FROM hosts_groups WHERE hostid=' . $hostid . ' AND ' . DBcondition('groupid', $groupids); DBexecute($sql); } $sql = 'SELECT DISTINCT groupid FROM hosts_groups WHERE ' . DBcondition('groupid', $groupids); $result = DBselect($sql); while ($group = DBfetch($result)) { unset($groupids[$group['groupid']]); } return delete_host_group($groupids); }