Hardware introspection daemon for OpenStack Ironic
Go to file
dparalen 7a3d93700e Introduce API for aborting introspection
It is not currently possible to stop a running introspection.  This
may be annoying for the operator, considering the amount of time it
takes for the bare metal node to call the continue API request,
especially knowing the introspection will fail/time-out eventually
(such as when debugging).

This patch introduces a REST API endpoint "POST
/v1/introspection/<node-UUID>/abort" in order to fill the gap.  Upon the
abort method call, following preconditions are checked:

* there's a bare metal node matching the UUID
* introspection was not finished for the node
* introspection process is waiting for the node to give the continue call

Following Responses are returned to the caller in case the
preconditions were not met:

* 404 Response in case node wasn't found
* 409 Response (resource busy) in case the introspection process is not
      waiting for the Continue call

Otherwise, a 202 Response is returned.

When the abort method is processed, the node is powered off and it is
black-listed in inspector's firewall to prevent it from booting the
introspection image. This happens asynchronously.

To prevent interference with the continue call processing, the
processing method was updated to give a 400 Response to the
introspection client in case continuing a finished or canceled
introspection.

Limitations:
* IMPI credentials are never updated in case introspection was canceled
* 202 response is returned even if the introspection was already finished
* the endpoint differs from requested "DELETE
  /v1/introspection/<node-UUID>"

Links:
[1] https://bugs.launchpad.net/ironic-inspector/+bug/1525235

Change-Id: If043171f0d292ae2775dc1f26233dd4911599247
Closes-Bug: #1525235
2016-02-09 15:30:46 +01:00
devstack Merge "[devstack] Use the coreos builder for the source build of the ramdisk" 2016-02-04 15:19:33 +00:00
doc Introduce API for aborting introspection 2016-02-09 15:30:46 +01:00
ironic_inspector Introduce API for aborting introspection 2016-02-09 15:30:46 +01:00
releasenotes Introduce API for aborting introspection 2016-02-09 15:30:46 +01:00
rootwrap.d Use rootwrap to execute iptables instead of requiring root 2015-09-23 13:27:15 +02:00
.gitignore Generate Sphinx docs 2015-11-27 11:56:36 +02:00
.gitreview Update .gitreview file for project rename 2015-06-12 23:12:30 +00:00
babel.cfg Add scripts to manage translations 2015-03-04 00:07:37 +00:00
CONTRIBUTING.rst Switch to IPA as a primary ramdisk 2016-01-13 17:30:56 +01:00
example.conf Track node identification during the whole processing 2016-01-13 12:23:15 +01:00
ironic-inspector.8 Final discoverd -> inspector rename/move pass 2015-06-15 15:34:00 +02:00
LICENSE Apache license 2014-10-03 17:15:55 +02:00
plugin-requirements.txt Store and expose introspection data 2015-08-27 20:18:54 -04:00
README.rst Mention docs in the README now that they're published 2015-12-03 13:32:21 +01:00
requirements.txt Updated from global requirements 2016-02-01 22:42:53 +00:00
rootwrap.conf Use rootwrap to execute iptables instead of requiring root 2015-09-23 13:27:15 +02:00
setup.cfg Merge "Add new conditions: matches and contains" 2016-02-02 13:36:15 +00:00
setup.py Updated from global requirements 2015-09-17 12:12:28 +00:00
test-requirements.txt Updated from global requirements 2016-01-19 13:47:50 +00:00
tox.ini Put py34 first in the env order of tox 2015-12-22 18:22:53 +05:30

Hardware introspection for OpenStack Bare Metal

This is an auxiliary service for discovering hardware properties for a node managed by Ironic. Hardware introspection or hardware properties discovery is a process of getting hardware parameters required for scheduling from a bare metal node, given it's power management credentials (e.g. IPMI address, user name and password).

Note

ironic-inspector was called ironic-discoverd before version 2.0.0.

For information on any current or prior version, see the release notes.