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>
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>
Ports can be listed by conductor group since Flamingo, but due to an
error in the api-ref update, we weren't properly documenting it.
Change-Id: I98b329897946ef05ff82df5f1683075f17ecd3c0
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
Signed-off-by: Jay Faulkner <jay@jvf.cc>
Retry failures report only the last error which could be misleading,
so include all relevant errors in the final exception.
Closes-Bug: #2098977
Change-Id: I8c0fb0328a6b3ee084813961d9a959af996a6dcb
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
Pass the ``is-empty`` rule check when checking fields that don't
exist in the inventory.
Closes-Bug: #2132346
Change-Id: I177740dd3a8558ed357af22c581e5cbf1c3e862a
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
Move the image size check earlier in the deploy flow so it runs only
when it matters and reuses already-fetched image info.
Closes-Bug: #2133885
Change-Id: I40518762e3032bbdcfe1d8e7e929147a761a95f8
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
The intention was not to allow nested paths here but instead to only use
base paths to files we will serve up.
Change-Id: I877a7da4ed41bceb9f6f4ee229e8e9dc938d9e5b
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
Currently, the nova virt driver for ironic has a file containing nothing
but our states as constants. A recent bug was caused, in part, by these
not being properly updated. The goal here is to move ironic state
machine code and constants into separate files -- once merged, I will
update the nova driver to use a copy of this file (and add a comment to
the file here saying it's synced over there). This should help prevent
this kinda issue in the future and in the long run cause less duplicated
work.
Assisted-by: Claude Code (claude)
Signed-off-by: Jay Faulkner <jay@jvf.cc>
Change-Id: Ief4533b69899c893f150ef3a7006fb99f7e42964
This patch adds support for extracting PCIe function identification
fields (device_class, device_id, vendor_id, subsystem_id,
subsystem_vendor_id, revision_id) during redfish hardware inspection.
The fields are extracted from PCIe functions and stored in a flat
structure in the inspection inventory, making them available for
inspection rules and hardware identification.
Also adds test coverage including edge cases like
missing PCIe devices, empty collections, and partial data scenarios.
[Removed This changes]Additionally adds system.model field extraction with proper None
handling and test coverage.
Depends-On: I1ec49e35a53abb8efdae639629cd819ccabbe620
Change-Id: I218c3b3865c07cc2c7fffc21a766cdef36759cd8
Signed-off-by: Nidhi Rai <nidhi.rai94@gmail.com>
Implements the core business logic for the networking service manager,
replacing stub implementations with fully functional network operations:
- Port configuration methods (update_port, reset_port) with VLAN
validation and switch driver integration
- Port channel methods (update_portchannel, delete_portchannel) with
placeholder implementations for future support
- Switch discovery and information retrieval (get_switches)
- Decorator-based serialization for thread-safe switch operations
- Decorator-based VLAN validation against allowed/denied lists
- Dynamic switch driver selection and management using the driver
framework from the previous commit
This implementation uses the driver factory and adapter infrastructure
to dynamically load and manage switch drivers, enabling support for
multiple switch vendors. The manager coordinates network operations
across distributed switches while maintaining thread safety through
optional per-switch operation serialization.
Related-Bug: 2113769
Assisted-by: Claude/sonnet-4.5
Change-Id: I0722b116d29cddae02a4a79a4ea4b767709ecad2
Signed-off-by: Allain Legacy <alegacy@redhat.com>
A new ``ironic.console.container`` provider is added called
``kubernetes`` which allows Ironic conductor to manage console
containers as Kubernetes pods. The kubernetes resources are defined in
the template file configured by ``[vnc]kubernetes_container_template``
and the default template creates one secret to store the app info, and
one pod to run the console container.
It is expected that Ironic conductor is deployed inside the kubernetes
cluster. The associated service account will need roles and bindings
which allow it to manage the required resources (with the default
template this will be secrets and pods).
This provider holds the assumption that ironic-novnc will be deployed in
the same kubernetes cluster, and so can connect to the VNC servers via
the pod's ``status.hostIP``.
Assisted-By: gemini
Change-Id: Ib91f7d7c15be51d68ebf886e44efaf191a14437b
Signed-off-by: Steve Baker <sbaker@redhat.com>
The centos Containerfile still exists and the launch scripts have been
adapted to work on both distros.
The ubuntu container has been tested with noble. The container built
in the CI jobs is bound to the version of ubuntu which the host is
running, which will provide functional testing validation when jobs are
moved to newer releases.
Change-Id: I1954e418543acf939bf65189121484e038f3737c
Signed-off-by: Steve Baker <sbaker@redhat.com>
Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com>
The functionality has been implemented in the change:
https://review.opendev.org/c/openstack/ironic-python-agent/+/963200
This change documents the possibility to specify the is_root_volume
parameter of the target_raid_config of a node, which either makes
it the root volume, or prevents it from becoming a root volume.
Change-Id: I72fab180eaf361f9bedb04a1a24dfb9bcdf230cf
Signed-off-by: Jakub Jelinek <jakub.jelinek@cern.ch>
Implements the foundational driver framework for the networking service,
providing abstraction and loading mechanisms for network switch drivers:
- Driver factory for loading and managing switch driver plugins using
stevedore, with support for multiple concurrent drivers
- Driver adapter for preprocessing switch configuration files and
managing driver lifecycle
- Driver translators for converting between ironic network data formats
and driver-specific configuration formats
- Utility functions for network configuration validation, VLAN range
parsing, and RPC transport detection
This framework provides the foundation for integrating various network
switch drivers (e.g., networking-generic-switch) with the ironic
networking service. The framework is used by the manager implementation
added in the subsequent commit.
Related-Bug: 2113769
Assisted-by: Claude/sonnet-4.5
Change-Id: Ifb6e662ef59f9e12aad7c34356d2e78c3ebb4143
Signed-off-by: Allain Legacy <alegacy@redhat.com>
This script runs a liveness check on the configured conductor hostname
and will fail if the conductor is not online. Its intended purpose is to
be used as a kubernetes pod startup or liveness probe for the conductor
container.
Change-Id: I88288e0d7a1da4ec99f31c20771299cce2499bf0
Signed-off-by: Steve Baker <sbaker@redhat.com>
We only use DIB based ipa ramdisks and changed bifrost jobs
names.
Depends-On: I569a766826405513f7beab5d45a52a8bbf42ddfd
Change-Id: I8dc17087d595872d660c9a90c8dbafef268ad02a
Signed-off-by: Riccardo Pittau <elfosardo@gmail.com>