Updated from global requirements

Change-Id: I7e31ef44cd7ba4dd4e68ed598c45bf8ae5076264
Port iBoot PDU driver from Nova

Ports a custom power driver from Nova to Ironic so that iBoot capable
devices can be used.

Co-Authored-By: Dan Prince <dprince@redhat.com>
Closes-Bug: #1226042
Change-Id: Ibec34a7e0a69bb26d3e2a21b1f2d1a7ce3514347
Implements send-data-to-ceilometer

This patch will define the sensor data collection interface and implement
a driver based on IPMI to collect sensor data and send them to Ceilometer.

The change covered by this patch:

1. Creates a new ironic.driver.base.ManagementInterface common method
*get_sensors_data* for gathering hardware sensor data.

2. Implements the interface into 'ipmitool' driver to gather data via IPMI
command call.

3. Adds periodic task to conductor which emits notification to Ceilometer by
an interval.

Spec: https://review.openstack.org/102435

Change-Id: I2c072321a662db0162c938b7d4f3b59ba07d4e08
Implements: blueprint send-data-to-ceilometer
Merge "Updated from global requirements"
Fix not attribute '_periodic_last_run'

The ConductorManager class wasn't calling __init__ from
its parent object, causing an AttributeError exception
to be raised when accessing the attribute _periodic_last_run.
This attribute was initialized in the PeriodicTasks class.

Change-Id: Ieb850bf448f4b04be33c2cfecbac2de5925d6fda
Closes-Bug: #1351114
Merge "Implements send-data-to-ceilometer"
Merge "Fix not attribute '_periodic_last_run'"
Remove dbapi calls from agent driver

This commit removes dbapi calls from the agent driver in favor
of using objects. It also cleans up the object code a bit, and
adds some test objects to ironic.tests.objects.utils.

Closes-Bug: 1351329
Change-Id: I0b29654d0010386a4a08279cd0228090f2f02a45
Merge "Remove dbapi calls from agent driver"
Imported Translations from Transifex

Change-Id: Ib577220a1f86dbf1ac5ef510794b456d1e96f796
Add charset and engine settings to every table

Each MySQL table requires setting a default charset and engine,
otherwise default values are used. It all worked previously because
migration scripts enforce those values to the correct ones. Since
we want to be able to generate the schema from models, those MySQL
specific parameters must be set.

This patch reuses a table_args() function that is already defined.

Closes-bug: #1351431
Change-Id: I3dafed9dfe5042fab1cff2ea029ea62c5e5cbea3
Sync oslo imageutils, strutils to Ironic

Changes in imageutils:
===============================
9e88af1 fixed typos found by RETF rules
b455fac Enable decimal value input in imageutils.QemuImgInfo
bec3a5e Implements SI/IEC unit system conversion to bytes
8b2b0b7 Use hacking import_exceptions for gettextutils._
aad179d Fixing misspelled encryption key in QemuImgInfo
12bcdb7 Remove vim header
2bd46eb Refactors byte size extraction logic
0356685 Adds common image utils

Changes in strutils:
====================
cb5a804 Move `mask_password` to strutils
8a0f567 Remove str() from LOG.* and exceptions
fd18c28 Fix safe_encode(): return bytes on Python 3
302c7c8 strutils: Allow safe_{encode,decode} to take bytes as input
bec3a5e Implements SI/IEC unit system conversion to bytes
e53fe85 strutils bool_from_string, allow specified default
8b2b0b7 Use hacking import_exceptions for gettextutils._
84d461e Fix a bug in safe_encode where it returns a bytes object in py3
12bcdb7 Remove vim header

Change-Id: If0d16d70c004344511b9851c8a533759f0d2bb52
Check if boot device is persistent on ipminative

The commit 94433a2ab522d8b6ae2e2cf24de0ff723e491c45 to pyghmi added
'persistent' to the return dict of get_bootdev(). This commit is just
making use of it.

Change-Id: I724246de951c1ac94a001ebd8c83f8ef4ffa7e66
Updated from global requirements

Change-Id: I5ea2366cb7757164db8b1c8b65c8fa92cc05dc21
Merge "Check if boot device is persistent on ipminative"
Merge "Add charset and engine settings to every table"
Move code to cleanup ImageCache to a common place

This commit moves the cleanup code of ImageCache to a
common place in image_cache.py so that it can be accessed
from anywhere in the ironic source tree outside pxe driver.

It also introduces a new decorator @image_cache.cleanup()
for subclasses of ImageCache which wishes to be cleaned up.
This also has provision for providing a priority for the order
of cleanup.

Implements: blueprint cleanup-all-imagecaches
Change-Id: Idb54cee6cc1eee4f52ff07f8ca6e1f83378b2296