Use my_ip for neutron URL

Currently, neutron URL is set 127.0.0.1 in ironic.conf.
This patch fix this using $my_ip same as other component's URL
(for example glance).

Change-Id: I558fccc74058fcc493cbf52799fe021b12518253
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
Expose {set,get}_boot_device in the API

A new /nodes/<uuid>/management/boot_device subresource added exposing
ways to the client to {set,get} the boot device for a node.

* To set a boot device:

 PUT {'boot_device': 'pxe' } /nodes/<uuid>/management/boot_device[?persistent=<bool>]

* To get the current boot device:

 GET /nodes/<uuid>/management/boot_device[/supported]

 The /supported flag is used to list all the boot devices that is
 supported for that node.

Implements: blueprint new-management-interface
Change-Id: I7ab93b95112efb69cf7b2daab6bbd925cb2d1e02
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"
Merge "Use my_ip for neutron URL"
Merge "Expose {set,get}_boot_device in the API"