Commit Graph

60532 Commits

Author SHA1 Message Date
Zuul e351b7d2cc Merge "Remove unnecessary aliasing" 2023-12-14 14:28:56 +00:00
Zuul 6e88b75fb8 Merge "Remove Ironic client wrapper" 2023-12-14 14:28:47 +00:00
Zuul fac01e7d55 Merge "tests: Use clearer syntax for empty generator" 2023-12-14 11:18:27 +00:00
Zuul 8644855533 Merge "Use SDK for deprecated baremetal proxy API" 2023-12-14 00:07:25 +00:00
Zuul 17b7aa3926 Merge "[codespell] fix typos in tests" 2023-12-13 23:46:08 +00:00
Zuul d26c77b7d7 Merge "docs: Address nits in new security group doc" 2023-12-13 20:37:00 +00:00
Zuul d8f24663ea Merge "docs: Revamp the security groups guide" 2023-12-13 20:32:16 +00:00
Zuul 71082f4a14 Merge "Use SDK for remaining ironic driver calls" 2023-12-13 20:00:40 +00:00
Stephen Finucane 91fc3747a3 docs: Address nits in new security group doc
Change-Id: I8439c5df745712fe11b89acb794a6e92290ba3c9
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2023-12-13 19:53:55 +00:00
Zuul 2ee947b45b Merge "Fix regression breaking Ironic boot-from-volume" 2023-12-12 22:41:36 +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
Stephen Finucane cef74cbd10 docs: Revamp the security groups guide
I did not have a clear understanding of when a security group would or
would not be applied to a port and reading the documentation did not
help. Massively expand the security groups document, adding a couple of
important notes along the way as well as references to the nova-specific
security group operations. The document is moved from the admin guide to
the user guide (with redirects) since these are not admin-only
operations by default.

Change-Id: I212bc99112aad2f1e3057befca381a26d702be2e
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2023-12-12 14:35:15 +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
Dmitry Tantsur 177742ca55 Fix regression breaking Ironic boot-from-volume
After the recent openstacksdk patches, the volume code uses the SDK's
get_node instead of the local _get_node wrapper, causing the resulting
object to not have a UUID field that Nove expects.

This change proposes the minimum possible fix to unwedge the CI.

Change-Id: I8165628877f887553bf7b36da301ee062d29621c
2023-12-11 11:04:12 +01: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
Stephen Finucane a176d524c6 tests: Use clearer syntax for empty generator
Placing 'yield' after a 'return' is dark magic, even if it's technically
allowed. Use 'yield from' instead.

Change-Id: Ie5e8befcbeeb42094d1056e00c939e384a72ceb3
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2023-12-07 11:51:09 +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 1dccf255ad Remove unnecessary aliasing
Now that all Ironic operations have been migrated to SDK, we no longer
need to retain the aliasing that was in place for these opts.

Change-Id: I9fb5a385487f601329bccc9efde325d86be397b6
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2023-12-05 12:10:00 +00:00
Stephen Finucane 07db53c213 Remove Ironic client wrapper
We no longer need this since everything is using SDK. The removal of
this highlights a couple of areas where there were outstanding unused
mocks. These are cleaned up in the process.

Change-Id: I6247bfbb157b37eff66ac3974bf91780a3d01c1d
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2023-12-05 12:09:56 +00:00
Stephen Finucane 259b646afa Use SDK for deprecated baremetal proxy API
We had indicated that we would never switch this over to SDK, however,
this is the sole remaining user of ironicclient which means users would
continue needing to install that just for this little API. Better to
switch this holdout over and finally delete all the things.

Change-Id: I880523935d73ca94c83e618f10c2e587362c53be
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2023-12-05 12:09:36 +00:00
Stephen Finucane 68170e0411 Use SDK for remaining ironic driver calls
We would like nova not to use ironicclient, but instead to invoke the
ironic API directly through an openstacksdk connection.

This concludes our migration of the driver and switches the remaining
ironic calls to use SDK.

Change-Id: Ibb5b168ee0944463b996e96f033bd3dfb498e304
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2023-12-05 12:09:35 +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