Example #1
0
     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;
     }
 }
Example #3
0
 /**
  * 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;
     }
 }
Example #4
0
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"]);
        }
    }
}
Example #5
0
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);
}