Remove 'incubated' documentation theme

Ironic is no longer incubated, so let's not use the incubated HTML
documentation theme anymore.

Change-Id: I202a549125144e10a93a62b5bbdd03370f7847be
Use DbTestCase as test base when context needed

There is tests.db.base.DbTestCase class which inherits from
tests.base.TestCase and adds context to test case object. Some test
cases initialize context in their setUp method, so to avoid this
initialization and unnecessary imports tests.db.base.DbTestCase can
be used as their base class.

Change-Id: I46cf7d1a33f8fbaa7d720bcfc574c9640ef83c06
Updated from global requirements

Change-Id: I05b251ce54af888229910eefb39db582c60c6d84
Replace custom lazy loading by stevedore

Change-Id: I0b09e8822af6e8c3ce7299d31eb53f30a50262bc
Merge "Use DbTestCase as test base when context needed"
Merge "Replace custom lazy loading by stevedore"
Add a call to management.validate(task)

Makes sure _send_sensor_data calls the driver validate method before
calling get_sensor_data.

Change-Id: I859ff3d315765f463a433fe3c02cb975f98972d2
Closes-Bug: 1375103
Update hacking version in test requirements

The current version >=0.8.0,<0.9 is not compatible
with the one from global requirements project >=0.9.2,<0.10

Change-Id: I24dac763e744653bfc890feacd5d360c4838f715
ilo* drivers to use only ilo credentials

Currently IloVirtualMediaIscsiDriver and IloVirtualMediaAgentDriver
and pxe_ilo driver uses ipmitool for console and management interfaces.
This imposes user/operator to specify ipmi credentials along with ilo
credentials (which are same) during creation of node.

This fix proposes to update the ipmi credentials on the fly by inheriting
IPMI console and Management Interface.

Change-Id: I81c1311b05bd00bb8245ceb71a140f6bdd2e7daa
Closes-bug:#1367182
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
Merge "Add "affinity" tracking to nodes and conductors"
Merge "Add a call to management.validate(task)"
Open Kilo development

Bump pre-version to 2015.1 to formally open master branch to Kilo
development.

Change-Id: I02697038476e6c165b44f92b065a9d0b410f78a7
Add periodic task to rebuild conductor local state

This adds a periodic task which can rebuild the conductor's local state
(PXE config files, etc) when conductors join or leave the cluster.

For any node which is newly mapped to the conductor, this will
trigger calling prepare() and take_over() on that node's deploy
interface.

This uses the periodic_max_worker setting like other periodic jobs,
starting the take over process in separate threads. Thus, in a large
cluster, it may take some time for all nodes to settle down.
It also adds a new CONF option to control the timing of this job.

There is a lot of room for improvement and optimization in this, however
getting a fix in place is critical to the Juno release.

NOTE: This does not re-establish any console sessions.

Co-Authored-By: Lucas Alvares Gomes <lucasagomes@gmail.com>
Change-Id: I0dbe9a5a98ec5fd0c69f32d7590d8141da5a23c2
Closes-bug: #1279331
Make hash ring mapping be more consistent

Nejc Saje reported on the openstack-dev list that our hash ring was not
stable as hosts were added or removed. This is a significant issue since
the hash ring is meant to minimize the impact of adding or removing
conductors to only approximately the change in capacity.

IMPORTANT: When this patch is added to a running Ironic environment it
will cause ring calculations to change. This will cause most existing
node -> conductor mappings to be invalid, which will cause existing
deployed nodes to be unable to reboot (if using a netbooting driver like
pxe_ipmi). The cluster will self-correct over time as the periodic task
_sync_hash_ring() rebuilds PXE environments.

NOTE: The meaning of the hash_partition_exponent configuration setting
had to be changed - if we define the total number of partitions of the
ring via it then adding a host simultaneously removes some partitions of
each existing host as well as adding new partitions from the new host -
this results in more perturbation. Instead we use it to define the
number of partitions per host. Existing deployments will continue to
work, but may be able to reduce some CPU overhead by shrinking their
setting.

Change-Id: Iad3c9f6b460e9162ca91d5719e42f7950f2f18df
Closes-Bug: #1365334
DocImpact: See above.
UpgradeImpact: See above.
Merge "ilo* drivers to use only ilo credentials"
Merge "Open Kilo development"
Remove kombu as a dependency for Ironic

It was required before oslo.messaging now kombu is not used anymore in
our code database.

Change-Id: If9c52c4fce52b913e404cd41a81d187986041df0
Merge "Remove 'incubated' documentation theme"
Cleans up some Sphinx rST warnings in Ironic

The names of parameters in docstrings should not have leading astrisk
characters, because it confuses the rST parser.

Change-Id: I8c3574b03903a23c10ef2afcb793c6766a486007
Partial-Bug: 1277282