Fix py3k-unsafe code in test_get_properties()

This changes the unit test test_get_properties() so that it is
py3k-safe.

This is a follow-up to a comment in review 107092:
https://review.openstack.org/#/c/107092/8/ironic/tests/drivers/test_ipmitool.py

Change-Id: I3fc1c9962d02516aa09b8c22f5c1f940a2173703
Updated from global requirements

Change-Id: I71ce5c6e67e61a466f42343a15bcfb9f01d1873d
Update DevStack guide when querying the image UUID

The command to query the UUID of the default image to be deployed
was retuning more than one UUID because of a grep problem, that would
also cause the "nova boot" command to fail because it was passing more
arguments that expected.

This commit fix the regex to query the UUID of the image by ignoring
what comes after the name of the image.

Change-Id: I03ad610fdd3313977b61d0d82bd1b33811f7ece1
Update compute driver macs_for_instance per docs

Updates the docstring for the macs_for_instance method
to match the documented Nova driver.

Also updates the method to return values per the docs.

Change-Id: I87f36ab675f57137f46416fa810eda5662d92ee0
use MissingParameterValue exception in iboot

The iboot driver raises InvalidParameterValue exception in _parse_driver_info() when any required parameters are missing. It should be raising
MissingParameterValue instead.

Change-Id: I7e8955712c0ef0166a1b4daf1008579413fdfcb1
Closes-Bug: #1358758
Add DracDriver and its DracPower module

Implements: blueprint drac-power-driver
Change-Id: If93231c39ce901224f3a920f5342c44ba1b26851
IPMI double bridging functionality

Enables ipmitool bridging functionality in ironic

In ipmitool there are two different bridging argument specifications:
* single bridge (-t <target_address> [-b <target_channel>])
* double bridge (-T <transit_address> [-B <transit_channel>])
one can also specify the local IPMB address using -m <local_address>

When registering an baremetal node which requires bridging, the
appropriate parameters should be specified to ironic IPMI power
driver as follows:
-i ipmi_bridging=<single/dual/no>
-i ipmi_local_address=<value>
-i ipmi_transit_channel=<value>
-i ipmi_transit_address=<value>
-i ipmi_target_channel=<value>
-i ipmi_target_address=<value>

The parameter 'ipmi_bridging' should specify the type of bridging
required(single/dual) to access the baremetal node.
If the parameter is not specified, the default value will be set
to "no"

  Single Bridging:
    ironic node-create -d pxe_ipmitool [-i ipmi_local_address=VALUE]
    <-i ipmi_bridging=single> <-i ipmi_target_channel=VALUE>
    <-i ipmi_target_address=VALUE> ...

  Double Bridging:
    ironic node-create -d pxe_ipmitool [-i ipmi_local_address=VALUE]
    <-i ipmi_bridging=dual>  <-i ipmi_transit_channel=VALUE>
    <-i ipmi_transit_address=VALUE>  <-i ipmi_target_channel=VALUE>
    <-i ipmi_target_address=VALUE>  ...

The parameter 'ipmi_local_address' is optional. If the
parameter is not specified, it is auto discovered by ipmitool

Implements blueprint enabling-ipmi-double-bridge-support

Change-Id: I78e024a6205b0a87e50fbf0d93e69ef415be0934
Add Parallels virtualisation type

This change adds Parallels support to Ironic ssh driver

Change-Id: I5b8ee34f63fd00f9874ce0fe11219224c785c42f
Closes-Bug: #1358401
Merge "Fix py3k-unsafe code in test_get_properties()"
Merge "Updated from global requirements"
Merge "Update compute driver macs_for_instance per docs"
Merge "IPMI double bridging functionality"
Add in text for text mode on trusty

This should be fine for other distros and Ubuntu versions since
the kernel command line is a well known loosely-coupled interface.

Trusty changed the way to get text mode consoles (again) and since
we're deploying servers, where graphics is an anti-feature, lets
work around it by default, again.

Also update test_pxe.test__build_pxe_config to work with the new
kernel option.

updates Ipxe and IPA deploy templates too.

Change-Id: Id42bd362477b1e8dbbd5f2a6188cebacc8a0323a
Merge "use MissingParameterValue exception in iboot"
Merge "Update DevStack guide when querying the image UUID"
Query full node details and cache

Re-use this information to reduce a massive amount of queries to ironic
api to get info about individual nodes on the periodic task that syncs
resource usage.

Partial-Bug: 1357027

Change-Id: Ie6b6898297a6f2346745c04a37d34dbb647ff6e7
Use cache in node_is_available()

This should make start-up times much better.

Closes-Bug: 1357027

Change-Id: I98ce118667dd9b8bf93ad781bfa8dc5077f34b45
Allow rebuild of node in ERROR and DEPLOYFAIL state

This patch allows nodes in ERROR or DEPLOYFAIL state to be rebuilt. This
allows operators have a chance of recovering a node should it go into
an error state while deploying or rebuilding.

Change-Id: Ia7d6b3b796357da83fdb4d40f92f18a502956aa2
Closes-Bug: #1354437
Merge "Allow rebuild of node in ERROR and DEPLOYFAIL state"
Merge "Add Parallels virtualisation type"