When we create major release mappings, we should not forget to
include the alias mapping so users don't have to look it up
separately.
Change-Id: If1970f0d63be220c45bec272187502954ced2adf
Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com>
In Ie86ec57e428e2bb2efd099a839105e51a94824ab this code was added but it
appears to have been targeting an earlier version of the spec index
Ib93e62076207e3e25960111bd0b46b83fe481c69. Up to version 8 of the spec
there is mention of a 'registry' DB field which would have been added
and then parsed in a get_registry_fields() helper method. But it was
ultimately dropped. This bit of code still contained those references
resulting in the endpoint returning errors.
Closes-Bug: 2137596
Change-Id: I79ed016edd2ea6bfb94bf303f1e815b4d9b16dfd
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
This reduces logging when NetworkAdapters are missing from a redfish bmc
from warning level to debug level. This resolves an issue where loud
logging was reporting on hardware without redfish NetworkAdapters
support.
Generated-by: Claude-code 2.0
Closes-bug: #2133727
Signed-off-by: Jay Faulkner <jay@jvf.cc>
Change-Id: If48757c6ec4a1f7978bd973830020161c55922e4
When validate-interfaces runs if there is no interfaces key then we
would just have a KeyError exception that would be logged to the node.
This provides a clearer message back as to why this happened.
Change-Id: I307848a9a1733ecff534ae37541e59465b4e96b7
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
A similar function is provided by oslo_utils.netutils .
Change-Id: I6b24ab9deedf9e9802ef1bb5701ddeea91caed69
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
It seems http:// is quite unstable while git:// is stable.
Change-Id: Iedd7356eb3777ce829961ee6392fbb677f26ae22
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
... instead of only documenting the valid choices.
Change-Id: I5f73da7f69242ec21dd60da36e7b176213888db1
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
This was somehow missed during initial implementation. Adding ability to
filter portgroup by shard. This was mostly vibe coded with claude, with
me interupting to suggest better implementations when it did something
silly. Tested manually by a human using fake drivers :).
Closes-bug: #2134566
Generated-by: Claude code (claude)
Signed-off-by: Jay Faulkner <jay@jvf.cc>
Change-Id: Ic67c02763c2d832f616dc4526e4be891d639b976
The neutron network interface's add_ports_to_network() function only
checked for 'pxe_boot' capability when determining PXE capability,
but iPXE is also a form of PXE booting and should be treated the
same way. This caused inconsistent behavior for boot interfaces like
'http-ipxe' that have 'ipxe_boot' capability but not 'pxe_boot'
capability.
Without this fix, iPXE boot interfaces were incorrectly treated as
non-PXE capable, causing the neutron interface to create ports for
all baremetal ports with local_link_connection info during cleaning
operations, regardless of their pxe_enabled setting.
This change adds 'pxe_boot' capability to both iPXEBoot and
iPXEHttpBoot classes, ensuring that iPXE boot interfaces are
correctly recognized as PXE-capable.
Additionally, this adds the missing pxe_boot capability check to
the remove_ports_from_network() function, which was previously
missing this logic entirely. This ensures consistent port creation
and deletion behavior, preventing orphaned neutron ports after
cleaning operations.
Change-Id: I7721f917fb723e8a4cef69e0f7be1ece0238d7ed
Signed-off-by: Milan Fencik <milan.fencik@rackspace.co.uk>
The built-in inspection rules cannot be loaded because the jsonschema
validates them against the expected API however the built-in rules had a
'built-in' key that is not part of the schema and included the 'scope'
key which was ultimately dropped before inspection rules support landed.
The built-in rules also did not validate that the data was a list of
rules before attempting to utilize it giving an incorrect error.
Closes-Bug: 2136776
Change-Id: I36c290c9f92189281e11633e9a587918b0699ae3
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
These inspection rules actions are implemented but were not documented
so add some documentation for them. The redfish inspection interface
also supports inspection rules.
Change-Id: I65894191affd9171bf68dc9b15725ed34a9724f9
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
When size_gb='MAX' is specified, Ironic was calculating the maximum
volume size and including it in ``CapacityBytes``. This calculated size
doesn't account for controller metadata overhead, causing iLO and other
controllers to reject the request with UnsupportedOperation.
Fix by omitting ``CapacityBytes`` from the Redfish payload when
size_gb='MAX', allowing the controller to calculate the optimal size
automatically and the actual volume size is queried and stored after
creation via ``update_raid_config()``.
Unit tests generated by AI.
Closes-Bug: #2132936
Assisted-by: Claude Sonnet 4.5
Change-Id: Ica2e31783b18fc2306369b0ee0d467aca17d4975
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
The intention of this code is to read the system product name which is
stored in the model field per the Redfish spec and not in the name field
which will always store the name of the object we are working with. This
results in the value always being 'System'.
Closes-Bug: 2136233
Change-Id: I375fbe27253d7965e458be7b147d5b72cffa4e89
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
Updated the docs and code to match the same order and to break out each
operation like it is in the code. Fixed incorrect indent of an example.
This is just mechanical to make visual inspection of the docs to the
code easier.
Change-Id: Ic96c5a1993d20347968c23c60393a4cde2de9a0c
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
In order to support the deployment of OCI images utilizing bifrost,
we also need to explicitly support basic authentication.
This has been extended to support inclusion of the authentication
credentials into the pull secret string, and fallback on the deploy
interface settings for static configuration. While this will likely
never be perfect, it is at least a forward step to better supporting
a variety of use cases.
Additionally, doing some of this highlighted some extraneous guard
rail style checks which exist elsewhere in the overall image handling
flow. A exeception check was added to prevent tag based deployments
from failing because the existing code structure of the guard rail
checks cannot gain the context around basic auth.
In part becasue the check directly uses the image_source as well,
as opposed to any other state data which is presently available
in deploy_utils when the image information is identified.
That situation highlights why additional fixes are needed,
but bug 2133885 was opened for that separately.
Claude also helped me out with the unit tests.
Assisted-By: Claude Code - Claude Sonnet 4.5
Change-Id: I13f4d5cd8b98ad88e7b6088c79c7b014b6461668
Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com>
While working on trying to get OCI support in CI, I realized that the
default pattern setup with Bifrost was to setup a registry *without*
HTTPS.
This is different from the common practice and expectation of operational
OCI registries always utilizing HTTPS as the underlying transport mechanism.
The net result is an idea of offering the ability to "fall back" to HTTP
automatically, and make it a configuration option which needs to be
chosen by an operator.
The code pattern is such that the invocation of the client code paths
automatically identify the SSLError, and then attempt to fallback
to HTTP, while also saving the fallback on the class instance so the
additional URL generation calls for the underlying HTTP(S) client
gets an appropriate URL.
By default, this new option is disabled.
Claude helped with the tests, which was nice of it.
Assisted-By: Claude Code - Claude Sonnet 4.5
Change-Id: I3f28c8d6debe25b63ca836d488bc9fd8541b04d9
Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com>
The from_environ method provides the native interface (by keyword
arguments) to pass additional arguments to build a RequestContext
instance.
Also fix the ignored kwargs.
Change-Id: Id02e2212e1877c7913218d87188ba8b359ce2757
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
When the using the agent inspector interface and an exception happens
during execution of the hook, the node is not cleaned up resulting in
stale Neutron ports and ramdisk files.
Closes-Bug: 2135265
Change-Id: I69ceec12fc0beea586176a768d864a22261cdb93
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
- _collect_lldp_data(): Collects LLDP data from Redfish NetworkAdapter Ports via Sushy library, walking the Chassis/NetworkAdapter/Port hierarchy
- Integration with inspect_hardware(): LLDP collection is called during hardware inspection and results are stored in plugin_data['parsed_lldp']
The implementation supports standard Redfish LLDP data from Port.Ethernet.LLDPReceive fields and can be extended by vendor-specific implementations (like, Dell DRAC OEM endpoints) through method overriding.
Change-Id: I25889b2a2eb8f6a2d796dfbeb598875a7c07b22c
Signed-off-by: Nidhi Rai <nidhi.rai94@gmail.com>
It was deprecated long ago in favor of policy.yaml and is being removed
soon.
Change-Id: I1a5804cd15e1bc79ad1dc9900e61584902ef4468
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
Ironic now depends on a minimum version of sushy that has integrated
sushy_oem_idrac into the code base so there is no point in falling back
to pulling in sushy_oem_idrac so remove the path.
Change-Id: I17217e0fe07b4819863706f473af12d87da46429
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>