Commit Graph

60515 Commits

Author SHA1 Message Date
Stephen Finucane 3973fc393c Bump hacking version
This bumps the version of flake8 and resolves some erroneous failures in
f-strings. A number of new E721 (do not compare types) class errors are
picked up, which are all addressed.

Change-Id: I7a1937b107ff3af8d1e5fe23fc32b120ef4697f7
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2023-12-14 10:54:26 +00:00
Zuul 85254256b4 Merge "Detach disks using alias when possible" 2023-12-12 14:54:05 +00:00
Zuul 25e4715c0c Merge "Set libvirt device alias for volumes" 2023-12-12 14:53:58 +00:00
Zuul b8b45a571b Merge "Support setting alias on libvirt disks" 2023-12-12 14:42:58 +00:00
Zuul 051d95b377 Merge "[codespell] doc,devstack and gate typos" 2023-12-11 17:44:04 +00:00
Zuul da1c40dae9 Merge "[codespell] apply codespell to the releasenotes" 2023-12-11 12:40:51 +00:00
Zuul ca0a279727 Merge "[codespell] fix typos in api-ref" 2023-12-11 10:22:20 +00:00
Zuul c7dba52e4e Merge "[codespell] start fixing all the typos" 2023-12-11 09:06:40 +00:00
Zuul fc7f5a1b2f Merge "Fix a couple of typos" 2023-12-09 22:24:46 +00:00
Balazs Gibizer ed2ac71a46 [pwmgmt]ignore missin governor when cpu_state used
When cpu_state power management strategy is requested nova-compute
should not fail to start if there is no cpufreq governor is supported by
the host.

Closes-Bug: #2045966
Change-Id: Ice2fa47bdab320a7e472fbb4767761448d176bad
2023-12-08 12:12:58 +01:00
Zuul 3ee643b459 Merge "Use SDK for remaining network operations" 2023-12-08 07:38:26 +00:00
Zuul 47d201dd5d Merge "Use SDK for node.vif*" 2023-12-07 22:28:44 +00:00
Zuul 2b100a125a Merge "Set UEC image vars for jobs not defined in Nova" 2023-12-07 21:08:37 +00:00
Zuul 089816c34c Merge "Remove redundant setting of DEFAULT_IMAGE_NAME(_FILE)" 2023-12-07 21:08:29 +00:00
Zuul 4d52929142 Merge "Use SDK for node.set_power_state" 2023-12-07 17:35:56 +00:00
Zuul 2cac00a915 Merge "Use SDK for node.set_provision_state" 2023-12-07 17:35:49 +00:00
Zuul ad24014715 Merge "Use SDK for volume_target.*" 2023-12-07 17:35:42 +00:00
Zuul 4b49883318 Merge "Use SDK for getting network metadata from node" 2023-12-07 17:33:30 +00:00
Zuul 302e286408 Merge "Use SDK for add/remove instance info from node" 2023-12-07 17:30:28 +00:00
Zuul 7bc5e65c77 Merge "Fix coverage issues with eventlet" 2023-12-06 21:32:13 +00:00
melanie witt d3181bf202 Set UEC image vars for jobs not defined in Nova
This is another follow up for change
I1a6468fbfa51eedec0ab91d73f313784a9a618a0 which missed setting the
*uec_image_vars for jobs that are not defined in Nova. For example,
the tempest-integrated-compute job is not defined in Nova and if we
don't set *uec_image_vars for it, it will not use the UEC image and
will instead use the default full image.

This also sets *uec_image_vars for one job defined in Nova,
nova-osprofiler-redis, that was missed in the original change.

Change-Id: Ia8741d46c28277e9addadf0e2a568c3ad86fb8dc
2023-12-06 19:01:06 +00:00
Zuul 09b651540f Merge "Use split kernel/initramfs Cirros UEC image by default in jobs" 2023-12-06 11:13:13 +00:00
melanie witt 07d4138a43 Remove redundant setting of DEFAULT_IMAGE_NAME(_FILE)
This is a follow up for change
I1a6468fbfa51eedec0ab91d73f313784a9a618a0 which had residue from an
earlier PS that set DEFAULT_IMAGE_NAME and DEFAULT_IMAGE_FILE_NAME
intended to override project.vars. The project.vars approach did not
work because we needed to set IMAGE_URLS as well and the
devstack-tempest ancestor job sets IMAGE_URLS which overrides
project.vars.

The approach was changed to use YAML anchors instead of project.vars to
reduce duplication, which made the setting of DEFAULT_IMAGE_NAME and
DEFAULT_IMAGE_FILE_NAME in nova-next redundant as the default values
from Devstack can be used.

This removes the setting of DEFAULT_IMAGE_NAME and
DEFAULT_IMAGE_FILE_NAME in nova-next.

Change-Id: I3929b6c55d77575a6c0bd205f933cc2a690db91e
2023-12-05 22:30:52 +00:00
Zuul 7cd2ea3652 Merge "pre-commit: Use native hacking pre-commit hook" 2023-12-05 14:55:24 +00:00
Zuul 4b189070e8 Merge "pre-commit: Update plugin versions" 2023-12-05 14:53:56 +00:00
Zuul 404a9f0ab8 Merge "doc: Remove crud from conf.py file" 2023-12-05 12:56:37 +00:00
Zuul 0d0600d62e Merge "Do not untrack resources of a server being unshelved" 2023-12-05 12:56:30 +00:00
Stephen Finucane 71edcc3758 Use SDK for remaining network operations
We would like nova not to use ironicclient, but instead to invoke the
ironic API directly through an openstacksdk connection.

In this change, we migrate the remaining network-related operations.

Change-Id: Iebf3f4352083755c9e93b10a87ca58e90ed35500
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2023-12-05 12:07:41 +00:00
Stephen Finucane b648bfc56d Use SDK for node.vif*
We would like nova not to use ironicclient, but instead to invoke the
ironic API directly through an openstacksdk connection.

In this change, we migrate the calls to 'vif_attach' and 'vif_detach'
across.

Note that a workaround is removed since the referenced change merged
over 4 years ago (in Queens) and openstacksdk is doing the correct thing
wrt retrying [1].

[1] https://github.com/openstack/openstacksdk/blob/0.103.0/openstack/baremetal/v1/node.py#L682-L688

Change-Id: Ieda5636a5e80ea4af25db2e90be241869759e30c
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2023-12-05 12:07:41 +00:00
Stephen Finucane 4bffd6fc21 Use SDK for node.set_power_state
We would like nova not to use ironicclient, but instead to invoke the
ironic API directly through an openstacksdk connection.

In this change, we migrate all 'set_power_state' calls across. There are
a few of these but they're nothing complicated.

Note that SDK does not expose a 'soft' flag on the
'set_node_power_state' method. Instead, it simply expects the real power
state strings rather than a combination of strings with the flag like
ironicclient [1]

Note that there's actually a small feature regression here in that
openstacksdk doesn't support server-side timeouts yet [2]. We pass
through the option and will get this for free once SDK gains this
functionality. Until then, we can rely on client-side timeouts.

[1] https://github.com/openstack/python-ironicclient/blob/5.0.1/ironicclient/v1/node.py#L27-L33
[2] https://github.com/openstack/openstacksdk/blob/0.103.0/openstack/baremetal/v1/node.py#L638-L639

Change-Id: Ie9b975a5200b9465e4408995df33927182cfe56b
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2023-12-05 12:07:41 +00:00
Stephen Finucane ba44ac9baf Use SDK for node.set_provision_state
We would like nova not to use ironicclient, but instead to invoke the
ironic API directly through an openstacksdk connection.

In this change, we migrate all 'set_provision_state' calls across. There
are a few of these but they're nothing complicated. The only significant
change we need to make is that SDK does not automatically convert bytes
to str so we need to do this ourselves. Tests are included to prevent
regressions.

Change-Id: I5efbf0dd685ca4432b68ee625637fac741dee24b
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2023-12-05 12:07:41 +00:00
Stephen Finucane 03e2865ba1 Use SDK for volume_target.*
We would like nova not to use ironicclient, but instead to invoke the
ironic API directly through an openstacksdk connection.

In this change, we migrate the various volume_target related API calls
to openstacksdk. There are only three and they're all relatively simple,
which is nice 🎉

Note that SDK does not expose 'uuid' properties but rather 'id'
properties thus some small refactors are necessary.

Change-Id: I20eb470dc0c7208f9a9aa8240c25a49f458abc23
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2023-12-05 12:07:41 +00:00
Dustin Cowles 6309013283 Use SDK for getting network metadata from node
We would like nova not to use ironicclient, but instead to invoke the
ironic API directly through an openstacksdk connection.

This change changes how we retrieve network metdata from a node.

Change-Id: If36fde647348099d5a5519dc6300d625869a4862
2023-12-05 12:07:41 +00:00
Dustin Cowles d6fa357e80 Use SDK for add/remove instance info from node
We would like nova not to use ironicclient, but instead to invoke the
ironic API directly through an openstacksdk connection.

The parent commits set up the framework, and this commit uses it
for adding and removing instance info from the node.

Depends on field mapping in the OpenStack SDK. That work maps SDK
field names to Ironic API field names within the SDK which allows
for consistency between fields in calls and parameters on returned
objects.

Change-Id: Id427e7923ff3a9d2957586fba5ccef0216318e6f
2023-12-05 12:07:41 +00:00
Zuul f771778282 Merge "Reproduce bug #2025480 in a functional test" 2023-12-05 11:43:43 +00:00
Zuul 33ab9c5d0e Merge "[libvirt]Add migration_inbound_addr" 2023-12-05 11:43:35 +00:00
Zuul 42f32f8b79 Merge "Add retry on attachment_update" 2023-12-05 11:38:22 +00:00
Zuul 4ff8d38927 Merge "Remove workaround for old python-ironicclient" 2023-12-05 11:38:02 +00:00
melanie witt 326279962b Use split kernel/initramfs Cirros UEC image by default in jobs
This change is in attempt to reduce the occurrence of guest kernel
panics in the APIC timer handler that we have been seeing in job
failures more recently.

We will try using the split kernel/initramfs image by default for jobs
and use the full disk image in the nova-next job to cover testing of
the full image.

The approach follows the example of CI improvements that were made in
the Neutron project in the past:

  https://review.opendev.org/c/openstack/neutron/+/843237
  https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/821067

Depends-On: https://review.opendev.org/c/openstack/tempest/+/902609

Change-Id: I1a6468fbfa51eedec0ab91d73f313784a9a618a0
2023-12-05 07:24:48 +00:00
Zuul 3a3e01aae1 Merge "Fix traits to cpu flags mapping" 2023-12-04 15:57:26 +00:00
Takashi Natsume d4f34ab8d8 Update contributor guide for 2024.1 Caracal
Signed-off-by: Takashi Natsume <takanattie@gmail.com>
Change-Id: Ie3eea6fcbe2ce20587d23eb9e07fde1e10e21a2a
2023-11-30 23:47:56 +00:00
Ali Safari 99fe8c93a1 Fix traits to cpu flags mapping
Following keys like HW_CPU_X86_SVM and HW_CPU_X86_VMX are placed in TRAITS_CPU_MAPPING as part of a tuple instead of being direct keys.
This patch will flaten these tuples.
Closes-Bug: #2043030

Change-Id: Ia600ceb22c5939117095593b97ed94735c8f953c
2023-11-30 16:52:04 +03:30
Zuul 8ac050c253 Merge "Packed virtqueue support was added." 2023-11-30 12:12:03 +00:00
Danylo Vodopianov eb8519d811 Packed virtqueue support was added.
1) Extend flavor/image extra spec.
2) New xml parameter for qemu command was added.
3) New request filter added for scheduler.
4) Unit and Functional tests were updated
5) Requirments was updated ( os-traits = 3.0.0 )
6) Releasnote was added

Nova spec: https://review.opendev.org/c/openstack/nova-specs/+/868377

Depends-On: https://review.opendev.org/c/openstack/os-traits/+/876069
Change-Id: I789eeae86947e9a3cbd7d5fcc58d2aabe3b8b84c
2023-11-29 16:06:33 +02:00
Rajesh Tailor 1f8ce3cc70 Add retry on attachment_update
In nova-live-migration job, evacuation failures are causing
POST_FAILURE.

As per discussion on bug, it looks like 500 is coming from cinder
which is cause of this failure.

Similar to attachment_delete method, this change adds a retry
mechanism in cinder API calls attachment_update method.

Closes-Bug: #1970642
Change-Id: I1da3c8481f7e7a1e8776cf03f5c4cf117b7fabaa
2023-11-24 13:31:04 +05:30
Zuul 1738b52c30 Merge "Detect maximum number of SEV guests automatically" 2023-11-23 18:13:25 +00:00
Takashi Kajinami 03055de176 Detect maximum number of SEV guests automatically
Libvirt has implemented the capability to expose maximum number of
SEV guests and SEV-ES guests in 8.0.0[1][2]. This allows nova to detect
maximum number of memory encrypted guests using that feature.
The detection is not used if the [libvirt] num_memory_encrypted_guests
option is set to preserve the current behavior.

Note that current nova supports only SEV and does not support SEV-ES,
so this implementation only uses the maximum number of SEV guests.
The maximum number of SEV-ES guests will be used in case we implement
support for SEV-ES.

[1] https://gitlab.com/libvirt/libvirt/-/commit/34cb8f6fcd6a56a7bbcef2f7402def1682509e16
[2] https://gitlab.com/libvirt/libvirt/-/commit/7826148a72c97367fc6aaa76397fe92d32169723

Implements: blueprint libvirt-detect-sev-max-guests
Change-Id: I502e1713add7e6a1eb11ecce0cc2b5eb6a14527a
2023-11-23 07:58:54 +00:00
Zuul 670ba207bc Merge "Allow enabling cpu_power_management with 0 dedicated CPUs" 2023-11-22 07:55:31 +00:00
Balazs Gibizer b1a0aee1ab Allow enabling cpu_power_management with 0 dedicated CPUs
The CPU power management feature of the libvirt driver, enabled with
[libvirt]cpu_power_management, only manages dedicated CPUs and does not
touch share CPUs. Today nova-compute refuses to start if configured
with [libvirt]cpu_power_management=true [compute]cpu_dedicated_set=None.
While this is functionally not limiting it does limit the possibility to
independently enable the power management and define the
cpu_dedicated_set. E.g. there might be a need to enable the former in
the whole cloud in a single step, while not all nodes of the cloud will
have dedicated CPUs configured.

This patch removes the strict config check. The implementation already
handles each PCPU individually, so if there are an empty list of PCPUs
then it does nothing.

Closes-Bug: #2043707
Change-Id: Ib070e1042c0526f5875e34fa4f0d569590ec2514
2023-11-21 15:36:39 +01:00
Zuul cd5b7e8068 Merge "docs: Add documentation on server groups" 2023-11-20 19:13:49 +00:00