查询

描述

integer/array hostprototype.get(object parameters)

该方法允许根据给定的参数获取主机原型记录。

该方法适用于管理员超级管理员用户类型。可以在用户角色设置中撤销调用该方法的权限。有关详细信息,参阅用户角色

参数

(object) 定义所需输出的参数。

该方法支持以下参数。

参数 类型 描述
hostids string/array 仅返回给定 ID 的主机原型。
discoveryids string/array 仅返回属于给定 LLD 规则的主机原型。
inherited boolean 如果设置为 true,则仅返回从模板继承的监控项。
selectDiscoveryRule query 返回一个带有 discoveryRule 属性的 LLD 规则,该主机原型属于该规则。
selectInterfaces query 返回一个带有 interfaces 属性的主机原型自定义接口。
selectGroupLinks query 返回一个带有 groupLinks 属性的主机原型的组链接。
selectGroupPrototypes query 返回一个带有 groupPrototypes 属性的主机原型的组原型。
selectMacros query 返回一个带有 macros 属性的主机原型宏。
selectParentHost query 返回一个带有 parentHost 属性的父主机,该主机原型属于该主机。
selectTags query 返回一个带有 tags 属性的主机原型标签。
selectTemplates query 返回一个带有与主机原型链接的 templates 属性。

支持 count
sortfield string/array 根据给定的属性对结果进行排序。

可能的值有:hostidhostnamestatus
countOutput boolean 这些参数对所有 get 方法都是通用的,详细描述在 参考说明 中。
editable boolean
excludeSearch boolean
filter object
limit integer
output query
preservekeys boolean
search object
searchByAny boolean
searchWildcardsEnabled boolean
sortorder string/array
startSearch boolean

返回值

(integer/array)返回以下:

  • 一组对象;
  • 如果countOutput 参数被使用,返回对象的数量。

示例

从LLD规则中获取主机原型

从LLD规则中获取所有主机原型,组链接,组原型和标签

请求:

{
           "jsonrpc": "2.0",
           "method": "hostprototype.get",
           "params": {
               "output": "extend",
               "selectInterfaces": "extend",
               "selectGroupLinks": "extend",
               "selectGroupPrototypes": "extend",
               "selectTags": "extend",
               "discoveryids": "23554"
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "result": [
               {
                   "hostid": "10092",
                   "host": "{#HV.UUID}",
                   "name": "{#HV.UUID}",
                   "status": "0",
                   "templateid": "0",
                   "discover": "0",
                   "custom_interfaces": "1",
                   "inventory_mode": "-1",
                   "groupLinks": [
                       {
                           "group_prototypeid": "4",
                           "hostid": "10092",
                           "groupid": "7",
                           "templateid": "0"
                       }
                   ],
                   "groupPrototypes": [
                       {
                           "group_prototypeid": "7",
                           "hostid": "10092",
                           "name": "{#CLUSTER.NAME}",
                           "templateid": "0"
                       }
                   ],
                   "tags": [
                       {
                           "tag": "Datacenter",
                           "value": "{#DATACENTER.NAME}"
                       },
                       {
                           "tag": "Instance type",
                           "value": "{#INSTANCE_TYPE}"
                       }
                   ],
                   "interfaces": [
                       {
                           "main": "1",
                           "type": "2",
                           "useip": "1",
                           "ip": "127.0.0.1",
                           "dns": "",
                           "port": "161",
                           "details": {
                               "version": "2",
                               "bulk": "1",
                               "community": "{$SNMP_COMMUNITY}"
                           }
                       }
                   ]
               }
           ],
           "id": 1
       }

参考

来源

CHostPrototype::get() in ui/include/classes/api/services/CHostPrototype.php