Use valid exception in start_shellinabox_console

Replace non-existing exception exception.ProcessExecutionError
with the correct exception from processutils.

Remove non-existing exception exception.UnknownArgumentError
because it was meant to be processutils.UnknownArgumentError
which isn't needed since it is only raised if there are
unknown arguments in kwargs, which there aren't in this case
(only 'check_exit_code' is there.)

Adds a unit test that checks for the ProcessExecutionError
exception.

Change-Id: I756f78bd8d8976a638169ee9db712a95dc664b58
Closes-Bug: #1356408
Merge "Use valid exception in start_shellinabox_console"
Improve exception handling in console code

Drivers should only be raising IronicExceptions, but ipmitool, via
the console-related code, was raising non-IronicExceptions. This adds a
'ConsoleError' exception, changes the other console-specific exceptions
to inherit from ConsoleError, and refactors the code a bit to only raise
IronicExceptions.

More unit tests were added.

Change-Id: I1660525646a4ce39f1fbc690a61e63e6f1b368b9
Partial-Bug: #1267693
Remove objectify decorator from dbapi's {get, register}_conductor()

This patch removes the objectify decorator from the get_conductor and
register_conductor dbapi's methods.

For get_condutor() method there's an objects interface to it so this patch
make the code/tests use the object interface vs direct calls to dbapi.

The problem with the objectify decorator is that dbapi methods
doesn't get the context, so when forming the RPC object using the
decorator we can't store the context within the object (which is what
we want to do to have consistent object interfaces).

Partial-Bug: 1314732
Change-Id: I1a955a59435b35277f3bbff2c02c07dd1a4c1d66
Handle all exceptions from _exec_ipmitool

_exec_ipmitool() could raise a non-IronicException because
_make_password_file() was raising any Exception. This changes
_make_password_file() to raise exception.PasswordFileFailedToCreate
and changes the rest of the code that calls _exec_ipmitool() to
handle the specific IronicExceptions instead of any Exception.

Partial-Bug: #1267693
Change-Id: I1668dcdd5a5a369df4dbc86a39ae66615039acdd
Replace incomplete "ilo" driver with pxe_ilo and fake_ilo

The "ilo" driver is not complete -- it only has a PowerInterface today.

This patch removes it from setup.cfg, deletes the drivers/ilo.py module,
and adds both PXEAndIloDriver and FakeIloDriver instead.

Change-Id: I431fd5155d0696a0a48ad8decf9f5317c5fcd7a2
Removes get_port_by_vif

VIF is not indexed by the databse, it lives inside the extra attribute
which is a data blob, so the method is not used.

Change-Id: I11ce35bae1aa81c38c8ebc87251148ae65f3a30e
Partial-bug: 1314732
Add docs for agent driver with devstack

This allows users to run Ironic with the agent driver in devstack.

Change-Id: I9703041bde6bd1c5f19b1c732cda7e7b025aa8c1
Merge "Replace incomplete "ilo" driver with pxe_ilo and fake_ilo"
Merge "Removes get_port_by_vif"
Remove d_info param from _destroy_images

A d_info dict was being passed to _destroy_images but wasn't used. Remove it and update calls to it. 

Change-Id: I6e50e58237d1b29b5234730099344ac432671b09
Merge "Remove d_info param from _destroy_images"
Fix tear_down a node with missing info

When tearing down a node, there could be some situations where the
instance info is missing some properties (image source deleted before
tearing down the node), so skipping node info validation. Instead,
perform a power validation to assure that the node can be power
managed.

Closes-Bug: #1335909
Closes-Bug: #1345334
Change-Id: Idb1ca720bbd19de1fccfe049e592136dbca2aacf
Merge "Remove objectify decorator from dbapi's {get, register}_conductor()"
Merge "Add docs for agent driver with devstack"
Merge "Fix tear_down a node with missing info"
Take iSCSI deploy out of pxe driver

This commit aims at separating the iSCSI deploy portions
from pxe driver so that it can reused in the newly proposed
iLO virtualmedia driver.

Implements: blueprint ironic-ilo-virtualmedia-driver
Change-Id: Id0a4b0fab797c884448a27b1cd5e3a1da05786a7
Add support for creating vfat disk images

This commit introduces support for creating temporary
small vfat images in ironic which will be used for
passing information to baremetal node using virtual
media through OOB channel.

Change-Id: I42b88da02090aec310f567642d3174d0f482b585
Implements: blueprint ironic-ilo-virtualmedia-driver
Add support for interacting with swift

This commit introduces support for interacting with
swift for creating and deleting swift objects. This
will be initially used by ilo driver for hosting
temporary floppy images.

Change-Id: I9a3962820b7e18fb1014be1e43cb107facfede9f
Implements: blueprint ironic-ilo-virtualmedia-driver
IloVirtualMediaIscsi deploy driver

This commit introduces a new deploy driver which uses iLO virtual
media to boot up proliant baremetal nodes, and uses iSCSI to deploy
the baremetal nodes.

Change-Id: I98f47ed6082a3a28fce3148f6d5177cdb5c61881
Implements: blueprint ironic-ilo-virtualmedia-driver