hostprototype.get

描述

integer/array hostprototype.get(object parameters)

该方法允许根据给定参数检索主机原型。

此方法可供任何类型的用户使用。调用该方法的权限可在用户角色设置中撤销。更多信息请参阅User roles

参数

(object) 定义输出结果的参数

该方法支持以下参数

参数 数据类型 描述
hostids string/array 仅返回指定ID的主机原型
discoveryids string/array 仅返回属于指定LLD规则的主机原型
inherited boolean 若设为true则仅返回从模板继承的监控项
selectDiscoveryRule query 返回包含主机原型所属LLD规则的lld规则属性
selectInterfaces query 返回包含主机原型自定义接口的自定义接口属性
selectGroupLinks query 返回包含主机原型组链接的组链接属性
selectGroupPrototypes query 返回包含主机原型组原型的组原型属性
selectMacros query 返回包含主机原型宏的macros属性
selectParentHost query 返回包含主机原型所属主机的parentHost属性
selectTags query 返回包含主机原型标签的主机原型标签属性
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) 返回以下两种结果之一:

  • 一个包含objects的array;
  • 若使用了countOutput参数,则返回检索到的objects数量。

示例

从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() 方法位于 ui/include/classes/api/services/CHostPrototype.php 文件中。