25fbf32f22c7f1a8082269782034bf9477e96e48
Commit Graph

1048 Commits

Author SHA1 Message Date
Zuul
94ae45c1d1 Merge "api-ref: Fix server topology API docs" 2025年10月19日 10:37:37 +00:00
Sean Mooney
567dbe1867 hypervisors: Optimize uptime retrieval for better performance
The /os-hypervisors/detail API endpoint was experiencing significant
performance issues in environments with many compute nodes when using
microversion 2.88 or higher, as it made sequential RPC calls to gather
uptime information from each compute node.
This change optimizes uptime retrieval by:
* Adding uptime to periodic resource updates sent by nova-compute to the
 database, eliminating synchronous RPC calls during API requests
* Restricting RPC-based uptime retrieval to hypervisor types that support
 it (libvirt and z/VM), avoiding unnecessary calls that would always fail
* Preferring cached database uptime data over RPC calls when available
Closes-Bug: #2122036
Assisted-By: Claude <noreply@anthropic.com>
Change-Id: I5723320f578192f7e0beead7d5df5d7e47d54d2b
Co-Authored-By: Sylvain Bauza <sbauza@redhat.com>
Signed-off-by: Sean Mooney <work@seanmooney.info>
2025年09月05日 19:03:38 +01:00
Ghanshyam Maan
f914cb185c Add service role in Nova policy
RBAC community wide goal phase-2[1] is to add 'service'
role for the service APIs policy rule. This commit
defaults the service APIs to 'service' role. This way
service APIs will be allowed for service user only.
Tempest tests also modified to simulate the service-to-service
communication. Tempest tests send the user with service
role to nova API.
- https://review.opendev.org/c/openstack/tempest/+/892639>
Partial implement blueprint policy-service-role-default
[1] https://governance.openstack.org/tc/goals/selected/consistent-and-secure-rbac.html#phase-2
Change-Id: I1565ea163fa2c8212f71c9ba375654d2aab28330
Signed-off-by: Ghanshyam Maan <gmaan@ghanshyammann.com>
2025年08月27日 19:34:04 +00:00
Stephen Finucane
a8651eaff3 api: Separate volume, snapshot and volume attachments
These all belong in separate files. Make it so.
We also rename the volume_attachment schema file to volume_attachments,
to better link it to the actual API code, and tweak an error message to
fix some capitalization.
Change-Id: Iffefc263bbf19d18137207c0432c16fdb3c513f9
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025年08月26日 13:54:43 +01:00
Sean Mooney
93c0f9bc74 restrict swap volume to cinder
This change tightens the validation around the attachment
update API to ensure that it can only be called if the source
volume has a non empty migration status.
That means it will only accept a request to swap the volume if
it is the result of a cinder volume migration.
This change is being made to prevent the instance domain
XML from getting out of sync with the nova BDM records
and cinder connection info. In the future support for direct
swap volume actions can be re-added if and only if the
nova libvirt driver is updated to correctly modify the domain.
The libvirt driver is the only driver that supported this API
outside of a cinder orchestrated swap volume.
By allowing the domain XML and BDMs to get out of sync
if an admin later live-migrates the VM the host path will not be
modified for the destination host. Normally this results in a live
migration failure which often prompts the admin to cold migrate instead.
however if the source device path exists on the destination the migration
will proceed. This can lead to 2 VMs using the same host block device.
At best this will cause a crash or data corruption.
At worst it will allow one guest to access the data of another.
Prior to this change there was an explicit warning in nova API ref
stating that humans should never call this API because it can lead
to this situation. Now it considered a hard error due to the
security implications.
Closes-Bug: #2112187
Depends-on: https://review.opendev.org/c/openstack/tempest/+/957753
Change-Id: I439338bd2f27ccd65a436d18c8cbc9c3127ee612
Signed-off-by: Sean Mooney <work@seanmooney.info>
2025年08月18日 16:11:41 +00:00
Stephen Finucane
8ed52a058a api: Add response body schemas for server external events API
We also fix some issues in the api-ref, since it'll be another while
before we can replace that.
Change-Id: If661e3af796475637c0e76b3dfbfd5b7a7f38c24
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025年07月10日 11:38:38 +01:00
Zuul
bb71b953c7 Merge "api: Address issues with remote consoles APIs" 2025年06月27日 17:32:18 +00:00
Stephen Finucane
c4f81a54d5 api: Address issues with remote consoles APIs
* Add a note explaining presence of xvpvnc console type
* Make 'url' mandatory in create response
* Remove unnecessary description fields: we will populate these later
* De-deuplcate request body schemas
* Re-add references to the rdp console to the api-ref
Change-Id: I5555b8cf7a83fad689e98522850b5550b49566ed
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025年06月26日 18:49:59 +01:00
Zuul
64ca204c9c Merge "api: Address issues with instance actions API" 2025年06月16日 15:05:21 +00:00
Stephen Finucane
a0af4648b5 api: Address issues with hypervisors APIs
* Address an off-by-one error: the cpu_info field was modified in v2.28,
 not v2.27,
* Correct the api-ref to indicate that the 'servers' field is not
 actually required and will be missing if '?with_servers=false', while
 the 'name' and 'uuid' fields of servers entries *are* required.
* Clarify a comment about the above in the schemas.
* Uncouple the '_hypervisor_response' and '_hypervisor_detail_response'
 helper schemas. The minor increase in lines of code is worth it for
 the decrease in complexity.
* Add the 'host_ip', 'hypervisor_type', and 'hypervisor_version' fields
 to the list of required fields for "detail"-style responses (show and
 detailed list).
* Make the 'current_workload', 'disk_available_least', 'free_disk_gb',
 'free_ram_mb', 'host_ip' and 'running_vms' fields of the hypervisor
 "detail"-style responses nullable, and the 'current_workload',
 'disk_available_least', 'free_disk_gb', 'free_ram_mb' and
 'running_vms' fields of the deprecated statistics API nullable.
Change-Id: Ibe55b44e65fe17141c63cceae8a003816ffe4f23
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025年06月11日 13:07:54 +01:00
Stephen Finucane
3dcb0b6dcc api-ref: Fix server topology API docs
These 3 parameters will always be returned [1].
[1] https://github.com/openstack/nova/blob/c4c5134369/nova/api/openstack/compute/server_topology.py#L58-L62
Change-Id: I169750a3bfe2d4a776874b7f5fdce0bc1aa568a1
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025年06月10日 16:41:16 +01:00
Stephen Finucane
f09904f62d api: Address issues with instance actions API
The user_id and project_id fields can be null. Explain why.
Change-Id: I34353ec7e55845a83f5e2f1dc4b41dead4ac5c81
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025年06月10日 11:50:50 +01:00
Masahito Muroi
509820f156 Use dict object for request_specs_dict in the _list_view
The request_specs_dict in the _list_view is initialized as a
defaultdict object in order to return empty string as default.
But the request_spec_dict is replaced with a normal dict object in
the v2.96 microversion, then if server list and RequestSpec missmatch
happens by any reason, the List Server API and the List
Server Detail API hit 500 Internal server error because of key error.
This commit updates the req_spec_dict to use normal dict object, then
it returns sentinel object if there is no appropriate
request_spec object.
Closes-Bug: #2095364
Change-Id: If282b8709954f276cb5d48114437809d771a9958
2025年04月04日 17:06:25 +09:00
Ghanshyam Mann
7a00971b8f Fix microversion 2.98 doc/tests for update/rebuild APIs
microversion 2.98 changed the GET and GET list details
API response to expand the image field
- https://review.opendev.org/c/openstack/nova/+/939649
but when we change the views/servers.py then update server
and rebuild server API response also gets updated.
- https://review.opendev.org/c/openstack/nova/+/939649/12/nova/api/openstack/compute/views/servers.py#595
The microversion change actually changed the response for
the update and rebuild API but did not update the documentation
about this change. Neither added test for rebuild and update
which verify the response change.
Since microversion 2.75, we have made all these 4 APIs response
consistent.
Implements: blueprint image-properties-in-server-show
Change-Id: Ifc2edc59c601391a31fd8953c742969e5b368767
2025年02月28日 17:13:59 +00:00
Ghanshyam Mann
f9e89bc0d1 Fix microversion 2.96 for update/rebuild APIs
microversion 2.96 changed the GET and GET list details
APi response to add a new field 'pinned_availability_zone'
- https://review.opendev.org/c/openstack/nova/+/904568
but when we change the views/servers.py then update server
and rebuild server API response also gets updated.
- https://review.opendev.org/c/openstack/nova/+/904568/17/nova/api/openstack/compute/views/servers.py#309
The microversion change actually changed the response for
the update and rebuild API but did not update the documentation
about this change. Neither added test for rebuild and update
which verify the response change.
Since microversion 2.75, we have made all these 4 APIs response
consistent.
Change-Id: I31fbb3c5e689302713bfb7a254c5d0cc12de2dc4
2025年02月28日 17:06:18 +00:00
Douglas Viroel
2db8af71dd Add support for showing scheduler_hints in server details
Nova currently lacks a straightforward way to expose scheduler hints
associated with a server. This change extends existing Nova's
API to allow users to retrieve this information when it is available.
It adds a new API microversion to support returning the associated
scheduler_hints in ``GET /servers/{server_id}``, `GET /servers/detail``,
``PUT /servers/{server_id}`` and ``POST /server/{server_id}/action``
(rebuild) responses.
Implements: blueprint show-scheduler-hints-in-server-details
Change-Id: If0070cfbc218e0515bf3b58fc8c5067ae22c7072
2025年02月26日 17:50:25 -03:00
Michael Still
cbc263f6bc libvirt: allow direct SPICE connections to qemu
This patch adds a new console type, "spice-direct", which provides
the connection information required to talk the native SPICE protocol
directly to qemu on the hypervisor. This is intended to be fronted
by a proxy which will handle authentication separately.
A new microversion is introduced which adds the type "spice-direct"
to the existing "spice" protocol.
An example request:
POST /servers/<uuid>/remote-consoles
{
 "remote_console": {
 "protocol": "spice",
 "type": "spice-direct"
 }
}
An example response:
{
 "remote_console": {
 "protocol": "spice",
 "type": "spice-direct",
 "url": "http://localhost:13200/nova?token=XXX";
 }
}
This token can then be used to lookup connection details for the
console using a request like this:
GET /os-console-auth-tokens/<consoletoken>
Which returns something like this:
{
 "console": {
 "instance_uuid": <uuid>,
 "host": <hypervisor>,
 "port": <a TCP port number>,
 "tls_port": <another TCP port number>,
 "internal_access_path": null
 }
}
APIImpact
Change-Id: I1e701cbabc0e2c435685e31465159eec09e3b1a0
2025年02月22日 08:25:38 +11:00
Rajesh Tailor
05c6b6cdbb Add support for showing image properties in server show response
This change adds a new api microversion to add support for
including image properties in ``server show`` and ``server list
--long`` responses as well as in response for ``server rebuild``
instance action.
Implements: blueprint image-properties-in-server-show
Change-Id: Ic135389954e43e6478288c0cdcffd780915cdb40
2025年02月12日 10:57:03 +05:30
Stephen Finucane
37e3d960f4 api-ref: Update note on flavor disabled property
This is not admin-only as suggested by the api-ref. In addition, there is
no mechanism available to disable flavors so this will always be false.
Change-Id: Ie1906366c8f141c6f6c58f21b0ff67eb827df4c8
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025年01月08日 11:52:29 +00:00
René Ribaud
5e508a09b3 Attach Manila shares via virtiofs (API)
This patch introduce the REST API modifications to attach/detach a share
and list/show share mappings.
Manila is the OpenStack Shared Filesystems service.
These series of patches implement changes required in Nova to allow the shares
provided by Manila to be associated with and attached to instances using
virtiofs.
Implements: blueprint libvirt-virtiofs-attach-manila-shares
Change-Id: I0255a5697cd4ea148bd91c4f6fd183841d69a333
2024年11月27日 14:09:42 +01:00
Zuul
e4bd839547 Merge "Update api-ref for 2.95: evacuate to STOPPED" 2024年10月26日 06:01:29 +00:00
Balazs Gibizer
3c0eadae0b Reject AZ changes during aggregate add / remove host
After this patch nova rejects the add host to aggregate API action
if the host has instances and the new aggregate for the host would
mean that these instances need to move from one AZ (even from the
default one) to another. Such AZ change is not implemented in nova
and currently leads to stuck instances.
Similarly nova will reject remove host from aggregate API action if the
host has instances and the aggregate removal would mean that the
instances need to change AZ.
Depends-On: https://review.opendev.org/c/openstack/tempest/+/821732
Change-Id: I19c4c6d34aa2cc1f32d81e8c1a52762fa3a18580
Closes-Bug: #1907775 
2024年05月08日 14:56:56 +02:00
Zuul
a031921f42 Merge "Note the deleyad address view" 2024年04月29日 18:59:37 +00:00
afazekas
25c13220c6 Note the deleyad address view
The addresses field containes delayed (cached) information,
due to internal implementation details.
This used to be considered API contact breakage,
but apperently no plan for fixing it.
Change-Id: I8db2800ede0276d60138369ec2d60c55a1791040
2024年04月29日 17:30:10 +00:00
Artom Lifshitz
a8cfa5abc1 Update api-ref for 2.95: evacuate to STOPPED
When we added evacuate to STOPPED in microversion 2.95 in
d732ee38a1, we never updated our
api-ref. This patch just adds a sentence explaining how evacuate
behaves starting in 2.95.
Related: bp/allowing-target-state-for-evacuate
Change-Id: I1ed7211bcdd85547d3c7d8d396b6efab36b835c6
2024年04月21日 13:40:57 -04:00
Rajesh Tailor
c98c8d84ee Add support for showing requested az in output
As of now, the server show and server list --long output
shows the availability zone, that is, the AZ to which the
host of the instance belongs. There is no way to tell from
this information if the instance create request included an
AZ or not.
This change adds a new api microversion to add support for
including availability zone requested during instance create
in server show and server list --long responses.
Change-Id: If4cf09c1006a3f56d243b9c00712bb24d2a796d3
2024年03月01日 21:39:04 +05:30
Ghanshyam Mann
0c1e1ccf03 HyperV: Remove RDP console API
RDP console was only for HyperV driver so removing the
API. As API url stay same (because same used for other
console types API), RDP console API will return 400.
Cleaning up the related config options as well as moving its
API ref to obsolete seciton.
Keeping RPC method to avoid error when old controller is used
with new compute. It can be removed in next RPC version bump.
Change-Id: I8f5755009da4af0d12bda096d7a8e85fd41e1a8c
2024年02月13日 12:24:38 -08:00
Ghanshyam Mann
3e47439a68 HyperV: Remove RDP console connection information API
The RDP console was only available for HyperV driver, therefore its
connection information via API ``os-console-auth-tokens`` will now return
HTTP ``400 (BadRequest)`` error.
Starting from 2.31 microversion, this API return connection info
for all other console type.
Change-Id: I94e590eb4cbe3b2d8eff7fe881f7b98af8979be2
2024年02月13日 19:28:07 +00:00
Ghanshyam Mann
c76c72cfe0 Remove HyperV: cleanup doc/code ref
Cleanup doc/code ref of HyperV driver.
Change-Id: I6cd8fb90829e040bfd356ff6b1c41aa9a1c906d2
2024年02月07日 12:08:07 -08:00
Zuul
ca0a279727 Merge "[codespell] fix typos in api-ref" 2023年12月11日 10:22:20 +00:00
Sean Mooney
320c6fadde [codespell] fix typos in api-ref
this change uses codespell to fix typos in
the api-ref and updates setup.cfg to exclude more
binary types and build files.
Change-Id: Ife9bf9a87c70126969bf43f7aa4a3645617de901
2023年10月03日 01:09:59 +01:00
Stephen Finucane
c2ab7918e4 doc: Remove crud from conf.py file
Change-Id: Ie8078739d077a903e3ad83d27b178eda416b0859
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2023年10月02日 11:11:23 +01:00
Sylvain Bauza
2d320f9b00 Add a new policy for cold-migrate with host
We add a new specific policy when a host value is provided for cold-migrate,
but by default it will only be an admin-only rule in order to not change
the behaviour.
Change-Id: I128242d5f689fdd08d74b1dcba861177174753ff
Implements: blueprint cold-migrate-to-host-policy
2023年06月26日 11:34:12 +02:00
Artom Lifshitz
9980b9ad52 Microversion 2.94: FQDN in hostname
Extend microversion 2.90 to allow FQDNs in the hostname parameter.
Multi-create with --hostname continues to be refused, returning error
400 to the user. This simplifies the code by not needing to handle any
sort of suffix or prefix mangling of the FQDN to handle multiple
instances. No other changes are made - not Neutron integration,
metadata API changes (the FQDN will appear as-is in places where the
hostname currently appears), etc.
Change-Id: I47e397dc6da8263762479cc8ae4f8777a6d9d811
Implements: bp/fqdn-in-hostname
2023年01月17日 10:59:37 -05:00
Patrick Hampson
8f1cc5a8f0 Doc: Fix list servers detailed response param
Change-Id: If94895d0fc4b5a59febd02e127fbf93959084fee
2022年10月28日 21:55:12 +00:00
Amit Uniyal
b7356303cd Updated flavors doc
Flavor with special characters in flavor ID is not allowed to create
Closes-Bug: 1920938
Change-Id: I600ae07f7fb039c9ccf461c4bf74ae42d9a3744f
2022年09月17日 17:40:52 +00:00
Dan Smith
45c5b80fd0 Add API support for rebuilding BFV instances
This adds a microversion and API support for triggering a rebuild
of volume-backed instances by leveraging cinder functionality to
do so.
Implements: blueprint volume-backed-server-rebuild
Closes-Bug: #1482040
Co-Authored-By: Rajat Dhasmana <rajatdhasmana@gmail.com>
Change-Id: I211ad6b8aa7856eb94bfd40e4fdb7376a7f5c358
2022年08月31日 18:05:03 +05:30
Sylvain Bauza
a755e5d9f2 api: Drop generating a keypair and add special chars to naming
As agreed in the spec, we will both drop the generation support for a keypair
but we'll also accept @ (at) and . (dot) chars in the keyname, all of them in
the same API microversion.
Rebased the work from I5de15935e83823afa545a250cf84f6a7a37036b4
APIImpact
Implements: blueprint keypair-generation-removal
Co-Authored-By: Nicolas Parquet <nicolas.parquet@gandi.net>
Change-Id: I6a7c71fb4385348c87067543d0454f302907395e
2022年07月28日 11:05:50 +02:00
René Ribaud
09239fc2ea Allow unshelve to a specific host (REST API part)
This adds support to the REST API, in a new microversion, for specifying
a destination host to unshelve server action when the server
is shelved offloaded.
This patch also supports the ability to unpin the availability_zone of an
instance that is bound to it.
Note that the functional test changes are due to those tests using the
"latest" microversion 2.91.
Implements: blueprint unshelve-to-host
Change-Id: I9e95428c208582741e6cd99bd3260d6742fcc6b7
2022年07月22日 10:22:34 +02:00
Artom Lifshitz
4eddcf77c9 api-ref: Adjust BFV rescue non-support note.
Rescuing BFV instances became a thing in 2.87. Fix our api-ref.
Change-Id: I9c4fbea53b05490cf05ebd311b25791fa191af16
2021年11月22日 14:19:25 -05:00
Zuul
276fb9c5c7 Merge "Add some missing parameters in docs of os-cells" 2021年09月01日 17:06:06 +00:00
budebao
191712594d Add some missing parameters in docs of os-cells
Change-Id: I48c68e135bdfa7229eac6b242b7f80b005761ee8
2021年08月25日 16:53:47 +08:00
Zuul
33e46b1aec Merge "api: Introduce microversion 2.89 adjusting os-volume_attachments" 2021年08月24日 21:38:48 +00:00
Lee Yarwood
ac21c6674c api: Introduce microversion 2.89 adjusting os-volume_attachments
This microversion adds attachment_id and bdm_uuid as stored in the
underlying bdm record while also removing the duplicate id field from
the responses of ``GET /servers/{server_id}/os-volume_attachments`` and
``GET /servers/{server_id}/os-volume_attachments/{volume_id}``.
To accomidate this within the _translate_attachment_summary_view helper
is folded into _translate_attachment_detail_view with the remaining
caller in the now deprecated os-volumes API now replaced with a static
dictionary.
Blueprint: add-attachmentid-to-responses-of-the-os-volume-attachments-api
Change-Id: I977c3fd9bbb1e1d42e6979222137e7366d2815e8
2021年08月24日 12:07:41 +01:00
Stephen Finucane
289438b4c2 docs: Drop references to non-filter scheduler drivers
Take the opportunity to clean up the docs quite a bit, ultimately
combining two disparate guides on the scheduler into one.
Change-Id: Ia72d39b4774d93793b381359b554c717dc9a6994
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2021年08月23日 16:45:37 +01:00
Balazs Gibizer
559404c23b trivial: fix word duplication in api ref
Change-Id: I3878fb9f36bb05dbb949f137a5d5c6664a27b69f
Closes-Bug: #1920256 
2021年03月22日 09:22:39 +01:00
Zuul
6517c56429 Merge "api-ref: Add notes about volume attach and detach being async" 2021年01月20日 17:54:42 +00:00
Stephen Finucane
40e0578683 api-ref: Clarify 'all_tenants' command
An empty value for the 'all_tenants' query parameter of '/servers' and
'/servers/detail' means the value defaults to 'True', i.e. requesting
'/servers?all_tenants' is the same as '/servers?all_tenants=1'. Clarify
this, since the current wording is confusing.
Change-Id: Ib5fdd3b73aa5179e0379ee8f465e4118107786be
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-Bug: #1909745 
2021年01月15日 15:21:08 +00:00
Stephen Finucane
5e2c31ab78 api: Add support for 'hostname' parameter
Add microversion 2.90, which allows allows users to configure the
hostname that will be exposed via the nova metadata service when
creating their instance.
Change-Id: I95047c1689ac14fa73eba48e19dc438988b78aad
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2021年01月14日 11:42:43 +00:00
Zuul
9757eebcba Merge "fup: Fix os-volume_attachments api-ref parameters" 2021年08月25日 10:16:21 +00:00