Generic way to configure clean step priorites feature
( https://review.opendev.org/c/openstack/ironic/+/744117 ) enabled support
for customising clean step priorities for any clean step by setting a
configuration option. However, due to an error in code, it was not possible
to use this feature to enable/disable steps entirely using this option
as overrides were applied too late, after the disabled steps were already
filtered out.
This change fixes this error, making it possible to use step priority
override configuration option to enable/disable steps as required.
Story: 2009105
Change-Id: If3c01e6e4e8cedfe053e78fab9632bfff3682b06
Apparently, connection to the agent can fail with
Unexpected error when processing next clean step.
SSLError: ('timed out',): ssl.SSLError: ('timed out',)
This change adds SSLError to retriable errors since most of them are
related to temporary conditions, and the certificate validation failure
is handled by requests separately.
Change-Id: I4805d410b4bc98196e77d8c44a217e363dc88f0a
* Instead of specifying the fields we want to oomit from create/get
subscription, now we are specifying the fields we want to be returned
(This will avoid problems when vendors are using different versions)
* When validating create_subscription are requiring that Context and
Protocol are present, use the default value from Redfish in case
they are not present in the Body request.
* When trying to delete a subscription that doesn't exist Ironic
returns 500 (default code from IronicException), this commit updates
the code to 404 to show that the subscription doesn't exist.
Change-Id: I81907be1ebc293118f5ffde4fd4d0485ade390df
After commit d7a5b3469cfb5c16e122451e9cd8594d7a7671a1 the custom kernel
parameters are not used in cleaning/inspection. This patch fixes it.
Change-Id: Ic017cc0f3aebd4858a1a6e3326e5cf0fc0888d24
This patch adds two new vendor_passthru methods for Redfish:
- create_subscription (create a sbuscription)
- delete_subscription (delete a subscription)
- get_all_subscriptions (get all subscriptions on the node)
- get_subscription (get a single subscription)
Unit Tests in test_utils split into multiple classes to avoid random
failures due to cache.
Tested in bifrost env using two different HW:
- HPE EL8000 e910
- Dell R640
Story: #2009061
Task: #42854
Change-Id: I5b7fa99b0ee64ccdc0f62d9686df655082db3665
Re-uses the force_persistent_boot_device driver_info option
which can be set to ``Never`` in order to set the virtual
media to one time boot.
Story: 2009042
Task: 42805
Change-Id: Ida7adb3c02db6279ef934797614eaa7be1f35daa
* add fields to Node object
* expose them at endpoint `/v1/nodes/{node_ident}/states`
* update states on powersync / entering managed state.
* tests
* update api endpoint info in api-ref
Story: 2008567
Task: 41709
Change-Id: Iddd1421a6fa37d69da56658a2fefa5bc8cfd15e4
The iLO version is, as far as I remember, the oldest implementation of
virtual media in Ironic. Since then a few cool feature have been
developed in this area, but they are limited to the code using
image_utils (e.g. Redfish). The iLO boot interface only uses image_utils
when an ISO needs to be built, but not when one is provided. This patch
changes that.
There are a few visible side-effects to that:
1) file:/// images are now supported
2) ramdisk_image_download_source is now supported
3) the default caching behavior changes to caching http:// links
(previously they were passed to the BMC directly).
4) glance images are supported with backends other than swift
Story: #2008987
Task: #42638
Change-Id: I23c21188776c511eddcdaf66a222ce64876678e2
Since node objects *can* be large, and due to the nature of joined
record dedeuplication, we should avoid them for list operations to
speed the operation to completion by *instead* allowing the client
to execute three queries and reconcile versus dedeuplicate the
single node.
This *should* result in generally faster list interaction, and
preserves the behavior for nodes at this time in order to
minimize a drastic increase of SQL queries for individual nodes.
Change-Id: Iac457e483068f613ded2aeff60cf6d9fc64a7dac
The biggest amount of API overhead is the node sanitization
process, at least at this point in time.
We have streamlined the database interaction to ensure specific
field selection lists are as orderly as possible, but the
node sanitization code re-executes some methods over and over
which do not require variable data from the underlying node.
These are blanket settings "is the user allowed to see x, or y".
Which means we can call node_sanitize pre-seeding these
arguments and execute the calls once, instead of a thousand times
to have the same exact result.
Story: 2008885
Task: 42433
Change-Id: I342e7900cac388cb4749480684418a5a15ac60eb
The ilo-virtual-media boot interface supports exposing Glance images via
a temporary URL. This change brings this support to Redfish and others.
Change-Id: Ie72bb5e62c29efa5eea1710e74f505329d28d726
Config drive is processed by the deploy interface and
written to the disk during post install of the deployment.
The config drive is written to /var/lib/cloud/seed/config_drive
on the disk. cloud-init should be able to process read config
drive contents and take actions on firstboot.
Change-Id: Id5a949e777e242d2f20966ec045ac319c61636ba
Added a reno to support
https://review.opendev.org/c/openstack/ironic/+/799120
and ultimately removed the "anticipated to be removed in the Xena
development cycle" warnings on legacy policy support as the effort
is taking longer than the cross-team effort anticipated.
Notes added to the code highlight that we need to update the
warnings at that time to ensure we appropriately set expectations
as to when the legacy policies will be removed.
Change-Id: Ie23788abaa61742cdea208fb0cf026bdecaab525
Map between sushy's protocol and RAID config schema's
interface_type constants.
Not supporting `scsi` from RAID schema as Redfish does
not support it in Protocol property.
Change-Id: Ic042f0a87ff0723f313adb3888c24c5963624182
During redifsh inspect, skip the creation of ports for
any nics that are reported without a MAC address.
Story: #2009016
Task: #42736
Change-Id: I1815ebaf7ed9882d8c61a0741fb605dff2db7efb
Because of the way validation works, the ramdisk deploy interface
currently requires an image_source in addition to kernel/ramdisk.
After 1d6441cc347cfe984721f34ebb0cd64fd9e4d876 it is no longer
necessary, and this change removes this requirement.
Change-Id: I59996fac059dade0ef186598be1e8971e073eb04
Avoid processing non-RAID controllers as they cannot be
used for RAID operations to save some time and requests
and avoid possible errors later if non-RAID disks
are picked up for configuration.
Related to: I369bdbb17064baf34f90e864d0ece600529de509
Change-Id: I728f03dc829fb76cad9804c8f8df20810307ce2c
The parameter has not had any effect in the code since
the dual stack PXE work went into place with Ironic as options
are now generated and transmitted to Neutron for both IPv4 and
IPv6. This option is only used by the internal
``dhcp_options_for_instance`` method in
``ironic.common.pxe_utils`` as a fallback if the calling method
does not specify a version. However a later change resulted in the
default behavior calling the dhcp option generation explicitly
to generate both IPv4 and IPv6 parameters, making the option
entirely redundant.
Third party drivers using the ``dhcp_options_for_instance`` method
should consider generating options for both IPv4 and IPv6 at all
times. See change
If7a296001e204ae0c9a49495731052ab33379628 for examples on how
to do this.
Change-Id: I343783389105f008ce6dafc8d25d93211710771a
oslo.db 9.1.0 extends capabilities to handle changes
in duplicate key error information introduced since
MySQL 8.0.19 and fixes issue arose during inspection
of node created with idrac driver, inspect interface
as idrac-redfish.
Story: 2008901
Task: 42468
Change-Id: Ic18e485d4eb14566554d25379a719669ac362d70
Fixes an issue of powering off with the ``idrac-wsman`` management
interface while the execution of a clear job queue cleaning step is
proceeding.
Prior to this fix, the clean step would fail when powering off a node.
Story: 2008988
Task: 42641
Change-Id: Ib4ab755c806f028d97379b80a8c27d6ade63cba1
This change modifies the nodes _get_nodes_collection method to
consider and pass in an explicit lisst of requested fields into
the node list method, while also including the required fields
for things like ownership/policy checking.
And slightly modifies node_convert_with_links method to simplify
it while enabling field validity to be checked, and specific
requisite field lists provided in based upon that value.
And also optionally builds the traits list as they are nolonger
*always* populated on all objects with fully populated objects
as only partially hydrated objects are provided back when specific
fields are requested.
Story: 2008885
Task: 42572
Change-Id: Ided419263d84184cab902944b6c518f98618c9d2