91 Commits

Author SHA1 Message Date
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
Dmitry Tantsur
797544316e Add hardware type for IPMI using ipmitool
Created a new Python module ironic.drivers.ipmi to contain all
supported IPMI-related drivers (both new and old).
Backward compatible aliases are left at old locations.

Change-Id: I526b8505d08b25b668af76d3fcd8f2feab31e420
Partial-Bug: #1524745
2017-01-26 14:22:23 +01:00
Naohiro Tamura
f15d5b9a37 Generic power interface for soft reboot and soft power off
This patch updates the generic power interface to support SOFT_REBOOT
and SOFT_POWER_OFF. And also it introduces "timeout" optional
parameter for all power operations.

Partial-Bug: #1526226
Change-Id: I1c9bbd1f11f6a8565607c874b3c99aa10eeb62a5
2017-01-04 11:38:01 +09:00
Julia Kreger
c491e93a08 Add storage_interface to base driver class
In order to properly support booting and maintenance of
systems that boot from a remote storage device, we need an
interface to associate the driver with.

This commit adds a basic storage_interface and noop and fake
interfaces along with the appropriate handling for configuration
in the event that the driver list is blank, or is missing the
noop driver.

Co-Authored-By: Stephane Miller <stephane@alum.mit.edu>
Change-Id: Ib21eda88f207f18675c8580cd7fd37eab6fd70bf
Partial-Bug: #1559691
2016-12-21 20:35:30 +00:00
Jenkins
d8e5a269ac Merge "Remove iBoot, WoL and AMT drivers" 2016-12-16 22:16:58 +00:00
Dmitry Tantsur
2777814449 Introduce generic hardware types
This change adds ironic.drivers.generic.GenericHardware which contains
useful defaults. Other hardware types are recommended to derive from it.

Add reasonable vendor-independent defaults to enabled_{deploy,raid,boot}_interfaces
configuration options. Add an entry point for "inspector" inspect implementation.

Also adding ironic.drivers.generic.ManualManagementHardware. This hardware
type is mostly introduced to make unit testing of GenericHardware possible.
However, it also has a potential use case: hardware not covered by
an existing driver or when an existing driver misbehaves. I personally
know people using fake_pxe currently in production for such use cases.

Change-Id: I328191524eb71c2ef51fec02c9cb28087dcf663b
Partial-Bug: #1524745
2016-12-16 13:46:06 +01:00
Dmitry Tantsur
901171194b Support defining and loading hardware types
This change introduces a new module ironic.drivers.hardware_types
with AbstractHardwareType class. It also updates driver_factory
code to support loading hardware types and creating dynamic drivers.
Interfaces validation code extended to cover hardware types.

This change also introduces the FakeHardware class for testing.
It is special-cased to bypass compatibility validation completely.

No hardware types are loaded on conductor start up yet, as hardware
types still do not participate in the hash ring. Thus, nodes with
hardware types cannot still be created via HTTP API.

Change-Id: If8e3342baf818a9e37aa82b43aec71898d48c29b
Partial-Bug: #1524745
2016-12-14 18:50:52 +01:00
Pavlo Shchelokovskyy
87c2db4dc6 Remove iBoot, WoL and AMT drivers
This patch removes the mentioned drivers from ironic code tree.

Per our third-party drivers policy they are unsupported,
and there is no existing plan to have third-party CI for them.

Nevertheless, if anybody still needs them, they are available in
ironic-staging-drivers repo.

Change-Id: I1219892bbc1b814d80b62c8ec89b90819071870f
Related-Bug: #1640533
2016-12-13 09:31:08 +02:00
Dmitry Tantsur
7591dcedfb Create dummy interfaces for use with hardware types
A new module is created containing "noop" implementations of all
interfaces we consider optional. These can be used as default
implementation for hardware types that don't support a particular
interface or just don't want it enabled by default.

Partial-Bug: #1524745
Change-Id: I2abe2ff5449ac2671020f309b27c4e738fa017b5
2016-11-10 16:52:06 +01:00
Vasyl Saienko
f17dd1febf Add entry_point for oslo policy scripts
There are two helper scripts in oslo.policy to help deployers understand
their policy configuration better. With the setup.cfg entry these can be
called directly from oslo.policy.

Change-Id: Icfff952f0742b188968603cd3335a3ef50965337
Closes-Bug: #1625804
2016-10-04 11:32:21 +03:00
Imre Farkas
da93b01f32 DRAC OOB inspection
Implements out-of-band inspection in the DRAC driver using inspection
interface.

Change-Id: I0d63f31473776551550f917dbc7237564881f566
Closes-bug:  #1603454
2016-09-02 12:08:38 +02:00
Jenkins
463f311411 Merge "Fix tempest realted exceptions during docs build" 2016-08-05 16:51:57 +00:00
Vladyslav Drok
24e02f99b2 Fix tempest realted exceptions during docs build
We don't have tempest in our {test-}requirements.txt, which causes
docs build to complain about missing tempest.* modules, as we have
autodoc enabled, which imports all the modules it can find to get
their docstrings.

This change adds ironic_tempest_plugin modules to
autodoc_exclude_modules, and also adds it to exclude_patterns, so
that sphinx ignores ironic_tempest_plugin/* files too.

Also fixes a couple of warnings because of the incorrect formatting
of the LocalLinkConnectionType.validate docstring.

Closes-bug: #1609850
Change-Id: Id24e587b690b423e65dad55e70224426873e8d5d
2016-08-04 18:10:24 +03:00
Devananda van der Veen
c7da7a6925 Add keystone policy support to Ironic
Implements more fine-grained policy support within our API service,
following the oslo policy-in-code spec, while maintaining compatibility
with the previous default policy.json file. An empty policy.json file is
included, along with a sample file listig all supported policy settings
and their default values.

A new tox target "genpolicy" has been added to ease automation of
sample policy file generation.

All calls to policy.enforce() have been replaced with with
policy.authorize() to avoid silent failures when a rule is undefined,
because enforce() does not raise() if the target rule does not exist.

  NOTE: policy.enforce() is not removed by this patch, but a deprecation
  warning will be logged if it this method is invoked.

Updates unit test coverage for the new authorize() method, as well as
more general unit test updates for some of the new rules.

Partial-bug: #1526752
Change-Id: Ie4398f840601d027e2fe209c17d854421687c7b7
2016-08-04 12:43:20 +00:00
Jenkins
636f26ad1a Merge "IPMITool: add IPMISocatConsole and IPMIConsole class" 2016-07-26 00:05:22 +00:00
Yuiko Takada Mori
857372a226 IPMITool: add IPMISocatConsole and IPMIConsole class
IPMISocatConsole is a new console interface class using ipmitool and
socat. It has the same APIs of IPMIShellinaboxConsole class and
provides TCP4/TCP6 connection service to connect serial-on-LAN of
nodes.
IPMIConsole is a new console interface class using ipmitool and used
as parent class of IPMIShellinaboxConsole and IPMISocatConsol class.

This patch set implements new console driver interfaces
IPMISocatConsole.

To use PXE + IPMItool + socat, specify pxe_ipmitool_socat.
To use IPA + IPMItool + socat, specify agent_ipmitool_socat.

Spec: https://review.openstack.org/#/c/319505/
Partial-Bug: #1553083
Change-Id: I35a7dcb7e89baf16d096501fd44dbc12adc8c61e
2016-07-25 16:42:31 +09:00
Jenkins
9882661fbf Merge "Fix docstring warnings" 2016-07-14 21:56:34 +00:00
Vasyl Saienko
ab97fa0f1f Add 'neutron' network interface
This patch adds a 'neutron' network interface. This interface
supports separate networks for provisioning and for cleaning of nodes.

Partial-bug: #1526403
Co-Authored-By: Vladyslav Drok <vdrok@mirantis.com>
Change-Id: Ia3442ab3536a1a8d8839b24dbfc640b818450350
2016-07-13 13:38:56 +03:00
Ramamani Yeleswarapu
f14661001c Fix docstring warnings
Fix existing docstring warnings in Ironic doc builds. This is
to make sure upcoming pbr release to fix the 'warnerrors' issue[0]
doesn't break our doc builds.

[0] http://lists.openstack.org/pipermail/openstack-dev/2016-June/097849.html

Change-Id: Idd8db05bacb26833ff3ec3a2d8bf48d1fccee788
2016-07-12 15:44:10 -07:00
Vasyl Saienko
cde11611d9 Add network interface to base driver class
This change also introduces two network interfaces:

* flat: Copies current neutron DHCP provider logic to work with
  cleaning ports;
* noop: noop interface.

The default value of the network_interface is None, meaning that the
node will be using the default network interface. The default network
interface is determined the following way:

* if [DEFAULT]default_network_interface configuration option is set
  (the default for it is None), the specified interface becomes the
  default for all nodes;

* if it is not set, 'flat' interface will be used if the deployment
  currently uses 'neutron' DHCP provider, otherwise 'noop' interface
  will be used.

create_cleaning_ports and delete_cleaning_ports methods of the DHCP
providers are still being called in case of out-of-tree DHCP
providers, but this possibility will be removed completely in the
next release. If the DHCP provider logic is rewritten into a custom
network interface, please remove those methods from the provider, so
that network interface is called instead.

Partial-bug: #1526403
Co-Authored-By: Om Kumar <om.kumar@hp.com>
Co-Authored-By: Vasyl Saienko <vsaienko@mirantis.com>
Co-Authored-By: Sivaramakrishna Garimella <sivaramakrishna.garimella@hp.com>
Co-Authored-By: Vladyslav Drok <vdrok@mirantis.com>
Co-Authored-By: Zhenguo Niu <Niu.ZGlinux@gmail.com>
Change-Id: I0c26582b6b6e9d32650ff3e2b9a3269c3c2d5454
2016-07-12 19:08:07 +03:00
Lin Tan
773aa20a4a Make use of oslo-config-generator
oslo_config provide a utility for generating sample config files,
which provide more detail about opts, like Minimum/Maximum value
and Allowed values.
So drop Ironic's "generate_sample.sh" which was copied from
oslo-incubator long time ago.

Add a new entry point "ironic" under oslo.config.opts namespace to
explore config options to oslo-config-generator.

After this patch, new config options of Ironic code should register
with ironic/conf/opts.py. New external libraries should
register with tools/config/ironic-config-generator.conf

There is a bug #1554657 with oslo-config about deprecated_group.
This bug have impact of some configs from keystonemiddleware
and oslo.messaging in ironic.conf.sample
So currently, deprecated option should always add the deprecated_group
even it didn't alter the group, otherwise the deprecated group value will
be 'DEFAULT'.

Update etc/ironic/ironic.conf.sample via running 'tox -egenconfig'.

Closes-Bug: #1564195
Change-Id: If7721e98e69b6f54f1ee04a07477396b86583371
2016-05-25 11:59:13 +08:00
Dmitry Tantsur
cc66d0b711 Add ironic_tempest_plugin to the list of packages in setup.cfg
Change-Id: I978caa733b2ad1d38da019307784704e37c49cc8
2016-02-23 16:47:38 +01:00
jinxingfang
7276d2223d Update the home page
http://www.openstack.org ---> http://docs.openstack.org/developer/ironic/

Change-Id: I9e62b4706b7585a667204c9dfe3291bae3388cf0
2016-02-05 18:07:04 +08:00
Yuiko Takada
691de301ce Use Tempest plugin interface
Make use of the Tempest plugin interface.

This patch set creates some directories and files for
Tempest plugin interface which are generated by
tempest-plugin-cookiecutter(See [1] and [2]),
which uses ironic_tempest_plugin as new top folder for all Tempest tests,
and also makes possible to import config values from Tempest and use them.

Copying Ironic tests in Tempest to Ironic tree and removing
existing Ironic tests in Tempest will be done after merging this
patch set.

[1]: https://github.com/openstack/tempest-plugin-cookiecutter
[2]: http://docs.openstack.org/developer/tempest/plugin.html

Change-Id: I6a26b1d1fcf088d5218b92e13911c48708af4ec8
2016-01-18 19:37:42 +00:00
Dan Prince
030304d7c2 Add agent_iboot entrypoint
This patch adds a new driver combination/entrypoint so that
the Iboot power driver can be used with an IPA agent
based deployment workflow.

Change-Id: I677e60a333ec65cbd2852270fb091f17428e5e36
Closes-bug: #1514439
2015-11-10 09:30:53 +00:00
Yuriy Zveryanskyy
977d1f1f78 Add "agent_wol" (AgentAndWakeOnLanDriver)
This patch adds new driver with WakeOnLanPower and AgentDeploy
interfaces. Automatic deploy is possible because AgentDeploy
does soft power off at the end of deploy cycle.

Change-Id: I09dc41c1523fafc5155a02829f9528d65cf2f5b0
2015-11-02 13:51:56 +02:00
Jenkins
b80e59148c Merge "Move FakeOneViewDriver to the fake.py module" 2015-10-14 03:32:04 +00:00
Jenkins
56ef2a001c Merge "OneView Driver for Ironic" 2015-10-13 03:05:14 +00:00
Lucas Alvares Gomes
2218ed3f0e Move FakeOneViewDriver to the fake.py module
All Fake drivers in tree lives under the fake.py module, this patch is
moving the FakeOneViewDriver to that module as well so we keep things
consistent and organized.

Change-Id: Ie3ecbf87037b353950acd6dd78503cad2e8a0221
2015-10-12 18:46:34 +01:00
Jim Rollenhagen
42d203a9a5 Add agent_amt driver
This combines the AgentDeploy deploy driver with the AMT power and
management drivers, to allow the agent-based deploy mechanism on AMT
hardware.

Co-Authored-By: Devananda van der Veen <devananda.vdv@gmail.com>
Closes-Bug: #1499489
Implements: blueprint agent-amt-driver
Change-Id: Ideaa68d97477a9a924c33e76b4da3aa8fb02f503
2015-10-12 00:09:37 +00:00
Thiago Paiva
460b9f1f5f OneView Driver for Ironic
This driver that will promote integration between Ironic and the HP OneView
Management System. The driver will allow Ironic to borrow non-dedicated servers
from OneViews's inventory to provision baremetal instances with minimal common
pre-configuration, set through OneView's *Server Profile Templates*.

Co-Authored-By: Alberto Barros <albertoffb@lsd.ufcg.edu.br>
Co-Authored-By: André Aranha <afaranha@lsd.ufcg.edu.br>
Co-Authored-By: Caio Oliveira <caiobo@lsd.ufcg.edu.br>
Co-Authored-By: Diego Pereira <diegolp@lsd.ufcg.edu.br>
Co-Authored-By: Gabriel Bezerra <gabrielb@lsd.ufcg.edu.br>
Co-Authored-By: Lilia Sampaio <liliars@lsd.ufcg.edu.br>
Co-Authored-By: Sinval Vieira <sinval@lsd.ufcg.edu.br>

Change-Id: Ic2fb7860e6b4f5183b6525ff7709c7616350a96a
Implements: blueprint new-ironic-driver-for-oneview
Depends-on: I914596e592477e148e642f93cfbe114464c3fe38
2015-10-09 15:14:32 -03:00
Sam Betts
363c9c38df Add Cisco IMC PXE Driver
Current drivers only allow for control of UCS servers via either IPMI or
UCSM, the Cisco UCS C-Series operating in standalone mode can also be
controlled via CIMC using its http/s XML API. This provides finer
control over the server than IPMI can, and doesn't require the extra
infrastructure that UCSM needs.

Change-Id: Ibd39040e3d7e82a87960d33150750433beb2453b
Implements: blueprint cisco-imc-pxe-driver
2015-09-21 18:29:43 +01:00
Doug Hellmann
025bfc93d0 Switch to post-versioning
Remove the version in the setup.cfg so pbr relies solely on tags for
version definitions.

Change-Id: Ida88cd59f09be4b30a7bbf59fdc9e2e42099a7ba
2015-08-24 18:45:53 +00:00
stephane
1d82c93652 Fix warnings on doc builds
In the sphinx config, mock out the nova imports we do for the
compute manager so the docs will build with fewer errors.

Exclude the alembic migration environment from autodoc.

Fix the remaining markup errors, which are now easier to spot
given the other fixes.

Note that this leaves one remaining warning, which is that the
generated API documentation isn't currently included in a
toctree. This is easy to fix but it would be good to discuss
whether/where to include it in the documentation hierarchy.

Closes-Bug: 1277282
Change-Id: Iee5fc3eeb95a09198d5234d0ea05e150ab26f16b
2015-08-07 11:36:17 -07:00
Naohiro Tamura
f55ab34e54 Add iRMC Virtual Media Deploy module for iRMC Driver
This module enables PXE/TFTP less deployment capability to provision
PRIMERGY bare metal nodes (having iRMC S4 and beyond) by booting the
bare metal node with virtual media using NFS or CIFS from conductor
node to deploy the image.

Implements: blueprint irmc-virtualmedia-deploy-driver
Change-Id: I747b3245c7ba5e991abb07c894c8cd2b2d3c45e8
2015-07-06 01:22:25 +09:00
Lucas Alvares Gomes
c92fac1e5a Wake-On-Lan Power interface
This patch implements a simple Wake-On-Lan power interface. For those
that does not have any fancy hardware just old PCs at home.

Wake-On-Lan is only capable of powering ON the machine, so it's
recommended to use the DIB ramdisk for testing the deployments with it
because it does a soft reboot on the machine at the end of the deployment.

After the machine is unprovisioned, you'll have to manually power it
off :-)

This patch also doesn't implement SecureON password feature for
Wake-On-Lan, I left a TODO in the code for those willing to implement it.

Implements: blueprint wol-power-driver
Change-Id: I6c0f98ef1cab1ebfb4a7e1d0aaae29672db1c5a4
2015-06-12 10:01:25 +01:00
saripurigopi
8c26a8c33b Add pxe_ucs and agent_ucs drivers to manage Cisco UCS servers
This commit adds pxe_ucs, agent_ucs driver changes.
Adds support for the following:

- Power driver changes
- Management interface changes
- UCS Helper code, which can be reused with other parts of the driver,
  ex: to support vendor apis.

Change-Id: I02211da5fad039dc7e6b509d547e473e9b57009b
Implements: blueprint cisco-ucs-pxe-driver
2015-06-10 19:16:04 +05:30
Dmitry Tantsur
06c8fc9ad1 ironic-discoverd is being renamed to ironic-inspector
This patch changes module names, allows importing new module
name for inspector (will be later changed to ironic_inspector_client).

We need this patch to unbreak devstack support.

Change-Id: I34cc4336dcd7e8d44aebecf5c85b52c83f0c717b
2015-06-01 12:32:14 +02:00
Alessandro Pilotti
6a87c8a6ca Adds OCS Power and Management interfaces
Includes support for the Open CloudServer (OCS) chassis manager
power operations. The OCS design has been contributed by
Microsoft to the Open Compute project.

Implements blueprint msft-ocs-power-driver

Change-Id: Ic2c90ab5c8d79c55ae83dd485b3cf9281b600c23
2015-05-06 15:25:46 +03:00