将主机信息添加到实例操作事件

目前,实例 操作 事件记录不包含操作事件发生的主机信息。将此字段包含到实例 操作 事件记录中,将使管理员更容易定位错误发生的位置,并能更快地解决问题。

此蓝图建议将host字段添加到InstanceActionEvent对象和相关的API响应中。

https://blueprints.launchpad.net/nova/+spec/add-host-to-instance-action-events

问题描述

目前,管理员可以使用实例操作API查找实例操作信息,这对管理员和操作员非常有用。但是事件的主机信息没有被记录,也没有暴露给用户。

此主机信息有助于管理员找到事件发生的主机,特别是当发生一些失败事件时,管理员可以尽快找到失败的主机并查看日志。

用例

作为上层管理软件管理员,我希望能够尽快查询失败事件发生的主机,然后我可以在此主机中找到更多的系统状态和日志信息。

提议的变更

目前,实例操作事件记录在其上有一个host[1],我们只需要在记录事件时记录主机信息,并在响应中添加主机字段。

  • host字段添加到InstanceActionEvent对象。

  • 在记录事件时记录主机信息。

  • GET /servers/{UUID}/os-instance-actions/{REQ_ID}添加一个API微版本,以包含响应中的host字段。

备选方案

或者,上层管理软件(或管理员)可以监听版本化的实例通知 [2],该通知包含节点和实例的主机。

数据模型影响

InstanceActionEvent对象添加一个新的host字段,以记录事件发生的主机。

REST API 影响

GET /servers/{server_id}/os-instance-actions/{req_id} API添加一个新的微版本,以包含管理员的host字段和管理员及非管理员用户的混淆哈希主机ID hostId字段。

  • 对于管理员用户

    {
      "instanceAction": {
        "action": "stop",
        "events": [
          {
            "event": "compute_stop_instance",
            "finish_time": "2017-12-07T11:07:06.431902",
            "result": "Success",
            "start_time": "2017-12-07T11:07:06.251280",
            "traceback": null,
            "host": "host1",
            "hostId": "8a8d66db9eed58f2b1283d23acc9a32691290b603a716d81d8ed8c4e"
            }
        ],
        "instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13",
        "message": "",
        "project_id": "6f70656e737461636b20342065766572",
        "request_id": "req-3293a3f1-b44c-4609-b8d2-d81b105636b8",
        "start_time": "2017-12-07T11:07:06.088644",
        "updated_at": "2017-12-07T11:07:06.431902",
        "user_id": "fake"
      }
    }
    
  • 对于非管理员用户

    {
      "instanceAction": {
        "action": "stop",
        "events": [
          {
            "event": "compute_stop_instance",
            "finish_time": "2017-12-07T11:07:06.431902",
            "result": "Success",
            "start_time": "2017-12-07T11:07:06.251280",
            "hostId": "8a8d66db9eed58f2b1283d23acc9a32691290b603a716d81d8ed8c4e"
          }
        ],
        "instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13",
        "message": "",
        "project_id": "6f70656e737461636b20342065766572",
        "request_id": "req-3293a3f1-b44c-4609-b8d2-d81b105636b8",
        "start_time": "2017-12-07T11:07:06.088644",
        "updated_at": "2017-12-07T11:07:06.431902",
        "user_id": "fake"
      }
    }
    

安全影响

新添加的host字段的显示将由与traceback字段相同的策略控制,如果策略阻止用户,则将显示混淆哈希主机ID而不是主机名。

通知影响

其他最终用户影响

性能影响

其他部署者影响

开发人员影响

升级影响

实现

负责人

主要负责人

江益坤

其他贡献者

Kevin Zheng

工作项

  • InstanceActionEvent对象添加一个新的host字段,以记录事件发生的主机。

  • GET /servers/{server_id}/os-instance-actions/{req_id} API添加一个新的微版本,以包含管理员的host字段和非管理员用户的hostId字段。

  • 在 python-novaclient 中采用新的微版本。

  • 添加相关的测试。

依赖项

测试

需要新的树内功能和单元测试。

文档影响

更新API参考以包含此更改。

参考资料

历史

修订版

发布名称

描述

Rocky

提议