Example #1
0
 private static function hostgroup($action, $params)
 {
     CHostGroup::$error = array();
     switch ($action) {
         case 'add':
             $result = CHostGroup::add($params);
             break;
         case 'get':
             $result = CHostGroup::get($params);
             break;
         case 'getById':
             $result = CHostGroup::getById($params);
             break;
         case 'getId':
             $result = CHostGroup::getId($params);
             break;
         case 'update':
             $result = CHostGroup::update($params);
             break;
         case 'addHosts':
             $result = CHostGroup::addHosts($params);
             break;
         case 'removeHosts':
             $result = CHostGroup::removeHosts($params);
             break;
         case 'addGroupsToHost':
             $result = CHostGroup::addGroupsToHost($params);
             break;
         case 'updateGroupsToHost':
             $result = CHostGroup::updateGroupsToHost($params);
             break;
         case 'delete':
             $result = CHostGroup::delete($params);
             break;
         default:
             self::$result = array('error' => ZBX_API_ERROR_NO_METHOD, 'data' => 'Method: "' . $action . '" doesn\'t exist.');
             return;
             //exit function
     }
     if ($result !== false) {
         self::$result = array('result' => $result);
     } else {
         self::$result = CHostGroup::$error;
     }
 }
Example #2
0
    }
}
/*** <--- ACTIONS ---> ***/
if (isset($_REQUEST['clone']) && isset($_REQUEST['groupid'])) {
    unset($_REQUEST['groupid']);
    $_REQUEST['form'] = 'clone';
} else {
    if (isset($_REQUEST['save'])) {
        $objects = get_request('hosts', array());
        $hosts = CHost::get(array('hostids' => $objects, 'output' => API_OUTPUT_SHORTEN));
        $templates = CTemplate::get(array('templateids' => $objects, 'output' => API_OUTPUT_SHORTEN));
        if (isset($_REQUEST['groupid'])) {
            DBstart();
            $old_group = CHostGroup::get(array('groupids' => $_REQUEST['groupid'], 'output' => API_OUTPUT_EXTEND));
            $old_group = reset($old_group);
            $result = CHostGroup::update(array('groupid' => $_REQUEST['groupid'], 'name' => $_REQUEST['gname']));
            if ($result) {
                $options = array('groupids' => $result['groupids'], 'output' => API_OUTPUT_EXTEND);
                $groups = CHostGroup::get($options);
                $data = array('hosts' => $hosts, 'templates' => $templates, 'groups' => $groups);
                $result = CHostGroup::massUpdate($data);
            }
            $result = DBend($result);
            if ($result) {
                $group = reset($groups);
                add_audit_ext(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_HOST_GROUP, $group['groupid'], $group['name'], 'groups', array('name' => $old_group['name']), array('name' => $group['name']));
            }
            $msg_ok = S_GROUP_UPDATED;
            $msg_fail = S_CANNOT_UPDATE_GROUP;
        } else {
            if (!count(get_accessible_nodes_by_user($USER_DETAILS, PERM_READ_WRITE, PERM_RES_IDS_ARRAY))) {