129 Commits

Author SHA1 Message Date
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
Vasyl Saienko
61b81d0c73 Add uWSGI support
This patch implements uWSGI support for ironic API service.
ironic/api/app.wsgi is deprecated in favor of pbr generated
ironic-api-wsgi

Co-Authored-By: anascko <ovoshchana@mirantis.com>

Change-Id: Ieb68c1042e31b77f9a549fd90afe31a65008deca
Closes-Bug: #1719260
Closes-Bug: #1668966
2017-12-28 18:08:49 +02:00
Shivanand Tendulker
433b1fd197 Adds rescue_interface to base driver class
This commit adds `rescue` interface to `BaseDriver` and implements
it for `fake-hardware` hardware type. It adds configuration
parameters '[DEFAULT]/enabled_rescue_interfaces' and
'[DEFAULT]/default_rescue_interface'. The default value of
configuration parameter '[DEFAULT]/enabled_rescue_interfaces' is
`no-rescue`.

It adds new rescue states and a new 'rescue' field to the Node
object. It adds objects.node.Node._convert_to_version().
The method handles converting the new rescue_interface field
between different versions of the Node.

Partial-bug: #1526449
Co-Authored-By: Jay Faulkner <jay@jvf.cc>
Co-Authored-By: Josh Gachnang <josh@pcsforeducation.com>
Co-Authored-By: Jesse J. Cook <jesse.j.cook@member.fsf.org>
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: I1534247bf207a20a7a58534988192aef392eaff2
2017-12-21 03:01:48 -05:00
Pavlo Shchelokovskyy
9b1a7ceb4b Add ansible deploy interface
this patch pulls the ansible deploy interface code
and related ansible playbooks and auxiliary files
from ironic-staging-drivers project into main ironic tree.

As discussed in the spec, the use of ramdisk callbacks
(lookup and hearbeats) is now mandatory with this deploy interface.
Playbooks and modules were updated to require Ansible>=2.4,
and custom Ansible module for executing 'parted' was replaced
with usage of built-in Ansible module.

The custom Ansible callback plugin now uses journald logger
by default to adapt to the default DevStack setup.

Documentation and devstack plugin changes enabling automated
testing of this interface will be proposed in followup patches.

Change-Id: I43f54688287953ccb1c2836437aea76236e6560b
Related-Bug: #1526308
2017-11-09 10:30:56 +00:00
Jesse Pretorius
110259750e Add default configuration files to data_files
In order to make it simpler to use the default
configuration files when deploying services
from source, the files are added to pbr's
data_files section so that the files are
included in the built wheels and therefore
deployed with the code. Packaging and deployment
tools can then more easily use the default files
if they wish to.

This pattern is already established with similar
files for neutron, designate and glance as has
been mentioned in the related bug report.

Change-Id: Ibeed85e148298e1aea7542b950bc24a7f0513de8
Closes-Bug: #1718356
2017-09-27 12:18:20 +00:00
Richard Pioso
d75fecc974 Add 'hardware type' for Dell EMC iDRACs
The ironic project is engaged in a driver composition reform [0] which
introduces dynamic drivers. That reform places hardware vendors in
charge of defining a new form of drivers for their hardware. The new
form is called 'hardware type'. The reform will deprecate [1] the
existing ironic drivers, which are now referred to as 'classic drivers'.

This change adds a single new 'hardware type', 'idrac', for servers
controlled by Dell EMC integrated Dell Remote Access Controllers
(iDRAC).

[0]
http://specs.openstack.org/openstack/ironic-specs/specs/7.0/driver-composition-reform.html
[1]
http://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/classic-drivers-future.html

Change-Id: Ie332a5adebfc229a79663c771c9f4409174dd8c9
Closes-Bug: #1705741
Related-Bug: #1676387
2017-08-18 14:41:05 +00:00
Sam Betts
c268b1e236 Add hardware types to support Cisco UCS Servers
Change-Id: Ib0db11f3e43d17c34278453cdc3e34907034b46f
2017-08-14 10:54:11 +01:00
Shivanand Tendulker
cb2c7c206f Adds hardware type for SNMP powered systems
Added hardware type 'snmp' for SNMP powered systems

Change-Id: I68b35e8391c2365e6380dda7b67c8c3747d4b3e7
Closes-Bug: #1704977
2017-08-07 10:28:16 -04:00
Jenkins
beb14094d4 Merge "Remove SSH-based driver interfaces and drivers" 2017-08-04 02:20:49 +00:00
Jenkins
11112c8289 Merge "Add hardware type for HPE OneView" 2017-08-04 00:00:01 +00:00
Hugo Nicodemos
b7eec1560c Add hardware type for HPE OneView
Adds hardware type 'oneview' for HPE OneView supported
servers. 'oneview' hardware type supports deploy interfaces:
'oneview-iscsi' and 'oneview-direct' based on 'iscsi' and
'direct' deploy interfaces respectively, using 'pxe' boot.

Change-Id: I0e32f235d985016bac0272d4ad3c8edd9edda3c7
Closes-Bug: #1705544
2017-08-02 13:24:31 +00:00
Pavlo Shchelokovskyy
3d9895cc0b Remove SSH-based driver interfaces and drivers
SSH drivers are being unsupported for about a year now. All current
stable branches of ironic are officially supporting IPMI-capable HW
simulation via virtualbmc.
All ironic-related gate jobs have already been switched
to not use or enable those drivers.

This patch finally removes SSH-based power and managemtnt driver interfaces
and all classic drivers using those from ironic code and documentation.
Related exceptions and `ssh_connect` function, together with dependency
on `paramiko` package are removed as well.

Change-Id: Ieda7249b9cd78e3be1eff37804996295fc8d3969
Closes-Bug: #1570301
Depends-On: I9b60c9fa24652e9e64e787cd4e5b0152f51e7a28
2017-08-01 12:39:39 +00:00
Luong Anh Tuan
ed3ee45048 Update URL home-page in documents according to document migration
Change-Id: Ief90e9f5db9d64b44b54459087ad475b14a71c07
2017-07-14 01:31:59 +00:00
Sam Betts
5647bfc246 Move doc/source/dev to doc/source/contributor
Change-Id: I6a3d143cff31348c62d8825f29f7484bafb9c8f0
2017-07-06 12:59:24 +01:00
Dao Cong Tien
e7664a161d Adds clean step 'restore_irmc_bios_config' to iRMC drivers
- Adds new boot interface 'irmc-pxe'. Deprecates 'pxe' boot interface
from using with hardware type 'irmc'.

- Adds functions backup_bios_config and restore_bios_config to iRMC
management interface for implementing the BIOS BACKUP/RESTORE
mechanism supporting iRMC S4 hardware. The function backup_bios_config()
will be called automatically before deploying.

- Adds clean step restore_irmc_bios_config to restore BIOS config
for a node during automatic cleaning.

Change-Id: I04aa5bc2f5e287e048d0b52fee123e53ae2eaa99
Partial-Bug: #1639688
2017-06-29 10:06:20 +00:00
Michael Turek
b23a176a73 Add Cinder storage driver
A cinder interface driver that can be called in order to signal
cinder to attach and detach volumes.

Authored-By: Julia Kreger <juliaashleykreger@gmail.com>
Co-Authored-By: Joanna Taryma <joanna.taryma@intel.com>
Co-Authored-By: Mike Turek <mjturek@linux.vnet.ibm.com>
Change-Id: I3d6bb126ef34b30f316ed5a10fd13a3106d1400b
Partial-Bug: #1559691
2017-05-22 12:12:22 +00:00
Dmitry Tantsur
f428de5f55 Add ipmitool vendor interface to the ipmi hardware type
For some reason it was missing.

Change-Id: Ic86e452d033eec112cc3930b6857f07e0ef7720c
Closes-Bug: #1691504
2017-05-19 13:30:43 +02:00
Shivanand Tendulker
317afc8d37 Add hardware type for HPE ProLiant servers based on iLO 4
Added hardware type 'ilo' for HPE ProLiant servers based on iLO 4
management engine.

'ilo' hardware type only supports 'agent' deploy method and does
not support 'iscsi' deploy method.

Change-Id: Id2186717633630fabe11041634759adb3b74a0f9
Closes-Bug: #1666787
2017-05-02 03:28:32 -04:00
Jenkins
7c5115747a Merge "Add redfish driver" 2017-04-21 16:27:16 +00:00
Lucas Alvares Gomes
c21149454a Add redfish driver
This patch is adding a redfish driver based on the sushy library. This
is just a basic driver that currently supports:

* Power: Hard power on/off/reboot, soft power off/reboot
* Management: Setting the boot device (PXE, disk, cd-rom and bios)
              and its frequency (persistent or not)
* Management: NMI Injection
* SSL authentication

Unittest coverage for the redfish modules is now in 100%, let's try to
keep it this way (-:

Documentation and DevStack updates will be done on subsequent patches.

Partial-Bug: #1526477
Change-Id: I14470edff65cd14bb73263ec7310559a8eaa6c84
2017-04-21 11:06:24 +01:00
Vladyslav Drok
6196e58270 Make config generator aware of 'default_log_levels' override
The way it is done in this patch is recommended by the oslo.config
documentation in [0], so that the updated default_log_levels value
is correctly reflected in the generated ironic.conf.sample file.
An oslo.config.opts.defaults entry point is added.

[0] https://docs.openstack.org/developer/oslo.config/generator.html

Change-Id: Ic200e8d0d721a6c94bd17068a6e5000db930eefd
2017-04-13 16:51:03 +03:00
Jay Faulkner
96eafdc866 Remove deprecated, untested ipminative driver
The ipminative driver was marked as unsupported on September 28, 2016,
and an email was sent to the list on March 9th, 2017 asking for
volunteers to run third-party CI to save the driver from deprecation.

Additionally, many ironic contributors who also deploy ironic have
reported instability while using this driver. For these reasons it's
being removed from the main ironic tree. If there are any users still
interested in this driver, they are invited to host it elsewhere.

Change-Id: I9bc9f4cbd916f040a636b967ec5556197ad3d8a8
Closes-bug: #1671532
2017-03-30 10:34:21 -07:00
Andreas Jaeger
4cff2ab6d5 Use Sphinx 1.5 warning-is-error
With pbr 2.0 and Sphinx 1.5, the setting for treat sphinx warnings as
errors is setting warning-is-error in build_sphinx section. Migrate
the setting from the old warnerrors one.

Fix problems found:
* Duplicate labels (rename wrong faq entries, rename unused drivers
  entries)
* Add api/autoindex.rst as hidden to the index so that we do not get a
  warning. The modindex includes the same content, so no need to show
  this.
* Add releasenotes/index.rst, webapi/v1.rst, user-guide, and install-guide.rst
  to hidden index since they're not listed in index on purpose, so sphinx
  will not warn that they do not appear in a toc
* Add deploy/radosgw to index
* ignore app.add_directiv warning
* Fix reference to user-guide to use proper markup so that Sphinx knows
  the user-guide is referenced.

Change-Id: I00d249229d4d31ba36d4393d60847fdb1513a744
2017-03-08 08:22:24 +01:00
Pavlo Shchelokovskyy
02ce7246ec Remove most unsupported drivers
In accordance with ironic CI policies, this patch removesi some drivers
that are not tested on upstream or third-party CI
and for which maintainers have not communicated any plans
to have such testing.

This includes:
- virtualbox drivers
- seamicro drivers
- msftocs drivers

Change-Id: Ia3a7d798c877f4628946ee6c56d850b9847e6c3e
Closes-Bug: #1663018
2017-02-09 08:09:03 +00:00
Dao Cong Tien
6855ab17a3 Add hardware type 'irmc' for FUJITSU PRIMERGY servers
Added IRMCHardware type for FUJITSU PRIMERGY servers
which have iRMC S4 management system.

Change-Id: I92c62a1680d4662dce5b1158b323192f35af7e9c
Closes-Bug:#1659209
2017-02-01 00:09:22 +07:00