Commit Graph

61217 Commits

Author SHA1 Message Date
Zuul d00a4d4f0f Merge "move nova-ovs-hybrid-plug to deploy with spice and fix qxl default" 2025-02-20 20:16:38 +00:00
Zuul 43eaed3016 Merge "Add a new ImagePropertiesWeigher" 2025-02-20 18:02:27 +00:00
Zuul f97505f9d2 Merge "Add fill_metadata() to InstanceList" 2025-02-20 17:35:03 +00:00
Sylvain Bauza acd6c733c6 Add a new ImagePropertiesWeigher
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
2025-02-20 02:49:08 +00:00
Sean Mooney d4f40976d0 move nova-ovs-hybrid-plug to deploy with spice and fix qxl default
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
2025-02-19 17:09:09 +00:00
Zuul 88a36a5a00 Merge "Respect supplied arguments in novncproxy_base_url" 2025-02-19 16:00:27 +00:00
Dan Smith 420050cf33 Add fill_metadata() to InstanceList
This adds a non-remotable method to InstanceList which will batch-
fill system_metadata for all the instances in the list that are
missing it in as efficient of a manner as possible. This does not
require an object bump because no remotable methods or fields are
changed.

Related to blueprint image-metadata-props-weigher

Change-Id: Icc47de2b677b3d212a7f6faa61a85ea9bff9f412
2025-02-19 07:45:20 -08:00
Zuul ae87118f98 Merge "Add unit test coverage of get_machine_ips" 2025-02-18 10:48:39 +00:00
Zuul b6ceea8e7c Merge "allow discover host to be enabled in multiple schedulers" 2025-02-18 09:38:48 +00:00
Zuul 12bc65f942 Merge "Disable the heal instance info cache periodic task" 2025-02-17 20:46:07 +00:00
Zuul 707967b4ae Merge "Add support for showing image properties in server show response" 2025-02-17 20:45:59 +00:00
Zuul 5771284c67 Merge "Update InstanceNUMACell version in more cases" 2025-02-17 20:45:49 +00:00
Zuul 25d224aa42 Merge "Update InstanceNUMACell version after data migration" 2025-02-17 20:07:47 +00:00
Zuul 466bac1608 Merge "Reproduce bug/2097359" 2025-02-17 20:07:40 +00:00
Zuul 2a5fac7c61 Merge "Drop dependency on netifaces" 2025-02-17 20:07:30 +00:00
Takashi Kajinami 9b9534c2f2 Add unit test coverage of get_machine_ips
This is follow-up of change If9268cab8c2b3098d757571c6cab07d13d34a2c2
and adds the missing test coverage of the utility method.

Change-Id: I5e30e351d87475a0b56c3facbbe3c9c858e2783a
2025-02-14 10:48:03 +00:00
Takashi Kajinami 46435daf5c Drop dependency on netifaces
The netifaces library was abandoned and retired. Replace it by psutil
which is already part of the dependencies.

Note that localhost_supports_ipv6 from openstacksdk should be mocked
now because it uses psutil in recent versions.

Closes-Bug: #2071596
Change-Id: If9268cab8c2b3098d757571c6cab07d13d34a2c2
2025-02-14 19:46:32 +09:00
Zuul 3ddfa2c79f Merge "Bump os-traits to 3.3.0 in requirements" 2025-02-13 14:16:02 +00:00
Balazs Gibizer 9507b7b92f Update InstanceNUMACell version in more cases
The data migration of InstanceNUMACell 1.4 to 1.5 only moved the data to
the new pcpuset field but does not update the ovo version string of the
object in the DB. The previous patch added the missing version update
logic. However it only fixes the issue if the data is not already "half"
migrated to the new structure. So this patch adds logic to also do the
right thing if the wrong data migration already happened.

At the end the solution needs to consider multiple scenarios:
* data is never migrated to the new schema so the new code needs
  to migrate it and update the version string to match the new schema.
  (done by the previous patch)
* data is half migrated by the buggy code and the new code need to
  finish the migration by stamping the version in the DB.
* data is half migrated and then further modified to use the new 1.6
  feature cpu_policy mixed.
* data version is older in the DB than we can meaningfully upgrade

Closes-Bug: #2097359
Change-Id: I10ecfa7841b15637dea3e4736e90faa5f33ddff3
2025-02-12 13:55:47 +01: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
Zuul 32326d4894 Merge "trivial: Remove legacy API artifact" 2025-02-10 16:46:39 +00:00
Zuul e36ec1b36b Merge "api: Allow min/max_version arguments to response" 2025-02-10 16:46:32 +00:00
René Ribaud c161914a4a Bump os-traits to 3.3.0 in requirements
Change-Id: Icf4aef5175c745b1d6feda309338e86277d79549
2025-02-07 15:56:20 +01:00
Balazs Gibizer 643a6a8a57 Update InstanceNUMACell version after data migration
The data migration of InstanceNUMACell 1.4 to 1.5 only moved the data to
the new pcpuset field but does not update the ovo version string of the
object in the DB. This resulted in an 1.6 data with an 1.4 version
string in the DB which subsequently causes that an old compute running
1.4 ovo version will think it got an old ovo even though the data is
already in the new format. This leads to instance lifecycle errors and
if the nova-compute saves the instance then it also leads to permanent
data loss.

So this change modified the data migration to also update the ovo version
in the DB so that the version string in the DB matches the schema the
data uses in the DB.

Related-Bug: #2097359
Change-Id: I9a99f10526f8e466ac04b035121b24be70a23dae
2025-02-07 11:41:55 +01:00
Sean Mooney e98393c5c2 allow discover host to be enabled in multiple schedulers
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
2025-02-06 13:53:21 +00:00
Zuul e27bbe72e0 Merge "Cleanup RBAC jobs in check/gate pipeline" 2025-02-05 20:25:50 +00:00
Sean Mooney b3f8815720 Disable the heal instance info cache periodic task
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
2025-02-05 19:49:01 +00:00
Ghanshyam Mann bb8ee15106 Cleanup RBAC jobs in check/gate pipeline
This commit does the following changes in gate testing:

- Test tempest-integrated-compute-rbac-old-defaults (Test the
  RBAC old defaults which are deprecated but still supported)
  in periodic weekly pipeline instead of check/gate pipeline.

  Reason: Old defaults are deprecated and it will be rare to
  have any changes in those. These should be ok to run weekly
  to know if anything is broken for old defaults.

- Remove tempest-integrated-compute-enforce-scope-new-defaults
  This test the new defaults which are enabled by default and
  tested in every job.

  Reason: We kept this job for cinder because their new defaults
  are not enabled by default. To test nova new defaults combination
  with cinder new defaults, we have Tempest job running in tempest
  gate (tempest-full-enforce-scope-new-defaults).

Change-Id: I3a1634ff71b39c722401dea8e77092228f9cc064
2025-02-04 19:37:17 +00:00
Ghanshyam Mann b8b11c69bd [Trivial] Fix the typo error
Change-Id: I8234bf6ee7973ef246d57c6da7fd95dbf35a2c0f
2025-02-04 11:33:48 -08:00
Balazs Gibizer ae2f9bd573 Reproduce bug/2097359
In Victoria InstanceNUMACell ovo got the new pcpuset field and a
connected in place data migration. If the cpu_policy is dedicated the
content of the cpuset is moved to to the new pcpuset field during the
load of the data from the DB and the ovo is persisted back to the DB.
However during this data migration the version of the ovo is not bumped
to the latest, 1.6, version. Therefore the DB contains an inconsistent
object as it has the new pcpuset field from 1.6 but the
nova_object.version is still set to 1.4. It turned out that this can
cause that an old compute node having ovo 1.4 code will not request a
back levelling of the ovo even if it is already data migrated to 1.6
causing data loss from the compute perspective. Also if the compute
saves the object back to DB then the data loss becomes persistent.

Related-Bug: #2097359
Change-Id: I76ee9d59abc39e29c54be7217491e911b88a0621
2025-02-04 17:55:23 +01:00
Zuul d267ede98f Merge "api: Allow min/max_version arguments to expected_errors" 2025-01-31 00:43:59 +00:00
Zuul 00c8012acf Merge "ironic: Fix ConflictException when deleting server" 2025-01-30 00:31:34 +00:00
Zuul 03ddf02dba Merge "Add ServersViewBuilderTestV296 unit test class" 2025-01-29 11:29:22 +00:00
Mark Goddard 6ebd8a56d1 ironic: Fix ConflictException when deleting server
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
2025-01-29 09:59:58 +00:00
Zuul 8c953d4d25 Merge "zuul: Add missing context comments for nova-next" 2025-01-28 22:32:50 +00:00
Zuul a49c146504 Merge "Fix typo in release note" 2025-01-28 20:11:38 +00:00
Stephen Finucane 41a8a6ff82 trivial: Remove legacy API artifact
_api_version was always being set to '2.1' so logic based on this wasn't
doing anything. Removing this also highlights a few other places where
we have useless variable assignment and mocking happening.

Change-Id: I4171191624e10513cbf094a3bebb4b1fcba3cc6c
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025-01-24 10:07:10 +00:00
Stephen Finucane 97ca3204ad api: Allow min/max_version arguments to response
As with expected_errors previously, this will allow us to get rid of the
duplicate function definitions that are the bane of my life as I add
schemas.

Change-Id: I6df7b257f7d2460b053a62f4393021d17789ea05
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025-01-24 10:07:10 +00:00
Stephen Finucane 06e1353334 api: Allow min/max_version arguments to expected_errors
This will allow us to get rid of the duplicate function definitions that
are the bane of my life as we add schemas.

Change-Id: I1fbcb5dec81bcd66a863155783de6273e806dc2c
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025-01-24 10:07:10 +00:00
James Page 6f537e756b Restore nova.virt.__init__
Commit 14b5232e12 dropped use of
pkg_resources but also completely removed the __init__.py from
the nova.virt directory.  This creates mayhem downstream in
distros where tooling considers this not a module and excludes it
from the installed package.

Restore the __init__.py to resolve this.

Change-Id: I40ee77ee3a41e1ff458c963f6609c03a5c69eb86
2025-01-23 08:37:20 +00:00
Zuul 932866d078 Merge "Run nova-next without periodic cache healing" 2025-01-22 18:30:38 +00:00
Masahito Muroi 466156c3d5 Add ServersViewBuilderTestV296 unit test class
This new class is an unit test class for the server view builder
v2.96, which reproduces the bug #2095364. The bug is the list
server API and the list server details API returns 500 Internal
Server Error if request_spec object is missing by any reason.

Related-Bug: #2095364
Change-Id: I80d06ea335dd6fb311c4b9c9a79dbaa46ebe695f
2025-01-21 09:57:40 +09:00
Zuul 3d21445b73 Merge "Add whitebox-devstack-multinode job to periodic" 2025-01-20 21:08:50 +00:00
Zuul 8e11079376 Merge "libvirt: Wrap un-proxied listDevices() and listAllDevices()" 2025-01-20 19:19:58 +00:00
melanie witt f304b9eaad libvirt: Wrap un-proxied listDevices() and listAllDevices()
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
2025-01-17 11:08:11 +00:00
Bogdan Dobrelya 26d174b65d Run nova-next without periodic cache healing
Neutron networking backends today are expected to work without
the periodic healing of the cache in Nova. Turn it off to gain
additional performance and in order to start testing this
setup in advance, before we are ready to change the default
value to it.

Change-Id: Ic90949cae840290dc376af7a7a3056babe2539f2
Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com>
2025-01-16 15:19:44 +01:00
Zuul e4efead033 Merge "Revert "libvirt: Wrap un-proxied listDevices() and listAllDevices()"" 2025-01-16 09:48:50 +00:00
Zuul aadf01d05e Merge "Improve heal_instance_info_cache periodic" 2025-01-16 00:42:51 +00:00
sean mooney a67ab85678 Revert "libvirt: Wrap un-proxied listDevices() and listAllDevices()"
This reverts commit 0fccb365dd.

Reason for revert: the current version does not have test coverage to assert the proxy is used so we should revert this and fix it before backporting

Change-Id: I51cf7da85e05131da72acdcf9be09121a326d414
2025-01-14 17:12:41 +00:00
Zuul 77e9ec0a65 Merge "Handle iso+gpt detections" 2025-01-14 00:58:43 +00:00