- 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
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
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
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
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
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
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
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
Added IRMCHardware type for FUJITSU PRIMERGY servers
which have iRMC S4 management system.
Change-Id: I92c62a1680d4662dce5b1158b323192f35af7e9c
Closes-Bug:#1659209
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
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
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
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
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
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
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
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
Implements out-of-band inspection in the DRAC driver using inspection
interface.
Change-Id: I0d63f31473776551550f917dbc7237564881f566
Closes-bug: #1603454
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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