更新

描述

object host.update(object/array hosts)

该方法用来更新已存在的主机

参数

(object/array) 要更新的主机属性.

每个主机的hostid属性必须已定义过,其他属性为可选项.只会更新指定的属性,其他属性保持不变.另外,对于标准主机属性,此方法接受如下参数:

参数 类 描述
groups 对象/数组 替换主 当前归属的组.

主机组的groupid必须已定义.
interfaces 对象/数组 替换当 主机接口.
inventory 对象 主 资产清单属性.
macros 对象/数组 替换当 用户宏.
templates 对象/数组 替换当 链接的模板. 模板没有传递仅删除链接.

模板必须已定义过templateid属性
templates_clear 对象/数组 从主机 删除模板链接并清除.

模板必须已定义过templateid属性.

<note tip>相对于Zabbix前端,当namehost一致,更新host的时候不会自动更新name.两个属性需要明确的更新. 这两个属性都需要显式地更新. :::

返回值

(object)hostids属性中返回包含已更新主机ID对象.

示例

启用主机

启用主机,将status设置为0

请求:

{  "jsonrpc": "2.0",  "method": "host.update",  "params": {  "hostid": "10126",  "status": 0  },  "auth": "038e1d7b1735c6a5436ee9eae095879e",  "id": 1 }

响应:

{  "jsonrpc": "2.0",  "result": {  "hostids": [  "10126"  ]  },  "id": 1 }

删除模板链接

从主机中删除链接并清除两个模板.

请求:

{  "jsonrpc": "2.0",  "method": "host.update",  "params": {  "hostid": "10126",  "templates_clear": [  {  "templateid": "10124"  },  {  "templateid": "10125"  }  ]  },  "auth": "038e1d7b1735c6a5436ee9eae095879e",  "id": 1 }

响应:

{  "jsonrpc": "2.0",  "result": {  "hostids": [  "10126"  ]  },  "id": 1 }

更新主机宏

用两个新的宏替换主机所有的宏.

请求:

{  "jsonrpc": "2.0",  "method": "host.update",  "params": {  "hostid": "10126",  "macros": [  {  "macro": "{$PASS}",  "value": "password"  },  {  "macro": "{$DISC}",  "value": "sda"  }  ]  },  "auth": "038e1d7b1735c6a5436ee9eae095879e",  "id": 1 }

响应:

{  "jsonrpc": "2.0",  "result": {  "hostids": [  "10126"  ]  },  "id": 1 }

更新主机资产清单

更改资产清单模式并添加地点

请求:

{  "jsonrpc": "2.0",  "method": "host.update",  "params": {  "hostid": "10387",  "inventory_mode": 0,  "inventory": {  "location": "Latvia, Riga"  }  },  "auth": "038e1d7b1735c6a5436ee9eae095879e",  "id": 1 }

响应:

{  "jsonrpc": "2.0",  "result": {  "hostids": [  "10387"  ]  },  "id": 2 }

参考

来源

CHost::update() in frontends/php/include/classes/api/services/CHost.php.