A service for managing and provisioning Bare Metal servers.
Go to file
Ruby Loo 7b09d3e8dc Remove unused IronicObjectIndirectionAPI from ironic-api
Many moons ago, we thought that we would implement rolling upgrades
using a similar model to nova. This included adding an instance
of an IronicObjectIndirectionAPI to the ironic-api service. What
it was meant to do was for ironic-api to invoke it if it received
an IronicObject that it didn't know what to do with (because it
didn't recognize that object's version). That API would have
invoked the conductor service, asking it to generate a version
of that object which ironic-api would understood.

To use this mechanism, the assumption is that the conductor is
the gateway to the DB.

This mechanism doesn't work for ironic for a few reasons:
- ironic API reads (and occasionally) writes directly to the database.
  We don't want to change it to get access to the DB via the
  conductor all the time, since for e.g. we don't want to slow down
  the conductor
- Nova's rolling upgrade process is to initially take down all their
  conductor services (which handles their DB interactions) at the
  same time,  while their other services are still running. Unless
  ironic changes to have a similar model, we cannot take down all
  the conductor services at the same time if ironic is to provide
  services during a rolling upgrade.

Thus, this patch removes the unused IronicObjectIndirectionAPI from
the ironic-api service. Note that the IronicObjectIndrectionAPI
class itself (in ironic/objects/indirection.py) was left, in case
things ever change in the future. (And because removing that would
involve touching most, if not all, of the files in the objects/
subdirectory.)

Change-Id: I1aa264a8619105939968c0b8128b358badf00210
Closes-Bug: #1586320
2017-11-02 17:07:33 -04:00
api-ref Merge "Add ability to provide configdrive when rebuilding" 2017-11-01 22:27:16 +00:00
devstack Allow to set default ifaces in DevStack 2017-10-31 17:31:30 +00:00
doc/source Merge "Add ability to provide configdrive when rebuilding" 2017-11-01 22:27:16 +00:00
etc Remove unnesessary description for config parameters in cinder group 2017-10-30 19:30:23 +09:00
ironic Remove unused IronicObjectIndirectionAPI from ironic-api 2017-11-02 17:07:33 -04:00
ironic_tempest_plugin Ensure ping actually succed 2017-10-31 14:36:31 +02:00
playbooks/legacy Move ironic legacy jobs into the ironic tree 2017-10-18 16:52:46 +01:00
releasenotes Merge "Add ability to provide configdrive when rebuilding" 2017-11-01 22:27:16 +00:00
tools Merge "[doc-migration] Add configuration folder for documentation" 2017-08-02 22:26:46 +00:00
zuul.d Zuul: add file extension to playbook path 2017-10-29 15:04:25 -07:00
.gitignore Migrate to stestr as unit tests runner 2017-09-22 08:56:34 +00:00
.gitreview Added project infrastructure needs. 2013-05-02 14:55:43 -04:00
.mailmap Update mailmap for Joe Gordon 2013-10-28 10:19:15 +00:00
.stestr.conf Migrate to stestr as unit tests runner 2017-09-22 08:56:34 +00:00
CONTRIBUTING.rst [doc] Replace http with https 2017-08-21 17:41:52 -04:00
LICENSE Added project infrastructure needs. 2013-05-02 14:55:43 -04:00
README.rst [doc] Replace http with https 2017-08-21 17:41:52 -04:00
Vagrantfile Change vagrant.yml to vagrant.yaml 2015-08-07 09:51:32 +00:00
babel.cfg Run extract_messages 2013-07-22 09:51:10 +02:00
bindep.txt Add bindep.txt file 2017-10-12 12:05:36 +03:00
driver-requirements.txt Support SUM based firmware update as clean step for iLO drivers 2017-10-10 07:36:51 +00:00
requirements.txt Updated from global requirements 2017-10-12 21:54:18 +00:00
setup.cfg Add default configuration files to data_files 2017-09-27 12:18:20 +00:00
setup.py Updated from global requirements 2017-03-02 11:45:27 +00:00
test-requirements.txt Cleanup test-requirements 2017-09-25 06:30:33 +00:00
tox.ini Add I202 to flake ignore list 2017-10-25 14:32:52 +03:00
vagrant.yaml Merge "Update the documentation links - code comments" 2017-08-15 14:48:41 +00:00

README.rst

Team and repository tags

image

Ironic

Ironic consists of an API and plug-ins for managing and provisioning physical machines in a security-aware and fault-tolerant manner. It can be used with nova as a hypervisor driver, or standalone service using bifrost. By default, it will use PXE and IPMI to interact with bare metal machines. Ironic also supports vendor-specific plug-ins which may implement additional functionality.

Ironic is distributed under the terms of the Apache License, Version 2.0. The full terms and conditions of this license are detailed in the LICENSE file.

Project resources

Project status, bugs, and requests for feature enhancements (RFEs) are tracked on Launchpad: https://launchpad.net/ironic

For information on how to contribute to ironic, see https://docs.openstack.org/ironic/latest/contributor