Delete the iscsi target

After writing the image on the disk and logout the iscsi session,
we also need to delete that session to cleanup things, making sure it
doesn't appear as an available iscsi node to connect to.

Partial-Bug: #1261644
Change-Id: I05115e1a66974244e03020652b560829884ebaac
Run mkfs as root

The mkfs command requires root permission to write the filesystem on
certain devices. This patch is adding the run_as_root=True flag for the
execute() in the mkfs() function in common/utils.py, and is also adding
the mkfs to the rootwrap filters.

Closes-Bug: #1271243
Change-Id: I44e21c287510f355907fa45cbcb14b7f8c493a96
Docstrings for ipmitool

Cleaned up and added docstrings for some functions/methods in ipmitool.py.

Change-Id: I6cc845fe1cc24dac3c27b9efb06c009d7f0374af
Add missing parameter in call to _load_one_plugin

Stevedore 0.14 introduced a new paramter to the private method
ExtensionManager._load_one_plugin(). This broke our unit test suite, and
this patch adds that parameter to the call.

This patch supports both Stevedore < 0.14 and >= 0.14. Once we can pin
the version to >= 0.14, we should remove support for the old-style
call to _load_one_plugin.

For reference, we are directly calling this private method to provide a
mock-able extension manager and a corresponding fake extension for
testing the Conductor and the various extensions it loads.

Change-Id: Ib51f841af00548c3e20128f44a4b7a48422c1aa9
Closes-bug: #1273472
Bump version of sphinxcontrib-pecanwsme

Version bump to add PATCH and DELETE support to API docs.

Change-Id: I6a89a15012ba044f094d9043b32657c36ca01e20
Closes-bug: #1261917
Removed unused exceptions

There's a bunch of exceptions that were copied over from nova-baremetal
into ironic that are currently unused and don't have any immediate
applicability.

Change-Id: Ia5a3c25ca809edcfeaefd423609b43f2658f1870
Closes-Bug: 1271283
Minor documentation update

* Update the index page's description.
* Add a section about the hash ring to architecture.
* Add some new modules to, and remove some old modules from,
  the developer doc quick links, to make the list of quicklinks
  shorter and more useful.
* Correct a few broken links in the developer docs.

Change-Id: Ifac1dc355631a2d77b7ccdea362fb83ffbe6a4db
Update method doc strings in pxe.py

Change-Id: Ib9de6636cf900a02b8f22c0403b0edd3604b1cad
API: Add sample() method on Node

Defines a sample() method on Node API objects in order to provide
sample data used in the auto-generated documentation.

Change-Id: I660361ea3416ed7143b71cc9da5d40f2185a51c3
Partial-Bug: #1260337
mock's return value for processutils.ssh_execute

In tests/drivers/test_ssh.py, SSHPrivateMethodsTestCase tests are mocking
processutils.ssh_execute() and sets its return value to a list. However,
processutils.ssh_execute() doesn't return a list, it returns a tuple: (stdout, stderr).

This fixes the tests, by changing the return values to (stdout, stderr) tuples.

Change-Id: If146d80ad9acd33bd5c676e6b2ba2142c9b07a84
Closes-Bug: #1273452
SSHPower driver raises IronicExceptions

Modified the methods of SSHPower driver to only raise IronicExceptions
(instead of non-IronicExceptions). Specifically, an SSHCommandFailed
exception is raised instead of an exception raised by
processutils.ssh_execute().

Also modified one unit test, to check for an InvalidParameterValue
exception instead of the more general IronicException.

Change-Id: I9bde8efa614f76b3ba950393cb49c5c619407aa8
Partial-Bug: #1267693
Update docstrings in ssh.py

Added and updated method docstrings in ssh.py.

Change-Id: Ie1cfa1cae074cc3f519fad09b16c6347a59bfe00
Merge "Docstrings for ipmitool"
Merge "API: Add sample() method on Node"
Remove deploy kernel and ramdisk global config

This options are not very useful since ironic can deploy to
multiple archs and any config change will require a service restart.

Change-Id: I7282d86d0919d5057baff92010e4c1715126709e
Closes-Bug: #1272741
Remove net_config_template options

This is no longer used, and the template is no longer
available in the code.

Change-Id: I12157f9e420d401215ca23f95773238d7c8151df
Add lockfile>=0.8 to requirements.txt

The new oslo version of the oslo db.sqlalchemy module depends on the
lockfile package. This patch will be used by a following patch which
will sync the new db.sqlalchemy module from oslo to Ironic.

Change-Id: I2540c324b4863405681cb8aac90a4b139e931318
Related-Bug: #1272500
Sync db.sqlalchemy code from Oslo

Patch contains common code from Oslo, we need to sync this modules to fix
a problem with a newer version of sqlite and the db.sqlachemy module that
is causing some of tests to fail if the version of the sqlite is >=3.7.16.

The patch also includes the code needed with the transition from migrate
tool to alembic, these base migration classes depends on the py3kcompat
and test modules which were also added to the project.

Closes-Bug: #1272500
Change-Id: Ifcd1254f16506a4247523056d6ad4ad8d7aefdac
Merge "Remove deploy kernel and ramdisk global config"
Merge "Bump version of sphinxcontrib-pecanwsme"