The target goal of these series of patch is to enable VFIO devices
with kernel variant drivers.
Implements: blueprint enable-vfio-devices-with-kernel-variant-drivers
Change-Id: I7949ba6da8b6257865d8e9e48bf3feabc10bdf17
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
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
Currently, even when [libvirt] volume_use_multipath is set to True,
volume attachment silently falls back to single path if multipathd is
not running in the host. This sometimes prevents operators from
noticing the misconfiguration, until they face any issue caused by
missing redundancy.
Introduce the new [libvirt] volume_enforce_multipath option, which
makes the attachment process fail if multipathd is not running.
A similar parameter (enforce_multipath_for_image_xfer) was already
implemented in cinder and this change follows how the parameter is
implemented there.
Also add the check in init phase to detect lack of mulitipath daemon
during initializing driver.
Min version of os-brick has to be bumped due to the interface change
made by 8d919696a9f1b1361f00aac7032647b5e1656082 .
Implements: blueprint enforce-multipath
Change-Id: I828de70ca7b343a4562ace4049d2b3857dbf900a
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
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
This weigher will check how many instances in the host have the image
properties that are requested and will prefer by default to pack
instances with the same properties.
Implements blueprint: image-metadata-props-weigher
Change-Id: I3bfed44bd089c6b226d13c3ac4a0003411737cbd
In centos/rhel 9 qemu supprot for the qxl model was removed
with the removal of spice support.
In ubuntu 24.04 qemu support for qxl and spice supprot
has now also been removed.
debian 12 bookworm still support spice in there qemu package.
When we updated the default video model to virtio for x86 we
left a config driven special case for spice to default to qxl
since that nolonger works on centos or ubuntu based distos that
default is not helpful so this change removes the special case
making virtio the default for x86 regardless of the console used.
This change also updates the nova-ovs-hybrid-plug to test with spice
so that we have at least one job using it. to enable that the job is
moved to debian.
Closes-Bug: #2097529
Change-Id: I265ad2ced3729bed41bf53c58dcebadb775ce1f7
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
This change allows the nova-scheduler `discover hosts` periodic task
to be enabled on multiple scheduler instances without racing.
This is done by modifying the periodic to do a very simple form
of leader election.
implements: blueprint distributed-host-discovery
Change-Id: I96d74981e1cff8cc1fce4a74c8db3f7d58e20f33
The _heal_instance_info_cache periodic task predates
the introduction of the server external events API
which is now the canonical way to refresh the cache.
This change updates the default value of
``[compute]heal_instance_info_cache_interval``
to -1 disabling it by default.
The nova-ovs-hybrid-plug job is extended to test the
legacy configuration value and the config override is removed
from nova-next
Closes-Bug: #1996094
Related-Bug: #2089225
Change-Id: I33ac91bb4f3ead51af2f7005002d5eb5078540d9
When unprovision works via Ironic, all operations in _cleanup_deploy
have already been completed. Previous to this patch, we continue
attempting all the clean up steps, which eventually errors out with
BadRequest, or similar, and we complete the delete.
Howerver, if cleaning has started, we hit a conflict exception,
so we don't hit the expected error above.
Prior to moving to the SDK, that landed in Caracal,
we would retry on conflict errors. You can tweak the
config to keep retrying for the length of time cleaning
usually takes in your enviroment.
After this patch:
Ieda5636a5e80ea4af25db2e90be241869759e30c
We now hard fail with this error:
openstack.exceptions.ConflictException:
Failed to detach VIF xxx from bare metal node yyy
...
Node yyy is locked by host zzz,
please retry after the current operation is completed.
This change simply skips calling the operations that
will always error out, avoiding the need to wait for
cleainging to complete before getting the expected
error message.
Closes-Bug: #2019977
Related-Bug: #1815799
Change-Id: I60971b58cf1f24bdb5d40f668e380ebfee2ac495
This is similar to change I668643c836d46a25df46d4c99a973af5e50a39db
where the objects returned in a list from a libvirt call were not
tpool.Proxy wrapped. Because the objects are not wrapped, calling
methods on them such as listCaps() can block all other greenthreads
and can cause nova-compute to freeze for hours in certain scenarios.
This adds the same wrapping to libvirt calls which return lists of
virNodeDevice.
Closes-Bug: #2091033
Change-Id: I60d6f04d374e9ede5895a43b7a75e955b0fea3c5
In case an operator want to have NoVNC under a certain subpath instead
of the subdomain or custom port, they would need to instruct NoVNC
to establish WebSocket connection with a correct URI, which is passed
through `path` argument.
The implements parsing of novncproxy_base_url and appending token
to the request rather then re-writing request completely.
Implements: blueprint novnc-base-url-respect-extra-params
Change-Id: Ie900f4963a998222942c3d54a757ef1e625f7bf9
The official service type for Cinder according to [0] is
"block-storage", so it should be allowed in the validation regex.
[0] https://specs.openstack.org/openstack/service-types-authority/
Closes-Bug: 2092194
Change-Id: I9a57aa72cc9589cec08b0f8d5797108043747ef6
This change updates bdm for swap in finish_resize and revert_resize
functionality.
Change also adds supporting:
- unit and functional tests
- docs: releasenote
Closes-Bug: #1552777
Change-Id: Ic8aaa0728a43936cd4c6e1ed590e01ba8f0fbf5b
The functionality of this parameter is same as the http_proxy_to_wsgi
middleware in oslo.middleware. The http_proxy_to_wsgi middleware is
widely used in multiple OpenStack services and has been enabled in
default pipelines for several cycles. So the own implementation can be
completely replaced by the common one provided by the oslo library.
Change-Id: I5db80ca504e444346afcc264d3260861e54f266d
This patch add a notification when a share is detached from an instance.
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: I203b71a39878c3929b22b53220f58c12c0a4c0b9
This adds config options for unified limits quotas that allow
admin/operators to specify which resources they will require or ignore
to have unified limits set in Keystone.
The options are only used when ``[quota]driver`` is set to
``UnifiedLimitsDriver``.
When the resource strategy is set to 'require' (the default), the
resource list will represent the resources that are required to have a
registered limit set in Keystone.
When the resource strategy is set to 'ignore', the resource list will
represent the resources that will be ignored for quota enforcement if
they do not have a registered limit set in Keystone.
Related to blueprint unified-limits-nova-unset-limits
Change-Id: Icb08fadbdbf9c1bf354c3091f05edce80ebf68c3
This makes 'nova-manage limits migrate_to_unified_limits' scan the API
database for flavors and detect if any resource classes are missing
registered limits in Keystone.
Related to blueprint unified-limits-nova-unset-limits
Change-Id: I431176fd4d09201c551d8f82c71515cd4616cfea
You need a space after double backticks for things to render as expected.
Change-Id: I2a8127beb6c2c4cb80474e97166289f5bf4e8ea5
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Makes igb vif model supported for hosts with libvirt 9.3.0 and qemu
8.0.0 or higher.
Implements: blueprint igb-vif-model
Depends-On: https://review.opendev.org/c/openstack/os-traits/+/928582
(merged, released as 3.2.0)
Change-Id: I6a1d8058c640e5dc015889610c4ae864ed9a5ccb
This change fixes the get_device_by_alias function
to properly handle devices that do not have an
alias in the domain xml.
By definition if a device does not have an alias
it can't match a given alias, so this change adds
a hasattr check to ensure we do not attempt to check
the alias if it's not defined.
This eliminates this entire class of bugs for all
devices instead of just fixing it for a specific class.
Related-Bug: #1942345
Closes-Bug: #2074219
Change-Id: If417a43ea252647618e50391b63333f6b68bdfec
The following volume drivers were marked unsupported in cinder, and
subject for removal in future releases.
- Quobyte: 2c1a77056672b35d51ef15242d59a2d81d8a7696
- Windows SMB: c690fe7cbd0d307d92689f4fae03423aa7a91157
- Virtuozzo: cf01d7eaf370485fe3fb834a3bcad13b0773b6e1
Deprecate the libvirt volume drivers specifically used for these
backends, so that we can remove the corresponding volume driver code
from nova when cinder removes these drivers.
Change-Id: Ib5b2fbc3fbf1c076ab1eec611b471f16a5b71c06
Get the shared security groups the tenant has access to by making an
additional Neutron API call with the shared filter, if loaded.
Depends-On: https://review.opendev.org/c/openstack/neutron/+/811242
Related-Bug: #1942615
Implements: blueprint shared-security-groups
Change-Id: I6f2847e89a8e4c32ab7c992d6da229f820c4988d