更新

描述

object sla.update(object/array slaids)

这个方法运行更新已经存在的 SLA 条目。

这个方法只有 管理员超级管理员 两个用户类型可以使用。 可以在用户角色设置中取消调用该方法的权限。 查看 用户角色获取更多信息。

参数

(object/array) 更新 SLA 属性。

每个SLA必须定义 slaid 属性,所有其他属性都是可选的。只有传递的属性将被更新,所有其他属性将保持不变。

除了 标准的 SLA 属性,该方法还接收如下参数。

参数类型描述
service_tagsarraySLA 服务标签 用于替换当前的SLA服务标签。
schedulearraySLA 时间表 用于替换当前的时间表。
如果将参数指定为空,则会被解释为全天候(24x7)的计划。
excluded_downtimesarraySLA 排除停机时间 用于替换当前的排除的停机时间。

返回值

(object)slaids 属性下返回一个包含已更新的 SLA ID 的对象。

示例

更新服务标签

将ID为“5”的SLA设置为对NoSQL相关服务进行每月计算,而不更改其计划或排除的停机时间;将SLO设定为95%。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "sla.update",
  4. "params": [
  5. {
  6. "slaid": "5",
  7. "name": "NoSQL Database engines",
  8. "slo": "95",
  9. "period": 2,
  10. "service_tags": [
  11. {
  12. "tag": "Database",
  13. "operator": "0",
  14. "value": "Redis"
  15. },
  16. {
  17. "tag": "Database",
  18. "operator": "0",
  19. "value": "MongoDB"
  20. }
  21. ]
  22. }
  23. ],
  24. "id": 1
  25. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "slaids": [
  5. "5"
  6. ]
  7. },
  8. "id": 1
  9. }

改变 SLA 的时间表

将ID为 “5” 的SLA切换到 24x7 计划。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "service.update",
  4. "params": {
  5. "slaid": "5",
  6. "schedule": []
  7. },
  8. "id": 1
  9. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "slaids": [
  5. "5"
  6. ]
  7. },
  8. "id": 1
  9. }

修改 SLA 的排除停机时间

为ID为”5”的 SLA 添加计划内的 RAM 升级停机时间,持续4小时,日期为2022年4月6日,同时保留(需要重新定义)之前计划的软件升级停机时间,日期为2022年7月4日。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "service.update",
  4. "params": {
  5. "slaid": "5",
  6. "excluded_downtimes": [
  7. {
  8. "name": "Software version upgrade rollout",
  9. "period_from": "1648760400",
  10. "period_to": "1648764900"
  11. },
  12. {
  13. "name": "RAM upgrade",
  14. "period_from": "1649192400",
  15. "period_to": "1649206800"
  16. }
  17. ]
  18. },
  19. "id": 1
  20. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "slaids": [
  5. "5"
  6. ]
  7. },
  8. "id": 1
  9. }

来源

CSla::update() 在 ui/include/classes/api/services/CSla.php