Nova API microversion 变更记录 (持续更新)

时间:2022-07-03 21:40:03
Nova API 新增了 microversion 属性,每增加或改动一个API时都需要增加API microversion 版本, 并在 REST API 消息的头中增加 X-OpenStack-Nova-API-Version 字段指定API microversion 版本:

API microversion 的变更记录均在 nova/api/openstack/rest_api_version_history.rst 中记录, 细节可查看附带的spec连接:

2.1
---

2.1 版本是初始版本,当前默认使用2.1版本


2.2
---

版本2.2:
为Keypair增加了Type属性.

用户可以在创建keypair的"os-keypair" request中指定keypaird的type,目前支持的有 ssh 和 x509;
  如果没有提供该参数,则默认使用 ssh 类型。
  这个版本的 API 还将 HTTP 响应的返回值做出了调整,将创建的返回值从200变为201,删除的返回值从202变为204.
  SPEC: https://review.openstack.org/#/c/166663/1/specs/kilo/implemented/keypair-x509-certificates.rst


2.3 (Maximum in Kilo)
---------------------

版本2.3:(此版本为Kilo版发布前合入的最后一个版本)
  通过"os-extended-server-attributes"接口对外暴露虚拟机的扩展属性,包括"reservation_id","launch_index","ramdisk_id",  "kernel_id", "hostname","root_device_name"以及"user_data".
  对外暴露"os-extended-volumes"中"volumes_attached"的"delete_on_termination"属性。
  此版本针对于 EC2 API
  SPEC: https://review.openstack.org/#/c/166663/1/specs/kilo/implemented/ec2-api-required-additions.rst

2.4
---

版本2.4:
  对外暴露FixedIP的预定状态(reserved).
  "os-fixed-ips" API 对 "FixedIP" 对象提供了 "reserve/unreserve" 的操作,"FixedIP" 对象拥有
  "reserved" 属性,用于表示这个FixedIP是否被预定。
   SPEC: https://review.openstack.org/#/c/220338/2/specs/liberty/implemented/show-reserved-status-in-os-fixed-ips-api.rst

2.5
---

版本2.5:
  2.5之前对于"nova list --ip6 xxx" 命令并不支持(会显示所有虚拟机),2.5版本使得ipv6的过滤条件生效。
  SPEC: https://review.openstack.org/#/c/220338/2/specs/liberty/implemented/allow-ip6-search-for-non-admin.rst

2.6
---

版本2.6:
  删除旧的获取remote console 的 API, 包括:
  'os-getVNCConsole', 'os-getSPICEConsole', 'os-getSerialConsole'
and 'os-getRDPConsole' are removed.
  新增一个获取remote console的API: remote-consoles:
POST /servers/<uuid>/remote-consoles
{
"remote_console": {
"protocol": ["vnc"|"rdp"|"serial"|"spice"],
"type": ["novnc"|"xpvnc"|"rdp-html5"|"spice-html5"|"serial"]
}
}

Example response::

{
"remote_console": {
"protocol": "vnc",
"type": "novnc",
"url": "http://example.com:6080/vnc_auto.html?token=XYZ"
}
}

SPEC: 
https://review.openstack.org/#/c/220338/2/specs/liberty/implemented/consolidate-console-api.rst  

2.8
---

版本2.8:
  在为某个project(tenant)添加某个flavor的访问权限前,先检查flavor的 "is_public" 属性;
  使用 HTTPConfilct error来表示拒绝访问。
  SPEC: https://review.openstack.org/#/c/220338/2/specs/liberty/implemented/check-flavor-type-before-add-tenant.rst
  为remote console 中提供了两种新的协议支持:
  mks、webmks
   SPEC: https://review.openstack.org/#/c/220338/2/specs/liberty/implemented/vmware-webmks-console.rst

2.9
---

版本2.9:
  在虚拟机进行detailed view时,增加 "locked" 属性,如果虚拟机被锁则显示为true,否则为false.
  SPEC: https://review.openstack.org/#/c/220338/2/specs/liberty/implemented/add-locking-information-in-server-get-response.rst

2.10
----

版本2.10:
为 "os-keypair" 增加新的属性 "user_id", 管理员可以获取这些keypair的详细消息,为用户创建新的keypair等操作。  
  SPEC: https://review.openstack.org/#/c/220338/2/specs/liberty/implemented/admin-query-any-keypair.rst

2.11
----

版本2.11:
  暴露 "os-services" 的 "forced_down" 属性,用户可以使用update接口来变更这个属性。  
  SPEC : https://review.openstack.org/#/c/220338/2/specs/liberty/implemented/mark-host-down.rst

2.12 (Maximum in Liberty)
-------------------------

版本2.12(此版本位Liberty发布前最后一个版本):
  通过"os-virtual_interfaces" 对外暴露 VIF 的 "net-id" 属性,用户可以使用该接口对获取VIF设备的"net-id"。
  SPEC : https://review.openstack.org/#/c/198622/6/specs/liberty/approved/add-vif-net-id-in-vif-list.rst

2.13
----

版本2.13:
 在"os-server-groups" API 对外暴露server-groups所属的"project_id"以及"user_id"
  SPEC: https://review.openstack.org/#/c/209917/23/specs/mitaka/approved/add-project-id-in-os-server-groups-api.rst

2.14
----

版本2.14:
  在疏散虚拟机(evacuate)时不再需要提供"onSharedStorage"参数,Nova会自动判断这台虚拟机是否在共享存储上,用户密码(adminPass)从返回值中删除,用户通过 "os-server-password" 操作获取虚拟机密码。
  SPEC : https://review.openstack.org/#/c/183033/13/specs/mitaka/approved/optional-shared-storage-flag-in-evacuate-api.rst
2.15
----

 版本2.15:
  用户可以为"server-groups"提供 "soft-affinity" 和 "soft-anti-affinity" 的功能,意为尽最大努力的(非)亲和性,若不满足条件,会尝试采用不满足条件的情况创建虚拟机。
  SPEC: https://review.openstack.org/#/c/212504/6/specs/mitaka/approved/soft-affinity-for-server-group.rst

2.16
----

版本2.16:
  在查询虚拟机列表(servers/detail and servers/{server_id})时对外暴露虚拟机所在主机的状态。默认只对管理员生效。  
  SPEC : https://review.openstack.org/#/c/192246/20/specs/mitaka/approved/get-valid-server-state.rst

2.17
----

版本2.17:
  为虚拟机提供新的 crash dump (故障转储) 的 API, (虚拟机使用的)不同的系统可能需要修改相应的配置。
  SPEC: https://review.openstack.org/#/c/229255/11/specs/mitaka/approved/instance-crash-dump.rst

2.18
----
 
  版本2.18:
  提供不需要包含 project_id 的 API url 接口.
  BP: https://blueprints.launchpad.net/nova/+spec/service-catalog-tng 

2.19
----
  版本2.19:
  为虚拟机增加新的 "description" 属性,用于描述这台虚拟机,用户可以在创建,更新,重建时更新这个属性。
SPEC: https://review.openstack.org/#/c/228908/13/specs/mitaka/approved/user-settable-server-description.rst