Cleanup reboot_instance tests

Convert the reboot_instance compute manager tests into true unit tests.

Change-Id: Ife10bda2726a8f84a0a81df3268894bf3e8a0a12
Clean up compute API image_create

The _image_create() code in compute manager is the only place where
db.instance_test_and_set is used.. which was added before
'expected_task_state' support was added to instance_update.  By
switching to use self.update(), we can also take advantage of it doing
the state change notification for us.

The instance update and the compute RPC call have been moved out of
_create_image() and into snapshot() and backup() to support a future
cells patch.

Change-Id: Ib6603f732d28e49cb6f351447da5f6e41615dea5
Cells: Reduce the create_image call depth for cells

This patch reduces the create image call depth (for snapshot/backup) by
returning the basic image details to the user before we call down to
the child cell.  The image entry is created in glance immediately, and
the child cell will finish up the rest.

Implements blueprint nova-compute-cells

Change-Id: I048cc532614c602f3aa6b539fb51e951174e4598
Fix typos in docstring

* code in bin/

* code in nova/api/

Change-Id: Ic643d640b66785d4bb54defcddc3d2312292bfdf
Revert "Use testr setuptools commands."

This reverts commit c945b71929d7dc872ea27103ca8b6ec3d5cc7cd5
which caused the unit test command to always exit sucessfully.

Change-Id: I410cbc878675503f0ce6e50bddc4fd0552370c46
Define a hypervisor driver method for getting MAC addresses.

This lets hypervisors export the MAC addresses an instance needs to have (or
return the default of None if the hypervisor is not constrained by MAC
addresses).  being provisioned.

Change-Id: I319a8deb2d09fbf8cecb7071256cf931924ef0e9
Merge "Revert "Use testr setuptools commands.""
Merge "Fix typos in docstring"
Break out a helper function for working with bare metal nodes.

This makes it easier to get a bare metal internal node id when called
from the manager.

Change-Id: I1b39a7be5bd21d5b3060f11a74b9eaf79b107210
Export the MAC addresses of nodes for bare-metal.

The bare-metal hypervisor needs to let the network layer know the MAC
address of each node it has, or TFTP boot will fail, as the MAC
addresses quantum / nova dynamically allocate will not match the
actual MAC of the node as it boots. This change exports the MAC
addresses to the manager, which passes them onto the network driver in
use.

With this change administrators should register all the MAC addresses
of a given node with Nova bare-metal as interfaces, even though that
may duplicate the MAC for PXE boot provisioning. Long term the
dedicated provisioning MAC address will be removed.

Change-Id: I55f6031294a2c5d31975462f868aa27441e11ad2
Merge "Clean up compute API image_create"
Merge "Cells: Reduce the create_image call depth for cells"
Merge "Cleanup reboot_instance tests"
Merge "Define a hypervisor driver method for getting MAC addresses."
Merge "Break out a helper function for working with bare metal nodes."
Merge "Export the MAC addresses of nodes for bare-metal."