ironic/ironic/api
Devananda van der Veen d6a277130b Add "affinity" tracking to nodes and conductors
Add "conductor_affinity" column to nodes table, containing a reference to the
`id` of the conductor service (not its hostname) that has most recently
performed some action which could require local state to be maintained
(eg, built a PXE config, or started a SOL session).

Using the `id` as a foreign key necessitates not deleting conductors
when unregistering them, but instead marking them offline. This also
helps in determining if a conductor service was only restarted (though
this patch does not implement graceful shutdown).

Thus, this patch also adds an "online" boolean column to the conductors
table to track whether a conductor is on- or offline, and updates
the register and unregister methods to use that field transparently.
It may be noted that this does not change the behavior of
register_conductor or unregister_conductor, though an optional
"update_existing" parameter has been added to register_conductor. This
replaces a DELETE query with an UPDATE query instead.

Co-Authored-By: David Shrewsbury <shrewsbury.dave@gmail.com>
Co-Authored-By: Lucas Alvares Gomes <lucasagomes@gmail.com>

Related-bug: #1279331
Change-Id: I8e8b5cc00fc9f565ad2fb442e9a26077342e0a25
2014-10-01 15:15:39 -07:00
..
controllers Add "affinity" tracking to nodes and conductors 2014-10-01 15:15:39 -07:00
middleware Translator functions cleanup part 4 2014-09-05 14:11:30 +03:00
__init__.py Remove extraneous vim configuration comments for ironic 2014-02-26 09:24:48 +08:00
acl.py Use auth_token from keystonemiddleware 2014-08-11 15:33:58 -07:00
app.py Remove extraneous vim configuration comments for ironic 2014-02-26 09:24:48 +08:00
app.wsgi oslo.i18n migration 2014-07-16 21:53:05 +00:00
config.py Add ironic-python-agent deploy driver 2014-07-30 23:27:11 +00:00
hooks.py Merge "Process public API list as regular expressions" 2014-03-28 00:49:30 +00:00