ru:manual:api:reference_commentary

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
ru:manual:api:reference_commentary [2018/06/27 04:27]
127.0.0.1 external edit
ru:manual:api:reference_commentary [2019/12/02 04:18] (current)
dotneft
Line 25: Line 25:
   * //​константа//​ - значение этого свойства можно устанавливать при создании объекта,​ но нельзя менять после.   * //​константа//​ - значение этого свойства можно устанавливать при создании объекта,​ но нельзя менять после.
  
-==== Удаление ссылки на объект через API ====+==== Зарезервированное значение ID равное "​0" ​====
  
-Зарезервированное значение ID %%"​0"​%% можно использовать для удаления ссылок на объекты. Например,​ для удаления ссылки на прокси с узла сети, proxy_hostid необходимо задать значением 0 (%%"​proxy_hostid":​ "​0"​%%).+Зарезервированное значение ID %%"​0"​%% можно использовать для ​фильтрации элементов и удаления связанных объектов. Например,​ для удаления ссылки на прокси с узла сети, proxy_hostid необходимо задать значением 0 (%%"​proxy_hostid": "​0"​%%) или для фильтрации узлов сети наблюдаемых сервером,​ опция proxyids должна быть задана значением 0 (%%"​proxyids": "​0"​%%).
  
 ==== Общие параметры "​get"​ метода ==== ==== Общие параметры "​get"​ метода ====
Line 44: Line 44:
 |searchByAny ​ |логический | Если задано равным ''​true'',​ возвращает результаты которые совпадают с любым из заданных критериев в ''​filter''​ или ''​search''​ параметрах вместо соответствия по всем. ​ \\ \\ По умолчанию:​ ''​false''​. ​ | |searchByAny ​ |логический | Если задано равным ''​true'',​ возвращает результаты которые совпадают с любым из заданных критериев в ''​filter''​ или ''​search''​ параметрах вместо соответствия по всем. ​ \\ \\ По умолчанию:​ ''​false''​. ​ |
 |searchWildcardsEnabled ​ |логический | Если задано равным ''​true'',​ включает использование "​*"​ символом шаблона в ''​search''​ параметре. ​ \\ \\ По умолчанию:​ ''​false''​. | |searchWildcardsEnabled ​ |логический | Если задано равным ''​true'',​ включает использование "​*"​ символом шаблона в ''​search''​ параметре. ​ \\ \\ По умолчанию:​ ''​false''​. |
-|sortfield ​ |строка/​массив |Сортировка результата по заданным свойствам. Обратитесь к отдельным описаниям get методов API для получения списка свойств,​ которые можно использовать при сортировке. Макросы не раскрываются до сортировки. | +|sortfield ​ |строка/​массив |Сортировка результата по заданным свойствам. Обратитесь к отдельным описаниям get методов API для получения списка свойств,​ которые можно использовать при сортировке. Макросы не раскрываются до сортировки.\\ \\ Если никакое значение не задано,​ данные будут возвращены не отсортированными. | 
-|sortorder ​ |строка/​массив |Порядок сортировки. Если передан массив,​ каждое значение будет сопоставляться соответствующему свойству из ''​sortfield''​ параметра.\\ \\ Возможные значения:​ \\ ''​ASC''​ - по возрастанию;​ \\ ''​DESC''​ - по убыванию. ​ |+|sortorder ​ |строка/​массив |Порядок сортировки. Если передан массив,​ каждое значение будет сопоставляться соответствующему свойству из ''​sortfield''​ параметра.\\ \\ Возможные значения:​ \\ ''​ASC'' ​//(по умолчанию)// ​- по возрастанию;​ \\ ''​DESC''​ - по убыванию. ​ |
 |startSearch ​ |логический |''​search''​ параметр будет сравнивать начало полей, то есть, выполнять ''​LIKE "​…%"''​ поиск.\\ \\ Игнорируется,​ если ''​searchWildcardsEnabled''​ задан равным ''​true''​. ​ | |startSearch ​ |логический |''​search''​ параметр будет сравнивать начало полей, то есть, выполнять ''​LIKE "​…%"''​ поиск.\\ \\ Игнорируется,​ если ''​searchWildcardsEnabled''​ задан равным ''​true''​. ​ |
 +
 +==== Примеры ====
 +
 +=== Проверка прав доступа пользователя ===
 +
 +Имеет ли пользовать права доступа на запись к узлам сети чьи имена начинаются с "​MySQL"​ или "​Linux"​ ?
 +
 +Запрос:​
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​method":​ "​host.get",​
 +    "​params":​ {
 +        "​countOutput":​ true,
 +        "​search":​ {
 +            "​host":​ ["​MySQL",​ "​Linux"​]
 +        },
 +        "​editable":​ true,
 +        "​startSearch":​ true,
 +        "​searchByAny":​ true
 +    },
 +    "​auth":​ "​766b71ee543230a1182ca5c44d353e36",​
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +Ответ:
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​result":​ "​0",​
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +<​note>​Нулевой результат означает,​ что узлы сети с правами чтения/​записи отсутствуют.</​note>​
 +
 +=== Подсчёт негативных данных ===
 +
 +Подсчёт количества узлов сети чьи имена не содержат подстроку "​ubuntu"​
 +
 +Запрос:​
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​method":​ "​host.get",​
 +    "​params":​ {
 +        "​countOutput":​ true,
 +        "​search":​ {
 +            "​host":​ "​ubuntu"​
 +        },
 +        "​excludeSearch":​ true
 +    },
 +    "​auth":​ "​766b71ee543230a1182ca5c44d353e36",​
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +Ответ:
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​result":​ "​44",​
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +=== Поиск узлов сети по шаблону имени ===
 +
 +Поиск узлов сети чьи имена содержат слово "​server"​ и имеют порты интерфейсов "​10050"​ или "​10071"​. Сортировка результата по имени узла сети в порядке убывания с ограничением вывода до 5 узлов сети.
 +
 +Запрос:​
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​method":​ "​host.get",​
 +    "​params":​ {
 +        "​output":​ ["​hostid",​ "​host"​],​
 +        "​selectInterfaces":​ ["​port"​],​
 +        "​filter":​ {
 +            "​port":​ ["​10050",​ "​10071"​]
 +        },
 +        "​search":​ {
 +            "​host":​ "​*server*"​
 +        },
 +        "​searchWildcardsEnabled":​ true,
 +        "​searchByAny":​ true,
 +        "​sortfield":​ "​host",​
 +        "​sortorder":​ "​DESC",​
 +        "​limit":​ 5
 +    },
 +    "​auth":​ "​766b71ee543230a1182ca5c44d353e36",​
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +Ответ:
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​result":​ [
 +        {
 +            "​hostid":​ "​50003",​
 +            "​host":​ "​WebServer-Tomcat02",​
 +            "​interfaces":​ [
 +                {
 +                    "​port":​ "​10071"​
 +                }
 +            ]
 +        },
 +        {
 +            "​hostid":​ "​50005",​
 +            "​host":​ "​WebServer-Tomcat01",​
 +            "​interfaces":​ [
 +                {
 +                    "​port":​ "​10071"​
 +                }
 +            ]
 +        },
 +        {
 +            "​hostid":​ "​50004",​
 +            "​host":​ "​WebServer-Nginx",​
 +            "​interfaces":​ [
 +                {
 +                    "​port":​ "​10071"​
 +                }
 +            ]
 +        },
 +        {
 +            "​hostid":​ "​99032",​
 +            "​host":​ "MySQL server 01",
 +            "​interfaces":​ [
 +                {
 +                    "​port":​ "​10050"​
 +                }
 +            ]
 +        },
 +        {
 +            "​hostid":​ "​99061",​
 +            "​host":​ "Linux server 01",
 +            "​interfaces":​ [
 +                {
 +                    "​port":​ "​10050"​
 +                }
 +            ]
 +        }
 +    ],
 +    "​id":​ 1
 +}</​code>​
 +
 +=== Поиск узлов сети по шаблону имени с "​preservekeys"​ ===
 +
 +Если вы добавите параметр "​preservekeys"​ к предыдущему запросу,​ результат вернётся как именованный массив,​ где ключами будут id объектов.
 +
 +Запрос:​
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​method":​ "​host.get",​
 +    "​params":​ {
 +        "​output":​ ["​hostid",​ "​host"​],​
 +        "​selectInterfaces":​ ["​port"​],​
 +        "​filter":​ {
 +            "​port":​ ["​10050",​ "​10071"​]
 +        },
 +        "​search":​ {
 +            "​host":​ "​*server*"​
 +        },
 +        "​searchWildcardsEnabled":​ true,
 +        "​searchByAny":​ true,
 +        "​sortfield":​ "​host",​
 +        "​sortorder":​ "​DESC",​
 +        "​limit":​ 5,
 +        "​preservekeys":​ true
 +    },
 +    "​auth":​ "​766b71ee543230a1182ca5c44d353e36",​
 +    "​id":​ 1
 +}
 +</​code>​
 +
 +Ответ:
 +<code java>
 +{
 +    "​jsonrpc":​ "​2.0",​
 +    "​result":​ {
 +        "​50003":​ {
 +            "​hostid":​ "​50003",​
 +            "​host":​ "​WebServer-Tomcat02",​
 +            "​interfaces":​ [
 +                {
 +                    "​port":​ "​10071"​
 +                }
 +            ]
 +        },
 +        "​50005":​ {
 +            "​hostid":​ "​50005",​
 +            "​host":​ "​WebServer-Tomcat01",​
 +            "​interfaces":​ [
 +                {
 +                    "​port":​ "​10071"​
 +                }
 +            ]
 +        },        ​
 +        "​50004":​ {
 +            "​hostid":​ "​50004",​
 +            "​host":​ "​WebServer-Nginx",​
 +            "​interfaces":​ [
 +                {
 +                    "​port":​ "​10071"​
 +                }
 +            ]
 +        },
 +        "​99032":​ {
 +            "​hostid":​ "​99032",​
 +            "​host":​ "MySQL server 01",
 +            "​interfaces":​ [
 +                {
 +                    "​port":​ "​10050"​
 +                }
 +            ]
 +        },
 +        "​99061":​ {
 +            "​hostid":​ "​99061",​
 +            "​host":​ "Linux server 01",
 +            "​interfaces":​ [
 +                {
 +                    "​port":​ "​10050"​
 +                }
 +            ]
 +        }
 +    },
 +    "​id":​ 1
 +}
 +</​code>​
 +