Commit Graph

184 Commits (ca5b2feeee47e06ade1e62b09c28118e761378a8)

Author SHA1 Message Date
Vanou Ishii eae33a0acb [iRMC] identify BMC firmware version
Since iRMC S6 2.00, iRMC firmware doesn't support HTTP
connection to REST API.

To deal with this firmware incompatibility, this commit
adds verify step to check connection to REST API and adds
node vendor passthru to fetch&cache version of iRMC firmware.

Story: 2010396
Task: 46745
Change-Id: Ib04b66b0c7b1ef1c4175841689c16a7fbc0b1e54
2023-01-16 18:38:57 +09:00
Steve Baker 754e6bb662 Implement a DHCP driver backed by dnsmasq
The ``[dhcp]dhcp_provider`` configuration option can now be set to
``dnsmasq`` as an alternative to ``none`` for standalone deployments.
This enables the same node-specific DHCP capabilities as the
``neutron`` provider. See the ``[dnsmasq]`` section for configuration

Change-Id: I3ab86ed68c6597d4fb4b0f2ae6d4fc34b1d59f11
Story: 2010203
Task: 45922
2022-09-05 13:57:39 +12:00
likui d2a2447e88 The Python 3.6 and Python 3.7Support has been dropped since zed

Change-Id: I3892493c9a9add0b5d2e80e1f764e2eb37b047ea
2022-05-09 15:38:53 +08:00
Ghanshyam Mann 4eb79f15fb Re-add python 3.6/3.7 in classifier
We have updated the yoga testing runtime to keep the
py36 testing.


Unit tests job template is also updated to keep python
3.6 as a voting job. So with the py3.6 and py3.9 testing as voting
job template, we are keeping python 3.6, 3.7, 3.8, and 3.8 as
tested versions in the Yoga cycle.


This commit re-add the python 3.6/3.7 versions in setup.cfg classifier.

Change-Id: Ie3950dd25a41f8381d218588c3e4a1728e5f3a60
2021-12-13 19:48:27 -06:00
Dmitry Tantsur 9a6f2d101b All-in-one Ironic service with a local RPC bus
This adds a new executable /usr/bin/ironic (cool that we no longer have
a CLI with this name) that starts API and conductor together in the same
process. When an RPC host name matches the current one, the call is not
routed through the remote RPC, a local function call is done instead.

Story: #2009676
Task: #43953
Change-Id: I51bf7226aea145dc7c8fd93d61caa233ca16c9c9
2021-12-07 09:31:12 +01:00
Ghanshyam Mann ccb46fefd9 Updating yoga tested python versions in classifier
Yoga testing runtime has been updated with py38 and py39
as voting and removed the py36 testing. Unit tests update are
handled by the job template change in openstack-zuul-job and you
can see the updated jobs running in gate.


this commit updates the tested py versions in setup.cfg classifier.


Change-Id: Ie527ea6ed8820c3f9dcca5c875c428288070263b
2021-11-24 19:50:50 -06:00
Dmitry Tantsur 88d6b99cc7 Move ramdisk deploy to its own module
It does not depend on PXE and is actually often used with virtual media.

Change-Id: Ida6edf819dbb3d1a51c465b4e109eafd977fd66c
2021-09-06 16:30:53 +02:00
Riccardo Pittau e5d35ba65c Add lower-constraints job to current development branch
The lower-constraints test was removed becuase of an issue where pip
could not correctly determine the required packages versions to install,
ending in an almost infinite loop that would end up in timeout, failure,
and general mayhem.
Recently the issue has been fixed and, if properly configured, the
lower-constraints test can provide good indication of which minimum
versions are required to support the current code.
This patch adds the test back to the current development branch.
The long term goal is to keep the lower-constraints file in the stable
branches, but remove the test job to avoid issues during backports.

Change-Id: I5fff32ec5dd1a045116bcf02349650b1f5e3a196
2021-07-30 14:20:28 +02:00
likui 26f6607113 setup.cfg: Replace dashes with underscores
Setuptools v54.1.0 introduces a warning that the use of
dash-separated options in 'setup.cfg' will not be supported
in a future version [1].
Get ahead of the issue by replacing the dashes with underscores.
Without this, we see 'UserWarning' messages
like the following on new enough
versions of setuptools:

  UserWarning: Usage of dash-separated 'description-file' will not be
  supported in future versions. Please use the underscore name
  'description_file' instead


Change-Id: If07c53b62d32d2bc3d519b4f541f267995e522fe
2021-05-12 17:54:12 +08:00
Dmitry Tantsur 929907d684 Bye-bye iSCSI deploy, you served us well
The iSCSI deploy was very easy to start with, but it has since become
apparently that it suffers from scalability and maintenance issues.
It was deprecated in the Victoria cycle and can now be removed.

Hide the guide to upgrade to hardware types since it's very outdated.

I had to remove the iBMC diagram since my SVG-fu is not enough to fix it.

Change-Id: I2cd6bf7b27fe0be2c08104b0cc37654b506b2e62
2021-05-04 14:28:25 +02:00
Dmitry Tantsur e85a36fe36 Deploy interface that fully relies on custom deploy steps
This change adds a new deploy-interface custom-agent that is essentially
the direct deploy without the write_image step and without bootloader
handling. It's targeted at deployments that need to write the image
differently, while keeping all other aspects the same.

The existing AgentDeploy becomes a subclass of the new CustomAgentDeploy
class, serving as a convenient base class for downstream deploy
interfaces that use IPA.

Change-Id: Ie126ce677c79f102e382305650bddb7f09834483
Story: #2008719
Task: #42059
2021-04-30 14:38:16 +02:00
Zuul 961a85ada7 Merge "Add Redfish RAID interface to idrac HW type" 2021-03-23 01:47:56 +00:00
Arun S A G 26040d4563 Add anaconda configuration and template
This change adds 'anaconda' group and 'default_ks_template'
configuration option under that group to ironic configuration file.
Along with this change a new boot_option named 'kickstart' is added
to identify anaconda kickstart deploy in the boot interface.

deploy_utils.get_boot_option method is modified to check if
node.deploy_interface is set to 'anaconda' and return boot_option

This change also validates whether required parameters are set when
the boot_option on the node is set to 'kickstart'.

When boot_option is 'kickstart' we also validate if the glance image
source has 'squashfs_id' property associated with it.

Change-Id: I2ef7c33e2e63e6d08c084b4c5dbd77a44ddd2d14
Story: 2007839
Task: 41675
2021-03-19 09:39:50 -07:00
Aija Jauntēva 952695be33 Add Redfish RAID interface to idrac HW type
Adds MVP support for idrac-redfish to RAID interface. Based on
generic redfish implementation, but requires OEM extension
to check when `Immediate` time becomes available shortly
after IPA starts executing steps.

Does not support foreign disks, convert from non-RAID mode.

Story: 2008602
Task: 41778
Change-Id: Iefb7f882c97e33a176962e4e907163d9e4809445
2021-03-19 12:11:50 -04:00
Bill Dodd d7f4da2376 Add Redfish RAID management to Ironic
The Redfish hardware type does not currently implement the RAID
hardware interface.

This patch implements the Redfish RAID interface, allowing operators
to specify the desired RAID configuration on Ironic Redfish nodes.

Story: 2003514
Task: 24789

Change-Id: Icf5ca865e0c1e168b96659229df622698bea1503
2021-03-03 10:41:56 -06:00
Bob Fournier 98958cd0a4 Add vendor_passthru method for virtual media
Add a vendor_passthru method to eject_vmedia for Redfish and idrac.

Story: 2008363
Task: 41271

Change-Id: Ib5ae16bacfd79f479a9aa8fbf69edc5cfdf73ce3
2020-11-24 09:25:44 -05:00
Zuul 484dcd5b60 Merge "Add Redfish BIOS interface to idrac HW type" 2020-09-25 02:32:22 +00:00
Aija Jauntēva 796e2302c3 Add Redfish BIOS interface to idrac HW type
This change adds idrac hardware type support of a BIOS interface
implementation that utilizes the Redfish out-of-band (OOB) management
protocol and is compatible with the integrated Dell Remote Access
Controller (iDRAC) baseboard management controller (BMC). It is named

The idrac hardware type declares support for that new interface
implementation, in addition to all BIOS interface implementations it has
been supporting. The highest priority BIOS interface remains the same,
the one which relies on the Web Services Management (WS-Man) OOB
management protocol. The new 'idrac-redfish' immediately follows it.

Co-Authored-By: Eric Barrera <>
Co-Authored-By: Richard G. Pioso <>
Co-Authored-By: Mike Raineri <>
Story: 2008100
Task: 40803
Change-Id: Ic5a1da418dccb0f3ec92914909aacd7c339d8837
2020-09-23 13:34:50 +00:00
vmud213 6d36b0b785 Adds ilo-uefi-https boot interface to ilo5
Change-Id: I224eca4d8b331711369b17903098daa9fec27d7d
Story: #2008073
Task: #40761
2020-09-17 13:20:53 +00:00
Dmitry Tantsur 46f8c85752 Add agent power interface
This change adds a new 'agent' power interface that can be used together
with fast-track to deploy nodes without knowing their power credentials.
It relies on the agent staying powered on during the whole pre-deployment
and deployment process.

Story: #2007771
Task: #39995
Change-Id: I3d7157c1c4464b650adebbd7f894ee33d0f8f25b
2020-07-20 09:42:05 +02:00
Zuul 50e06f4582 Merge "Feature: Add raid configuration support for ibmc driver" 2020-06-11 16:35:03 +00:00
Sean McGinnis e8daa0f270
Add virtualbmc as an extra dependency
The virtualbmc package is only needed in CI runs, so it doesn't quite
fit as a declared "normal" dependency of the project. But requirements
tooling only looks in [test-]requirements.txt and setup.cfg when
checking if a package is being used, so since it has not been declared
in any of these so far, it gets flagged as an unused dependency.

This is a workaround to fix this issue. It likely will never be
installed through this extra requirement path, but it will ensure the
package gets recognized as something being used by our projects.

Change-Id: Id7eb44954308b10d6097ee9894d58867fde6804b
Signed-off-by: Sean McGinnis <>
2020-06-10 08:24:07 -05:00
Qianbiao.NG cd6e5ec497 Feature: Add raid configuration support for ibmc driver
This patch proposes to adding raid configuration support for HUAWEI iBMC driver.

Story: 2007554
Task: 39406
Signed-off-by: Qianbiao.NG <>
Change-Id: Iace17b2d233323f4648d2857ec1b9fb83d42c045
2020-06-10 16:17:50 +08:00
maaoyu c1834cc4bf Add py38 package metadata
Now that we are running the Victoria tests that include a
voting py38, we can now add the Python 3.8 metadata to the
package information to reflect that support.

Change-Id: I8ceecac4f5ad6fb48b41d5106e2f6b67bf354763
2020-05-25 10:32:40 +08:00
melissaml c38465eaa8 Remove translation sections from setup.cfg
These translation sections are not needed anymore, Babel can
generate translation files without them.

Change-Id: I50f4af86556f9873df395f6469febdc1908311ae
2020-05-14 17:17:39 +08:00
Zuul 9632d392f0 Merge "Implement the bios-interface for idrac-wsman driver" 2020-04-24 10:25:37 +00:00
noor_muhammad_dell cb86bd3088 Implement the bios-interface for idrac-wsman driver
The BIOSInterface implementation for idrac-wsman Hardware Type was
missing and VendorInterface methods were used to configure BIOS instead.
This was not desired since it exposes a lot of vendor intricacies to the
operator and makes the existing mechanism unstable across Ironic releases.

This change introduces the implementation of BIOSInterface with the following
code changes:

1. update IDRACHardware class with supported_bios_interfaces() method
2. update setup.cfg with an entry for idrac-wsman in bios interfaces
3. Implement the DracWSManBIOS class with appropriate methods
4. Unit tests for the work

Change-Id: Ie85e30e2dfdfb1f199ac4d25f165e0cca033a4df
Co-authored-by: Richard Pioso <>
Story: 2007400
Task: 38998
2020-04-17 15:41:24 +05:00
Zuul 305822c37c Merge "Cleanup Python 2.7 support" 2020-04-06 17:01:18 +00:00
Andreas Jaeger 163c8346a3 Cleanup Python 2.7 support
Make a few cleanups:
- Remove python 2.7 stanza from
- Add requires on python >= 3.6 to setup.cfg so that pypi and pip
  know about the requirement
- Remove section from setup.cfg: Wheel is not needed for python
  3 only repo
- Update requirements, no need for python_version anymore

Change-Id: Ib2221fc13cd53c93150e838418e7e110e087d1b3
2020-04-03 17:49:23 +02:00
Dmitry Tantsur 1d9c8283b8 Make oslo.i18n an optional dependency
In an ideal world we would have all messages translated to at least major
languages. In reality, ironic has never boasted a great set of translation,
and according to Zanata only 2.94% of messages are translated for ironic
in Train (1.33% for ironic-inspector). Given that ironic-python-agent is
not translated at all, using i18n by default seems an overkill.

Change-Id: I12287c6b7208af487cc9eee825ae7f38ec707d91
2020-04-02 14:10:21 +02:00
Dmitry Tantsur 9f93694b9a Make oslo.reports an optional dependency
It is only required for one specific feature, let people install it
if they need it.

This change is a part of the major effort to reduce the number of
ironic dependencies.

Change-Id: Ia45ce1d573c89f583d641be3d37d1c127e6345bc
2020-04-02 11:52:04 +02:00
Iury Gregory Melo Ferreira b869b46c63 Drop python 2.7 support and testing
OpenStack is dropping the py2.7 support in ussuri cycle.

Ironic is ready with python 3 and ok to drop the
python 2.7 support.

Complete discussion & schedule can be found in

Ussuri Communtiy-wide goal -

Change-Id: I3cc36d79ffabf31607d503dada9e7512c639647c
2019-11-22 14:06:45 +01:00
Ilya Etingof 0ad6f87587 Add Redfish vmedia boot interface to idrac HW type
This change adds idrac hardware type support of a virtual media boot
interface implementation that utilizes the Redfish out-of-band (OOB)
management protocol and is compatible with the integrated Dell Remote
Access Controller (iDRAC) baseboard management controller (BMC). It is
named 'idrac-redfish-virtual-media'.

The iDRAC Redfish Service almost entirely interoperates with the virtual
media boot workflow suggested by the Redfish standard. The only
difference is configuring the system to boot from the inserted virtual
media. The standard workflow expects it to be referred to as a CD-ROM or
floppy disk drive boot source, no different from their physical
counterparts. However, the iDRAC refers to them as virtual boot sources,
distinct from their physical counterparts. Presently, the standard does
not define virtual CD-ROM nor virtual floppy disk drive boot sources.
However, the iDRAC provides a Redfish OEM extension for setting the
system to boot from one of those virtual boot sources.

To circumvent the above issue, the Python class which implements
'idrac-redfish-virtual-media' is derived from the class which implements
the generic, vendor-independent 'redfish-virtual-media' interface. It
overrides the method which sets the boot device to facilitate use of the
aforementioned iDRAC Redfish Service OEM extension.

The idrac hardware type declares support for that new interface
implementation, in addition to all boot interface implementations it has
been supporting. The priority order is retained by assigning the new
'idrac-redfish-virtual-media' the lowest priority.

A new idrac hardware type Python package dependency is introduced. It is
on 'sushy-oem-idrac'.


Co-Authored-By: Richard G. Pioso <>
Story: 2006570
Task: 36675
Change-Id: I416019fc1ed3ab2a3a3dbc4443571123ef90e327
2019-10-11 20:01:09 -04:00
mpardhi23 62579800fb Add Redfish inspect interface to idrac HW type
This change adds idrac hardware type support of an inspect interface
implementation that utilizes the Redfish out-of-band (OOB) management
protocol and is compatible with the integrated Dell Remote Access
Controller (iDRAC) baseboard management controller (BMC). It is named

The idrac hardware type declares support for that new interface
implementation, in addition to all inspect interface implementations it
has been supporting. The highest priority inspect interfaces remain the
same, those which rely on the Web Services Management (WS-Man) OOB
management protocol. The new 'idrac-redfish' immediately follows those.

Co-Authored-By: Richard G. Pioso <>
Change-Id: I6d8f5cd629e2e17eb86b6f8154a605050e0c7abe
2019-09-17 15:34:54 -04:00
Richard Pioso 03471be1ed Add first idrac HW type Redfish interface support
This change adds initial idrac hardware type support of interface
implementations that utilize the Redfish out-of-band (OOB) management
protocol and are compatible with the integrated Dell Remote Access
Controller (iDRAC) baseboard management controller (BMC), presently
those of the management and power hardware interfaces. They are named

It also introduces a new name for the 'idrac' interface implementations,
'idrac-wsman', and deprecates 'idrac'. They both use the Web Services
Management (WS-Man) OOB management protocol.

The idrac hardware type declares support for those new interface
implementations, in addition to all interface implementations it has
been supporting. The priority order of supported interfaces remains the
same. Interface implementations which rely on WS-Man continue to have
the highest priority, and the new 'idrac-wsman' is listed before the
deprecated 'idrac'.

Story: 2004592
Task: 36275
Change-Id: I11f002eff78d27369b3dbe9a9fbd5fc73496a5eb
2019-09-16 07:19:17 -04:00
paresh-sao c0799c95ed Out-of-band `erase_devices` clean step for Proliant Servers
This commit adds new management interface `ilo5` to support an
out-of-band clean step for sanitize disk erase on ilo5 based
Proliant Servers.

Change-Id: I7b9fc6add6f6a616bdee4d94cb577e7a27a794e5
Story: #2006394
Task: #36269
2019-08-23 08:09:20 +00:00
Zuul ed5f8a67af Merge "Add iPXE boot interface to 'ilo' hardware type" 2019-08-20 16:04:26 +00:00
Shivanand Tendulker 1e3b684037 Add iPXE boot interface to 'ilo' hardware type
This commit adds new boot interface 'ilo-ipxe' to support booting
of iPXE instances using 'ilo' hardware type.

Change-Id: I3abebc77cbc57344a74759e0a8b99e8cacac6f6b
Story: 2006408
Task: 36292
2019-08-16 12:32:36 -04:00
Ilya Etingof 9fab96fc37 Add Redfish Virtual Media Boot support
This patch introduces standard Redfish virtual media boot
support to ironic.

The patch implements basic boot interface features along with
devstack plugin support for virtual media boot. Functionally,
redfish boot interface supports the same set of features as PXE.

Unlike other virtual media boot implementations (e.g. iLo), this
patch does not require user-built deploy/rescue/boot ISO images
for virtual media boot. Instead, ironic will build necessary images
out of common kernel/ramdisk pair (though user needs to provide
ESP image).

Story: 1526753
Task: 10389
Co-Authored-By: Shivanand Tendulker <>
Change-Id: I0db0a64c5ccf260f5a0695dbe994af1e11f71517
2019-08-14 14:19:03 +02:00
Zuul 6cf49dad6c Merge "Add IntelIPMIHardware" 2019-07-09 10:39:44 +00:00
Julia Kreger 5f18e52b64 Remove CIMC/UCS drivers
Cisco's Third-Party CI was taken down as a result of the
CTO's office being restructured. Numerous attempts to
re-engage with Cisco directly and address the various
known issues in their drivers have not proven to be

Additionally, the drivers are not Python3 compatible,
and some reports have indicated that the CIMC driver is
no longer compatible with newer versions.

As such, the ironic community has little choice but to
to remove the Cisco UCS/CIMC hardware types and driver
interface code.

Story: 2005033
Task: 29522
Change-Id: Ie12eaf7572ce4d66f6a68025b7fe2d294185ce28
2019-06-25 23:44:19 -07:00
Madhuri Kumari 5127b6f6dd Add IntelIPMIHardware
IntelIPMIHardware is a hardware that supports configuring Intel Speed Select
Performance Profile using ipmitool.

Change-Id: I49abccb4735b43aed3155ea7e24b2fa0416c83b2
Story: 2005390
Task: 30484
2019-06-25 13:46:26 +05:30
ZhongShengping befc4a61e6 Update Python 3 test runtimes for Train
This goal is to implement the process set out in the 2018-10-24 Python
Update Process TC resolution[1], for the Train cycle to ensure unit
testing is in place for all of the Tested Runtimes for Train[2].
In practice, this generally means adding unit tests for Python 3.7 and dropping
unit tests for Python 3.5. Using the Zuul template for Train will ensure that
all projects that support Python3 will be tested against the agreed runtime
versions, and make it easier to update them in future.


Change-Id: I06e6c071b8bd369c8a66bade2490f65070fd0665
2019-05-09 17:42:47 +08:00
Qianbiao NG f1f4f892fe Add Huawei iBMC driver support
This patch proposes to adding iBMC driver for deploying the
Huawei 2288H V5, CH121 V5 series servers.
The driver aims to add management and power interfaces using
Huawei iBMC RESTful APIs for those series servers.

Change-Id: Ic5e920e4e58811c6a6dfe927732595950aea64e7
Story: 2004635
Task: 28566
2019-03-14 11:04:29 +08:00
Anshul Jain 58a395bf83 OOB RAID implementation for ilo5 based HPE Proliant servers.
This commit adds functionality to perform out-of-band RAID operations
for ilo5 based HPE Proliant servers. Using this a user can perform
create and delete the RAID configuration from the server.

Co-Authored-By: Paresh Sao <>
Change-Id: Iad0c609e59dca56729967133c6bbcff73b50a51e
Story: 2003349
Task: 24391
2019-01-03 09:03:36 +00:00
Bill Dodd 9880262def Add BIOS interface to Redfish hardware type
The Redfish hardware type does not currently implement the new BIOS
hardware interface.

This patch implements the Redfish BIOS interface, allowing operators to
perform BIOS configuration actions on Ironic Redfish nodes.

Change-Id: I44a2a465b08bc15465b7096b1e4838aebb460c1b
Story: 2001791
Task: 12507
2018-11-29 12:05:48 -06:00
Julia Kreger f526c03ab3 Correct author email address
Change-Id: I4e5595a4ddfd74ac8e4d7f60251dfbd4dd4048c4
2018-11-27 14:57:07 -08:00
Zuul f4fee34801 Merge "Add Redfish inspect interface" 2018-11-27 03:38:09 +00:00
Nisha Agarwal 41d3356571 Add Redfish inspect interface
Add the InspectInterface to the `redfish` hardware type. This enables
OOB inspection in ironic.

Story: 1668487
Task: 10571

Co-Authored-By: Ilya Etingof <>
Depends-On: I3a79f2afe6c838636df554ee468f8f2e0cf0859e
Depends-On: Ieb374f8cabb0418bb2680fdab690446346fc354f
Change-Id: Ie3167569db060620fe0b9784bc7d7a854f2ef754
2018-11-03 09:09:56 +01:00
whoami-rajat 1f1a2c3bd8 Add ironic-status upgrade check command framework
This adds basic framework for ironic-status upgrade
check commands. For now it has only "check_placeholder"
check implemented.
Real checks can be added to this tool in the future.

Change-Id: I7d5f018656322b92c663a2adaaf6330a55c00fb8
Story: 2003657
Task: 26133
2018-11-01 19:58:13 +00:00