Hardware introspection daemon for OpenStack Ironic
Go to file
dparalen 7e72ceffd1 Terminal state transitions in transactions
Multiple spots were not using DB transactions when processing the terminal
state transitions (error, abort, finish, timeout). The pattern looked like
this:

    node_info.fsm_event(istate.Events.error)
    # more code
    node_info.finished(error='Oops!')

which led to brief periodes of state inconsistency of NodeInfo records in
the DB.

This patch refactors the NodeInfo.finished() method to require a terminal state
transition to perform as part of the NodeInfo state update:

   NodeInfo().finished(istate.Events.finish)
   NodeInfo().finished(istate.Events.abort, 'Canceled by operator')

This patch also introduces a new state: aborting to allow the inspector to
try call power-off the node before marking the introspection aborted.

There's a new DB migration since the new state implies a schema change too
(Enum).

Closes-Bug: #1721233
Closes-Bug: #1721230
Closes-Bug: #1723384

Change-Id: I0bb051d1956a996ed006d55a5ca2d670d9455047
2017-12-19 18:15:31 +01:00
devstack Remove SCREEN_LOGDIR from devstack 2017-10-06 08:38:15 +07:00
doc Terminal state transitions in transactions 2017-12-19 18:15:31 +01:00
ironic_inspector Terminal state transitions in transactions 2017-12-19 18:15:31 +01:00
releasenotes Terminal state transitions in transactions 2017-12-19 18:15:31 +01:00
rootwrap.d Use rootwrap to execute iptables instead of requiring root 2015-09-23 13:27:15 +02:00
tools Add fsm dot diagram generator 2017-03-01 14:46:28 +02:00
.gitignore Add request context and policy enforcement 2017-10-13 11:55:52 +00:00
.gitreview Update .gitreview file for project rename 2015-06-12 23:12:30 +00:00
.stestr.conf Use ostestr unit test runner 2017-10-02 14:28:58 +00:00
CONTRIBUTING.rst Refactoring the firewall 2017-10-19 16:38:15 +02:00
LICENSE Apache license 2014-10-03 17:15:55 +02:00
README.rst Update the documentation link for doc migration 2017-08-03 14:29:06 +00:00
babel.cfg Add scripts to manage translations 2015-03-04 00:07:37 +00:00
config-generator.conf Add request context and policy enforcement 2017-10-13 11:55:52 +00:00
example.conf Merge "Refactoring the firewall" 2017-10-19 21:40:25 +00:00
ironic-inspector.8 Final discoverd -> inspector rename/move pass 2015-06-15 15:34:00 +02:00
plugin-requirements.txt Store and expose introspection data 2015-08-27 20:18:54 -04:00
policy-generator.conf Add request context and policy enforcement 2017-10-13 11:55:52 +00:00
policy.yaml.sample Add request context and policy enforcement 2017-10-13 11:55:52 +00:00
requirements.txt Updated from global requirements 2017-10-23 10:59:29 +00:00
rootwrap.conf TrivialFix: Fix typo in the configuration file 2016-09-30 10:56:53 +07:00
setup.cfg Merge "Refactoring the firewall" 2017-10-19 21:40:25 +00:00
setup.py Updated from global requirements 2017-03-02 11:45:30 +00:00
test-requirements.txt flake8: Enable some off-by-default checks 2017-10-16 14:25:15 -07:00
tox.ini Merge "Add request context and policy enforcement" 2017-10-19 21:40:24 +00:00

README.rst

Hardware introspection for OpenStack Bare Metal

Introduction

image

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.

Release Notes

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