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 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
This is follow-up of change If9268cab8c2b3098d757571c6cab07d13d34a2c2
and adds the missing test coverage of the utility method.
Change-Id: I5e30e351d87475a0b56c3facbbe3c9c858e2783a
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
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
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
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
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
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
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
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
_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>
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>
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>
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
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
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
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>
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