IPMI driver sets bootdev option persistently.

This patch changes baremetal ipmi driver's behavior with regards to
setting the chassis boot device.

Previous behavior: set bootdev = pxe for next boot only.
New behavior: set bootdev = pxe persistently.

Fixes bug 1178092

Change-Id: I735965422a950fbd249414b5eecd0a1b21dbabea
Enhance multipath parsing

The output of the multipath command is not always parseable from
the current implementation. This causes attach to fail.

Fixes Bug: #1184861

Change-Id: I1afa96a695b1008672226e7e76eb8e0feca52578
_s3_create handles image being deleted

Change so _s3_create handles the image it is creating
being deleted while it is creating it without logging a stacktrace
and instead just logging a simple message explaining what happened.

Fixes bug 1084703

Change-Id: I9d984dd1cf4f393010493cacd048d20ad5225db8
Fix bug where consoleauth depended on remote conductor service

Fixes bug 1186123

Conductor API was being imported directly so ignoring use_local FLAG

Change-Id: I055a5301d4c18d201d67f114047f503114751603
Launch_at and terminated_at on server(s) response

Implements bp usage-details-on-instance

Change-Id: I0a9101c43a51d597a1eaff9d5a5d08d602024e72
Remove unused launch_time from instance

'launch_time' is passed around as part of instance properties when an
instance is being built, however it is not a column in the DB nor is it
even used anywhere.

It was also unnecessarily copied around in various tests.

This patch removes all references to it.

Change-Id: I2300cd6b8539d15bbcd35ab4c00ab99d4be13eb5
Improve Python 3.x compatibility

Mechanical translation of the deprecated
except x,y: construct with except x as y:
The latter works with any Python >= 2.6.
Add Hacking check.

Change-Id: I845829d97d379c1cd9b3a77e7e5786586f263b64
Fix postgresql failures related to Data type

Postgresql is kind of sensitive about different kind of data in a query, so it
was failing in cases like lookin for an ip using a filter which wasn't a valid
ip or ids values greater than the id type on the table.

This patch fix this behavior to fixed ips and floating ips.

Fixes bug 1182754

Change-Id: I83d532c28c9aec690e8e1ffad8b58e71d619d728
Add fake_instance.py

There are lots of places in the tests where we create a piece of
an instance-like dict and return that from a stubbed database
function. This "works" right now, but won't in the future of stricter
objects. This adds a fake_instance.py (to mirror the other ones
already there) which builds an instance database primitive that
includes sane values for every field it should have. This will make
testing much easier going forward with instance objects.

Related to blueprint unified-object-model

Change-Id: I13d97cc101c1964aa91ce48093507bbc88803cbb
Make instance object tolerate isotime strings

Any time we get a db object over RPC, the datetime has been
serialized to an isotime string. We have other legacy code that
needs to tolerate this, and those hacks would need to be
replicated in the objects transition. Instead, make the instance
object type function tolerate isotime-formatted strings so that
we can more easily convert RPC-transited database objects
until we're fully converted, at which time we could remove the
tolerance. Luckily, the objects still end up with a datetime
internally, which means the rest of the code can stop needing to
handle strings and datetimes gracefully.

Related to blueprint unified-object-model

Change-Id: I132559d3541d19353de6acc36a2740185e564105
Don't log warn if v3 API is disabled.

This makes sense because the V3 API is disabled by default.

Fixes LP Bug #1187217.

Change-Id: I1f182fa480bfef19dbe6d4b575200100fe2ee515
Merge "Remove unused launch_time from instance"
Call scheduler for run_instance from conductor

This prepares for having the conductor query the scheduler for a list of
hosts to build an instance on.  In order to accomplish this the API
sends a build_instances message to conductor, or spawns a greenthread in
local mode, rather than sending a message to the scheduler.  This is
being done so that conductor can handle the orchestration of long
running tasks like spawning instances.  By making this move, the API is
free to return to the caller while conductor queries the scheduler for a
host to provision to.

In the case of cells the build_instances message first goes to the
cells scheduler in order to pick a cell to send it to, and then it is
sent to the conductor in that cell.

Part of bp query-scheduler
Change-Id: I4539888e78ebdbb8cef6647273b959a012280110
Merge "Fix postgresql failures related to Data type"
Merge "Call scheduler for run_instance from conductor"
Make object actions pass positional arguments

This changes the Object API to also pass positional arguments
to remotable methods. Previously, we required only keyword arguments
to these methods in order to mirror our current RPC behavior.
This is not really necessary and could be confusing.

Since there are no actual users of these APIs in the tree right
now, we can make this change without needing to bump any versions.

Related to blueprint unified-object-model

Change-Id: Ifb12843d16500d383d4e9c607121d5584400f247
Merge "IPMI driver sets bootdev option persistently."
Merge "Enhance multipath parsing"
Merge "Add fake_instance.py"
Merge "Make instance object tolerate isotime strings"