By having the API service use an RPC call to the Conductor, we can take an exclusive task lock on the node being updated. This will prevent updates to a node while a task is in process on it. This is the first method implemented using RPC of a versioned object to provide distributed locking between API and Conductor instances. This patch also clarifies the description of node state changes in states.py, and does a minimal amount of reasonable checking to ensure that nodes do not get put into inconsistent situations. It also adds some unit tests to the API for both the new method and for get_all, which already existed. Change-Id: I8364ef19bfe177d56ec7bc1c0f1e166125a20ec5
Ironic
Ironic is an Incubated 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 in concert to provision and turn on/off machines, but Ironic also supports vendor-specific plugins which may implement additional functionality.
Project Resources
Project status, bugs, and blueprints are tracked on Launchpad:
Developer documentation can be found here:
Additional resources are linked from the project wiki page:
Anyone wishing to contribute to an OpenStack project should find plenty of helpful resources here:
All OpenStack projects use Gerrit for code reviews. A good reference for that is here: