Add get_console() method

Add the get_console() method to the base console interface class. When
implemented this method should return the necessary information for the
client to access that console.

Change-Id: Idb1796000b0b7b5a9967fcb756c0b7de5d38f801
Implements: blueprint serial-console-access
Add samples to serve API through Apache mod_wsgi

The default API service (ironic.cmd.api) uses the wsgiref library.

Some deployers may want to serve the API through apache/httpd instead.

This patch adds application hooks to use with mod_wsgi, and a sample
apache2 config file to demonstrate its use with debian-based distros.

Change-Id: I44cd8e0941c350a6e5c16cf2d068c3e8d684ab47
Related-bug: #1279206
Add topic to the change_node_maintenance_mode() RPC method

Topic is used by the distributed hashing algorithm in order to know to
which conductor it should route the RPC messages to. All the methods in
the rpcapi should support passing a topic to it.

Change-Id: Ida9f2efd07cf5a4f1445f68cdc8aac4e752a8c7a
Remove POST calls in tests for resource creation

Removes all unnecessary POST calls in tests setup.  Any resources needed in
test setup are now created with a direct call to the DB API.

Change-Id: I2b19eeb25e563a658eaf375c8ae83dec9ff68deb
Closes-Bug: #1261398
Remove _load_one_plugin fallback

Remove the _load_one_plugin fallback for stevedore version < 0.14. The
commit c011d7360085dc5b2b2521e5c533ccc87b310f15 pinned the stevedore
version to >= 0.14.

Change-Id: I73ab108a55613d9b9f6ce577d7a90ffe6596bd2c
Implement _update_neutron in PXE driver

Implement the _update_neutron method in the PXE driver,
so that it may update the DHCP BOOT options in Neutron,
and add unit tests.

Change-Id: I221ac15d9e43e1c8728aa2b100bc02763a160b85
Implements: blueprint add-neutron-support
Add testing and doc sections to docs/dev-quickstart

Add notes to dev/dev-quickstart to demonstrate how to
start up and interact with ironic-api and ironic-conductor
services locally, in a python virtualenv.

Also add some instrutions on building the documentation locally.

Change-Id: I01eb7ffb5ebe510cec9e4bc2f6ac0f0cc616493c
Fix race condition when changing node states

To fix race condition we're adding a mechanism of background task
execution in conductor. The conductor will get synchrozed AMQP call,
reserve lock, start the background task and return empty response to
the API. In case when lock cannot be acquired or background tasks pool
is full, the exception is sent back to the API and the task is not
started.

Also the patch adds an ability to control resource locks manually.
This feauture used to release lock in the end of background task.

Change-Id: I4095de2d82058ea5e052531698e67a0947424435
Closes-Bug: #1259910
Merge "Implement _update_neutron in PXE driver"
Merge "Add testing and doc sections to docs/dev-quickstart"
Merge "Add get_console() method"
Fix autodoc formatting in pxe.py

Change-Id: I8cd884aa9ad9014c9e1d5140c1302d915cb31ffd
Remove None as default value for dict get()

If no default value is specified it defaults to None already.

Change-Id: I70302191495dfe30971247496f33c558ecd87002
Log IPMI power on/off timeouts

Ported from nova: Iecd6fadb2b653f4ccbe75882c2ef85812b334e8d

Added log messages for cloud operators so that they can tell when an
attempt to turn a device on or off via IPMI has failed after the
configured number of attempts.

This should help operators diagnose issues on devices that respond
slowly to IPMI commands. The failure to repeatedly change the device
power state is now logged precisely along with the cause, where
before operators had to diagnose the issue through trace log captures.

Change-Id: I06cd432c72d72f5abe8cd5941e4d5844c66c1482
Merge "Fix race condition when changing node states"
Merge "Add topic to the change_node_maintenance_mode() RPC method"
Merge "Add samples to serve API through Apache mod_wsgi"
Merge "Remove POST calls in tests for resource creation"
Merge "Fix autodoc formatting in pxe.py"
Merge "Remove _load_one_plugin fallback"