Use oslo.db library

oslo.db library has been graduated from oslo-incubator,
so now we can use it instead of ironic.openstack.common.db.* code.

Co-Authored-By: Ghe Rivero <ghe.rivero@hp.com>

Implements: blueprint oslo.db

Change-Id: I250050a7dbd8735ba3af954223b54eabae793f59
Use opportunistic approach for migration testing

Refactored migration tests due to use OpportunisticTestCase, removed
unused code and ``test_migrations.conf`` file.

This change allows tests use database ``openstack_citest`` only
for connection to the database backend. The main feature of this
approach is - for each migration test will be created new database
with random name. This will avoid migration tests of race conditions
and reduce tests intersection.

``test_migrations.conf`` file was removed, because we create test
database for migration test, so we no longer need test database credentials.

Closes-Bug: #1327397
Closes-Bug: #1328997

Change-Id: I95ad140ba5f483cd3dc36e2b78f140826d57624f
Add methods to ipmitool driver

This commit adds two methods to the vendor interface for the
ipmitool driver:

* send_raw: this is used to send arbitrary bytes to a BMC. One
  example of a use case for this is: many BMCs fail in strange ways
  when 'chassis bootdev disk' is sent without first sending a
  certain sequence of bytes. This is common enough that pyghmi
  even does this by default. Takes one parameter, 'raw_bytes',
  which is the string representation of which bytes should be
  sent. For example: '0x00 0x01'.

* bmc_reset: used to reset a BMC. A cold or warm reset can be
  selected by setting the warm parameter to False (cold) or True
  (warm). Defaults to warm.

Closes-Bug: 1340199
Change-Id: I508eabae7428daea29d749bb2aa9fc9c5a357e8c
Add IloDriver and its IloPower module

Add a new ironic driver for managing HP Proliant Gen8 servers
using iLO4. This commit introduces the power module for
IloDriver.

Implements: blueprint ironic-ilo-power-driver
Change-Id: I8d521f67fb14a6132626782b05cd490cd42ba476
Co-Authors: Anusha Ramineni<anusha.iiitm@gmail.com>
Raise appropriate errors on duplicate Node, Port and Chassis creation

This patch introduces NodeAlreadyExists, ChassisAlreadyExists,
PortAlreadyExists and InstanceAssociated exceptions for
appropriate cases.

Partial-Bug: #1277555

Change-Id: Iec2a7cd09022b6a12afacec9b9b51f8197817ded
Merge "Add methods to ipmitool driver"
Merge "Add IloDriver and its IloPower module"
Add missing docstrings

The ipmitool.VendorPassthru class was missing docstrings for
the methods validate and vendor_passthru. This adds them.

Change-Id: I06d6f32a156da625ec5c47a39f2506d129e1a7b1
Merge "Raise appropriate errors on duplicate Node, Port and Chassis creation"
Merge "Add missing docstrings"
Use mock.assert_called_once_with()

One of the ilo unit tests makes a call to Mock.assert_once_called_with().
That doesn't exist. It should be Mock.assert_called_once_with().

Change-Id: I7b57483479ddcd5ae00122064f8d4a133e922ae7
IPMITool to use the new ManagementInterface

Add the new ManagementInterface to the IPMITool driver. The method
set_boot_device was removed from the VendorPassthru interface because
this method was promoved to the ManagementInterface.

Implements: blueprint new-management-interface
Change-Id: I7bd9cb0a5d38f1044ae3e74dd08564e20828933b
Factor out deploy info from PXE driver

This factors the code to get the deploy kernel and ramdisk info out
of the PXE driver, as this can be shared between the PXE and agent
drivers.

Change-Id: I2c3722d091f02259aa9e6cabebaabf25eead8bc2
(cherry picked from commit 8368bf9c66eea3a5f4706c867e266e00a5886213)
Merge "Factor out deploy info from PXE driver"
Merge "Use oslo.db library"
Merge "Use opportunistic approach for migration testing"
Merge "IPMITool to use the new ManagementInterface"