VMPowerOnOff
- Launchpad 条目: https://blueprints.launchpad.net/nova/+spec/power-on-off-vm
- 创建时间: 2012年8月23日
- 贡献者: Chetan Kumar
总结
在 Nova 中添加以下功能:
- 在不销毁实例的情况下关闭虚拟机
- 在选择的可用区中启动已关闭的虚拟机
发布说明
添加了以下功能
- 在不销毁实例的情况下关闭虚拟机
- 稍后在选择的可用区中,使用相同的设置启动之前关闭的虚拟机
- 为此添加了一种新的电源状态 POWER_OFF
原理
无法关闭虚拟机并在稍后使用相同的网络设置启动它。
用户故事
用户希望稍后使用当前设置的现有虚拟机。
设计
- VmPowerOnOffController 将具有扩展功能,以
- 关闭虚拟机
- 在给定的可用区中启动虚拟机
实现
代码变更
添加 VmPowerOnOffController 以支持以下 API
1. 关闭虚拟机
URI: v2/<tenant_id>/servers/<server_id>/action
Request Body: JSON
{
"vm-poweroff": {}
}
Normal Response Code: 202
Error Response Code(s): Bad Request (400), Not Found(404)
Response: JSON
{
<To be Added>
}
Response: XML
<?xml version="1.0" encoding="UTF-8"?>
<To be Added>
2. 启动虚拟机
URI: v2/<tenant_id>/servers/<server_id>/action
Request body: JSON
{
"vm-poweron": {
"availability_zone": <availability_zone>
}
}
Request body: XML
<?xml version="1.0" encoding="UTF-8"?>
<To be Added>
Normal Response Code: 202
Error Response Code(s): Bad Request (400), Not Found(404)
Response: JSON
{
<To be Added>
}
Response: XML
<?xml version="1.0" encoding="UTF-8"?>
<To be Added>
需要处理的可能异常
- 虚拟机不在 POWER_OFF 状态。
- 虚拟机不存在。
- 权限不足:API 应返回带有适当错误消息的“错误请求 (400)”响应。
迁移
没有数据库或核心 API 更改。
测试/演示计划
正在添加的测试