跳转到: 导航, 搜索

NovaInstanceActions

Warning.svg 旧设计页面

此页面曾用于帮助设计 OpenStack 早期版本的一个特性。该特性可能已经或尚未实现。因此,此页面可能不会更新,并且可能包含过时的信息。上次更新时间为 2014-05-15

  • Launchpad 条目: NovaSpec:instance-actions
  • 创建时间: 2012年11月5日
  • 贡献者: Andrew Laski, Johannes Erdfelt

总结

创建一个新的 instance_actions 表格,并创建一个 API 扩展来访问它。这将提供一个更好的错误报告机制,并让用户了解对其实例所执行的操作。

原理

目前,API 仅在实例处于 ERROR 状态时报告异步错误,但并非所有发生的问题都是致命的或无法恢复的。但我们目前的选择是在将实例设置为 ERROR 并能够将错误告知用户,或者继续/恢复并隐藏错误信息。以下是一些例子:

  • changePassword 失败会将实例设置为 ERROR,但这并非致命的
the running of the instance.  Changing that behavior would hide the error
information.
  • 在某些情况下,xenapi 驱动程序会记录代理失败并继续,这
can leave a user wondering why their instance isn't configured properly and no
way for them to retrieve that information.
  • 调整大小失败可以自动恢复到
original instance, but this would leave users no indication of why that
happened.

API 扩展将提供一种检索实例上执行的所有操作的机制,并将包含错误信息,无论 VM 状态如何。这将提高对实例发生情况的可见性,包括正常操作和发生的错误。 这也为未来的工作打开了机会,即仅在存在 VM 错误时才设置 VM ERROR 状态,而不是任务错误。

设计

新表格

一个新的表格 `instance_actions` 包含以下内容

  • 操作开始时间
  • 操作完成时间
  • 行动
  • instance_uuid
  • request_id
  • user_id
  • service_id
  • 结果,成功或失败
  • 如果适用,简短的错误消息
  • 如果适用,错误的堆栈跟踪

API 扩展

添加一个新的资源 GET /servers/<server_id>/os-instance-actions

{

  • "actions": [
  • {
  • "action": "",
  • "started_at": "",
  • "finished_at": "",
  • "request_id": "",
  • "user_id": "",
  • "service": "",
  • "result": "",
  • "message": ""
  • },
  • {...}
  • ]

}

未解决的问题

初步的想法是仅记录用户发起的动作,但这留下了自动调整大小确认的边缘情况。对于这种记录,这些是否应被视为用户发起的动作?

参考文献