Remove 'fake' and 'ssh' drivers from default enabled list

Remove the 'fake' and 'ssh' drivers, since they should not show up in
production, and it is better to have production-oriented sane defaults.

Updates the option doc string with a lengthy description.

Updates the developer documentation with a link to the wiki page,
where a list of CI-tested drivers will be maintained.

Change-Id: I1151ace22752efdf6a8a43e279a57d728ea6cce2
This commit is contained in:
Devananda van der Veen 2014-04-18 16:33:30 -07:00 committed by Ruby Loo
parent af398ee3c4
commit bc17510675
3 changed files with 44 additions and 25 deletions

View File

@ -4,23 +4,34 @@
Pluggable Drivers
=================
The IPMITool driver provides an interface to the command-line `ipmitool`_
utility, whereas the IPMINative driver provides an interface to the newer
`pyghmi`_ python library.
Ironic supports a pluggable driver model. This allows contributors to easily
add new drivers, and operators to use third-party drivers or write their own.
The SSH driver provides an interface to control the power state of virtual
machines used in our test environments.
Drivers are loaded by the ironic-conductor service during initialization, by
enumerating the python entrypoint "ironic.drivers" and attempting to load
all drivers specified in the "enabled_drivers" configuration option. A
complete list of drivers available on the system may be found by
enumerating this entrypoint by running the following python script::
The SeaMicro driver provides an enhanced interface for SeaMicro hardware.
#!/usr/bin/env python
import pkg_resources as pkg
print [p.name for p in pkg.iter_entry_points("ironic.drivers") if not p.name.startswith("fake")]
A list of drivers enabled in a running Ironic service may be found by issuing
the following command against that API end point::
ironic driver-list
Supported Drivers
-----------------
For a list of supported drivers (those that are continuously tested on every
upstream commit) please consult the wiki page::
https://wiki.openstack.org/wiki/Ironic/Drivers
.. toctree::
../api/ironic.drivers.base
../api/ironic.drivers.pxe
../api/ironic.drivers.modules.ipminative
../api/ironic.drivers.modules.ipmitool
../api/ironic.drivers.modules.pxe
../api/ironic.drivers.modules.seamicro
../api/ironic.drivers.modules.ssh
.. _ipmitool: http://ipmitool.sourceforge.net/
.. _pyghmi: https://github.com/stackforge/pyghmi

View File

@ -218,10 +218,15 @@
# Options defined in ironic.common.driver_factory
#
# List of drivers to enable. Missing drivers, or drivers which
# can not be loaded will be treated as a fatal exception.
# (list value)
#enabled_drivers=fake,pxe_ipmitool,pxe_ssh
# Specify the list of drivers to load during service
# initialization. Missing drivers, or drivers which fail to
# initialize, will prevent the conductor service from
# starting. The option default is a recommended set of
# production-oriented drivers. A complete list of drivers
# present on your system may be found by enumerating the
# "ironic.drivers" entrypoint. An example may be found in the
# developer documentation online. (list value)
#enabled_drivers=pxe_ipmitool
#

View File

@ -23,15 +23,18 @@ from stevedore import dispatch
LOG = log.getLogger(__name__)
# TODO(deva): remove 'fake' and 'pxe_ssh' testing drivers from the defaults
# once appropriate test environments (devstack & triple)
# are updated
driver_opts = [
cfg.ListOpt('enabled_drivers',
default=['fake', 'pxe_ipmitool', 'pxe_ssh'],
help='List of drivers to enable. Missing drivers, or '
'drivers which can not be loaded will be '
'treated as a fatal exception.'),
default=['pxe_ipmitool'],
help='Specify the list of drivers to load during service '
'initialization. Missing drivers, or drivers which '
'fail to initialize, will prevent the conductor '
'service from starting. The option default is a '
'recommended set of production-oriented drivers. A '
'complete list of drivers present on your system may '
'be found by enumerating the "ironic.drivers" '
'entrypoint. An example may be found in the '
'developer documentation online.'),
]
CONF = cfg.CONF