A service for managing and provisioning Bare Metal servers.
7f46a03fca
This paves the way for composable drivers. It: Creates a BareDriver class, which is a minimal subclass of BaseDriver, with no interfaces attached. Adds a method driver_factory.build_driver_for_task, that accepts a task argument and builds an instance of BareDriver that does have interfaces attached. These interfaces come from loading the driver in node.driver, and attaching each of the core, standard, and vendor interfaces to the BareDriver created. This also accepts a driver_name argument, for loading a driver that is not the one specified in node.driver (for example, when updating the driver for a node). This method will eventually need to take arguments for each interface that is broken out of the main driver singleton. By doing this, we create a driver instance per node, instead of using the monolithic driver singletons shared across nodes. Note that the attached interfaces are references to the interfaces in the driver singleton, and thus themselves still singletons. It is *which* interface implementations are referenced that will vary by node. This means that in the future, we can dynamically load and attach these interfaces, with the implementation chosen being defined by a property of the node. This patch also does a small refactoring as to how the list of interfaces attached to a driver are referenced, for cleanliness. Change-Id: Ic2b2525f2abd0d252f36442097e68f73aeaec9f7 |
||
---|---|---|
devstack | ||
doc/source | ||
etc | ||
ironic | ||
ironic_tempest_plugin | ||
releasenotes | ||
tools | ||
.gitignore | ||
.gitreview | ||
.mailmap | ||
.testr.conf | ||
babel.cfg | ||
CONTRIBUTING.rst | ||
driver-requirements.txt | ||
LICENSE | ||
README.rst | ||
RELEASE-NOTES | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini | ||
vagrant.yaml | ||
Vagrantfile |
Ironic
Ironic is an integrated OpenStack project which aims to provision bare metal machines instead of virtual machines, forked from the Nova Baremetal driver. It is best thought of as a bare metal hypervisor API and a set of plugins which interact with the bare metal hypervisors. By default, it will use PXE and IPMI together to provision and turn on/off machines, but Ironic also supports vendor-specific plugins which may implement additional functionality.
Project Resources
- Free software: Apache license
- Documentation: http://docs.openstack.org/developer/ironic
- Source: http://git.openstack.org/cgit/openstack/ironic
- Bugs: http://bugs.launchpad.net/ironic
- Wiki: https://wiki.openstack.org/wiki/Ironic
Project status, bugs, and blueprints are tracked on Launchpad:
Anyone wishing to contribute to an OpenStack project should find a good reference here: