153 Commits

Author SHA1 Message Date
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
- http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010142.html
- https://etherpad.openstack.org/p/drop-python2-support

Ussuri Communtiy-wide goal - https://review.opendev.org/#/c/691178/

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'.

[1] https://pypi.org/project/sushy-oem-idrac/

Co-Authored-By: Richard G. Pioso <richard.pioso@dell.com>
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
'idrac-redfish'.

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 <richard.pioso@dell.com>
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
'idrac-redfish'.

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 <stendulker@gmail.com>
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
fruitful.

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.

[1]https://governance.openstack.org/tc/resolutions/20181024-python-update-process.html
[2]https://governance.openstack.org/tc/reference/runtimes/train.html

Change-Id: I06e6c071b8bd369c8a66bade2490f65070fd0665
Depends-On: https://review.opendev.org/#/c/641878/
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 <paresh.sao@hpe.com>
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 <etingof@gmail.com>
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
Zuul
01d46be1fa Merge "Remove oneview drivers" 2018-10-22 18:58:10 +00:00
Julia Kreger
c787f6806f ipxe boot interface
A long time ago, in a galaxy not so far away,
the ironic comunity reached consensus that we
should refactor the PXE interface such that we
had separate PXE and iPXE interfaces.

In looking at what it would take for something like
a standalone deployment to have multiarchitecture
support in their environment, it seems even more
urgent and necessary that we begin to make this
delineation. This is because while some ARM iPXE
support exists, the binary is not a commonly
shipped artifiact, so operators are largely
only left with grubaa64.efi as their bootloader.

A similar issue exists with ppc64le deployments
where they must disable iPXE, as the ppc64le
hardware expects reading a syslinux compatible
file, similarlly no iPXE loader exists.

To start this effort, we need to promote iPXE
functionality to a dedicated interface,
and remove the necessity of setting the
[pxe]ipxe_enabled setting.

Next steps, beyond this patch, would be to
begin to tease out the common private method
code in the underlying PXE interface that both
the iPXE and PXE interfaces use, and appropriately
relocate and refactor that code as necesary.

During this process, we can create an [ipxe]
configuration section, and migrate settings.

Finally, once the deprecation cycle is complete,
we will be able to remove the ipxe logic with-in
the PXE interface.

Change-Id: I392616417c48986e84e50a3ddc7567344bfe3571
Story: #1628069
Task: #10516
2018-10-16 13:19:04 +00:00
Julia Kreger
abb0865771 Remove oneview drivers
In accordance with the deprecation of oneview,
It is time to remove the oneview drivers.

This patch oneview interfaces and documentation.

Change-Id: Ided79fa788411f839614813ff033c42a13b88c75
Story: #2001924
Task: #24943
2018-10-15 16:32:15 -07:00
Dmitry Tantsur
d42bd9a77b Add "noop" management and use it in the "ipmi" hardware type
The new management interface targets hardware that does not correctly
support changing the boot device via IPMI. For example, some hardware
was reported to break the configured boot order in this case. Using
the "noop" management will allow operators to pre-define the boot order
as PXE -> DISK.

Change-Id: Iae2837b100905e9e06cc2cd2614f0af81bf13752
Story: #2003203
Task: #23359
2018-08-07 13:25:50 +00:00
Julia Kreger
731af40129 Adds ramdisk deploy driver
Adds a pxe deploy driver to support the concept
of a deployment just consisting of a ramdisk.

Ideally, as long as a kernel and ramdisk are
defined, either by the operator or via a glance
image, the PXE/iPXE template should point the
booted kernel to using ramdisk as the root.

In theory, this would allow deployment via
nova, or directly using the parameters posted
to the node's instance_info.

There may be additional features realistically
needed for this to be beyond minimally useful,
but that would also depend on the contents of
the ramdisk that is deployed by an API user.

Change-Id: Id7067527cba27ed49753736f33ccb35e9b35bcba
Story: 1753842
Task: 10666
2018-07-26 17:22:47 +00:00
vmud213
66e1ccb7c5 iLO BIOS interface implementation
Adds support for manual cleaning steps "apply_configuration" and
"factory_reset" which manage BIOS settings on the iLO. This requires to
implement 'ilo' BIOS interface for 'ilo' hardware type.

Story: #2002899
Task: #22863
Change-Id: Ia014ea3d55504e8e0c815fb4f19bb87b1fc0d6ef
2018-07-20 17:52:46 +05:30
Luong Anh Tuan
fa59565be0 Implement iRMC BIOS configuration
This patch supports BIOS configuration for iRMC drivers using
out-of-band method.

Tested successfully on TX2540 M1 along with eLCM license.

Story: #1743674
Task: #10651
Co-Authored-By: Nguyen Van Trung <trungnv@vn.fujitsu.com>
Change-Id: I61f15e7c65c4ef5cc5f959d2b016b053e70ba19b
2018-07-11 08:04:15 +07:00
Nguyen Van Trung
84ae0c323c Support RAID configuration for BM via iRMC driver
This is OOB solution which using create/delete raid config via
Fujitsu iRMC driver. In addition, This commit will enable raid
interface via iRMC driver.

Tested successfully on TX2540 M1 along with eLCM license, SDcard and
SP(Service Platform) available.

Change-Id: Iacaf213f76abf130d5570fc13704b1d1bfcf49d7
Story: #1699695
Task: #10597
2018-07-04 15:45:34 +07:00
Dmitry Tantsur
1a07137118 Remove the ipmitool classic drivers
This change removes pxe_ipmitool and agent_ipmitool. Some tests
and documentation bits are removed, since we no longer have any
classic drivers to provide examples.

The Inspector.create_if_enabled method is no longer used and was
removed. The [inspector]enabled option will be deprecated in
a follow-up.

IRONIC_ENABLED_DRIVERS is removed from devstack to prevent
devstack-gate from injecting the removed drivers into it.
A temporary migration from queens is updated to disable all
classic drivers. It will be removed when the enabled_drivers
option is completely removed.

Change-Id: Iab247e3b3336f90446ef0687edb340cf8282a925
2018-06-27 13:08:42 +02:00
Dmitry Tantsur
3d8f3ec1a9 Remove the iRMC classic drivers
This changes removes pxe_irmc, iscsi_irmc and agent_irmc.

Change-Id: Ie829ee1758fce38acdd3ae2bb3525bcea37ac6d4
2018-06-26 14:30:38 +02:00
Dmitry Tantsur
384f966003 Remove the OneView classic drivers
This change removes iscsi_pxe_oneview and agent_pxe_oneview.

Change-Id: I4301e35f321bd041441dcfce494393fb90e293f3
2018-06-26 14:30:27 +02:00
Dmitry Tantsur
6deb0c3b0b Remove the deprecated pxe_snmp driver
Change-Id: I3e9d102698cb09171c3ca3031098bc9f1d829a72
2018-06-26 14:30:11 +02:00
Dmitry Tantsur
575640cfac Remove the deprecated classic drivers for Cisco UCS hardware
This change removes pxe_ucs, agent_ucs, pxe_iscsi_cimc and
pxe_agent_cimc. Best effort clean up was done to the documentation.

Change-Id: I4fe75e0d4a36228f2f6be6bf6ced6d37424b6fd3
2018-06-26 14:29:56 +02:00
Dmitry Tantsur
09e89c09d1 Remove the iDRAC classic drivers
This removes the pxe_drac and pxe_drac_inspector classic drivers.

Change-Id: I2837bc626425869008d9222523b05e2ce5175c19
2018-06-26 14:29:37 +02:00
Zuul
5b199fa3dc Merge "Add an external storage interface" 2018-06-26 11:49:41 +00:00
Dmitry Tantsur
9c7729d6b7 Remove the ilo classic drivers
This removes pxe_ilo, iscsi_ilo and agent_ilo. Also removed is
the whole documentation section dedicated to them.

Change-Id: Ie6f8a65d68ce4eb9c8467c416df5f3a35f0abe98
2018-06-22 16:55:20 +02:00
Julia Kreger
5795c57985 Add an external storage interface
This would primarily be very useful for users of an
external SAN image based management solution[0] where
the interaction with the storage system has been
abstracted from the user but iSCSI targets are still
used.

[0]: https://massopen.cloud/blog/bare-metal-imaging/

Change-Id: I2d45b8a7023d053aac24e106bb027b9d0408cf3a
Story: #1735478
Task: #12562
2018-06-19 16:49:45 +00:00
Dmitry Tantsur
2d3e7e9ccc Remove the remaining fake drivers
The following drivers are removed here:
* fake_ilo
* fake_drac
* fake_irmc
* fake_ucs
* fake_cimc
* fake_oneview

Some clean up can be done in the unit tests, but this is out of scope
for this change.

Change-Id: Ifce3f9102384e1424d4ab624d32929f5e832206d
2018-06-18 18:52:04 +02:00
Dmitry Tantsur
495d738fb9 Remove the fake_ipmitool, fake_ipmitool_socat and fake_snmp drivers
Change-Id: I05f228f3724486351c04bf2b4b55e950fe20d724
2018-06-12 10:37:22 +02:00
Dmitry Tantsur
05e6dff464 Remove the fake_agent, fake_pxe and fake_inspector drivers
Change-Id: I2ea9d7c0f41988d063cd6e1c7a31a0dfb62c620e
2018-06-08 10:18:31 +02:00
Dmitry Tantsur
d95197628c Remove the "fake" and "fake_soft_power" classic drivers
The grenade configuration is updated to disable the fake driver.

Change-Id: Ica2b466a1a22ca2e5d1362377692cc39ef53ce2c
2018-06-06 16:15:49 +02:00
Zenghui Shi
1e24ef9dde BIOS Settings: Add BIOSInterface
* Adds 'bios' interface to 'BaseDriver'

* Adds BIOSInterface driver class

* Adds fake & no-bios drivers and entries

* Implements it for 'fake-hardare' hardware type

* Adds configuration parameters:
  + [DEFAULT]/enabled_bios_interfaces
  + [DEFAULT]/default_bios_interface

* Adds 'bios_interface' field to Node object

* Handle 'bios_interface' field in _convert_to_version

* Adds bios in CLEANING_INTERFACE_PRIORITY

Drivers can implement this interface to do BIOS
configuration.

Co-Authored-By: Yolanda Robla Mota <yroblamo@redhat.com>
Co-Authored-By: Luong Anh Tuan <tuanla@vn.fujitsu.com>
Change-Id: I7e57130242b6cab21b54e35dc3c0b7819bdc43c0
Story: #1712032
2018-05-08 15:16:52 +08:00
Nguyen Hai
7ba42e091d Follow the new PTI for document build
For compliance with the Project Testing Interface as described in:
[1] https://governance.openstack.org/tc/reference/project-testing-interface.html
[2] http://lists.openstack.org/pipermail/openstack-dev/2017-December/125710.html

[doc/requirements.txt] & [test-requirements.txt]
To support documentation generation in new PTI, project should have
list python dependencies needed for documentation in
doc/requirements.txt which are move from test-requirements.txt

[doc/source/contributor/index.rst] & [setup.cfg]
- Remove [pbr] section in setup.cfg [3], and unrelated lines in
contributor/index.rst
[3] http://lists.openstack.org/pipermail/openstack-dev/2018-March/128594.html
- Add sphinxcontrib.apidoc to replace pbr autodoc

[tox.ini]
--ignore D000: pep8 require sphinx (which move to doc/requirements.txt)
to test doc/source files, however, docs already test the doc/source.
Therefore we can ignore the D000 error code.

Depends-On: https://review.openstack.org/#/c/559327/
Change-Id: Iee90f19a5e46978a97035eab7e4b1e0ec68b8684
2018-04-06 14:33:47 +00:00
Zuul
366b29b24f Merge "Add missing ilo vendor to the ilo hardware types" 2018-02-01 10:26:14 +00:00
Dmitry Tantsur
8f464b909a Add missing ilo vendor to the ilo hardware types
I'm not sure why it was missed initially. But if we don't have it,
the automatic migration to hardware types will reset the vendor
interface to no-vendor, which may look like a regression to users.

Change-Id: I6da6aa8138d7f0cbf225c15c4137edeec2c33d49
Related-Bug: #1690185
2018-01-31 16:49:56 +01:00
Dmitry Tantsur
8db78cb36a Declare support for Python 3.5 in setup.cfg
This is required for the Python 3.5 goal to be finished for real.

Change-Id: I66a3a50575ce4547bf04e3835a5c92c85977201a
Related-Bug: #1673768
2018-01-31 12:42:57 +01:00
Shivanand Tendulker
4624c572e2 Agent rescue implementation
This implements agent based rescue interface.

Partial-Bug: #1526449

Co-Authored-By: Mario Villaplana <mario.villaplana@gmail.com>
Co-Authored-By: Aparna <aparnavtce@gmail.com>
Co-Authored-By: Shivanand Tendulker <stendulker@gmail.com>

Change-Id: I9b4c1278dc5fab7888fbfe586c15e31ed3958978
2018-01-25 13:26:33 -05:00
Rushil Chugh
346a9a3bfc Add XClarity Driver
This patch proposes to add new interfaces for management and power
for the Lenovo XClarity Driver.

Change-Id: Ic2743f9a4959a6165a7ec40f4772afb231205f36
Closes-Bug: #1702508
2018-01-22 08:39:09 -05:00
Zuul
7ac39e4029 Merge "Remove ironic_tempest_plugin/ directory" 2018-01-11 00:46:43 +00:00
Zuul
b5563b4384 Merge "Adds rescue_interface to base driver class" 2018-01-09 06:11:20 +00:00
John L. Villalovos
7e1287f243 Remove ironic_tempest_plugin/ directory
We now use the project openstack/ironic-tempest-plugin to store our
tempest plugin. All content from the ironic_tempest_plugin/ directory
has been ported to that project.

We no longer want to have the plugin content stored here so we delete
it.

Remove check in tools/flake8wrap.sh that prevented changes to the
ironic_tempest_plugin/ directory.

Change-Id: I700bd7b71472fa91f6bc02aebc055584df08e0ef
2018-01-05 15:12:13 -08:00