Clean up calls to get_chassis()

The same work have already been done by Nodes (see 2192f2848e), so right
now the dbapi's are inconsistent across different objects. This patch
fixes it for Chassis.

This patch removes all direct calls to dbapi's get_chassis(). They
are replaced either by Chassis.get(), Chassis.get_by_id(), or
Chassis.get_by_uuid() calls.

Additional detail about the changes:

1) Break DBAPI get_chassis() into get_chassis_by_id() and get_chassis_by_uuid().
Let's be explicit about which type we're passing. This allows
Chassis.get_by_uuid() to work exactly how its named. Also, do not
return an object from the DB API calls. The Chassis object itself will
do the conversion.

2) Adds Chassis.get_by_id() to compliment the current
Chassis.get_by_uuid() for places you are querying by the ID.

3) Adds Chassis.get() so that you can still have a single method to use
to pass either and ID or a UUID.

4) Make all of the Chassis.get* calls set the 'context' so that you
can later just chassis.save() without passing it. Doc strings have been
updated to clarify what 'context' is for.

Co-Authored-By: Chris Behrens <cbehrens@codestud.com>
Related-Bug: #1314732
Change-Id: I5162c2843e15e538c1dc50dd5ac775298f8f0f9d
Clean up calls to get_port()

The same work have already been done by Nodes (see 2192f2848e), so right
now the dbapi's are inconsistent across different objects. This patch
fixes it for Port.

This patch removes all direct calls to dbapi's get_port(). They are
replaced either by Port.get(), Port.get_by_id(), Port.get_by_uuid()
or Port.get_by_address() calls.

Additional detail about the changes:

1) Break DBAPI get_port() into get_port_by_id(), get_port_by_uuid(),
and get_port_by_address(). Let's be explicit about which type we're
passing. This allows Port.get_by_uuid() to work exactly how its
named. Also, do not return an object from the DB API calls. The Chassis
object itself will do the conversion.

2) Adds Port.get_by_id() and Port.get_by_address to compliment the
current Port.get_by_uuid() for places you are querying by the ID.

3) Adds Port.get() so that you can still have a single method to use to
pass either and ID, UUID or MAC address.

4) Make all of the Port.get* calls set the 'context' so that you can
later just port.save() without passing it. Doc strings have been updated
to clarify what 'context' is for.

Co-Authored-By: Chris Behrens <cbehrens@codestud.com>
Related-Bug: #1314732
Change-Id: I39d9a7acc12f0f3b7e06abd038537cd2759fb088
Add ironic-python-agent deploy driver

This commit adds a deploy driver for the ironic-python-agent
project. Caveats:

* Only basic functionality (deploy and tear_down) is implemented.
* Only whole disk images are supported.

Implements: blueprint agent-driver

Change-Id: Iebf8d8f756770549d6fcd1bb2fe94d2585d576b1
Log exception with translation

The agent driver had one LOG.exception call that was missing
translation. This commit fixes that.

Change-Id: Iadd2d0284464853b561d557ce3f572a75265c607
Merge "Clean up calls to get_chassis()"
Merge "Add ironic-python-agent deploy driver"
Merge "Log exception with translation"
Merge "Clean up calls to get_port()"