更新
描述
object host.update(object/array **hosts**)
该方法用来更新已存在的主机
参数
(object/array)
要更新的主机属性.
每个主机的hostid
属性必须已定义过,其他属性为可选项.只会更新指定的属性,其他属性保持不变.另外,对于标准主机属性,此方法接受如下参数:
参数 | 类型 | 描述 |
---|---|---|
groups | 对象/数组 | 替换主机当前归属的组. 主机组的 groupid 必须已定义. |
interfaces | 对象/数组 | 替换当前主机接口. |
inventory | 对象 | 主机资产清单属性. |
macros | 对象/数组 | 替换当前用户宏. |
templates | 对象/数组 | 替换当前链接的模板. 模板没有传递仅删除链接. 模板必须已定义过 templateid 属性 |
templates_clear | 对象/数组 | 从主机中删除模板链接并清除. 模板必须已定义过 templateid 属性. |
相对于Zabbix前端,当name
和host
一致,更新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.