100 Commits

Author SHA1 Message Date
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
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