ipmitool driver raises DriverLoadError

When the 'ipmitool' utility is not present in the system path,
the IPMITool driver will now raise a DriverLoadError during
initialization.

Change-Id: Iba8c3ad7053c600487ce4eb829ef57c708d8f154
Eliminate races in Conductor _check_deploy_timeouts

Re-check filters after we grab a lock in case things changed.

Tests are also re-factored to not use the DB. Tests are added for all
of these missing test cases.

Also: 'maintenance' was dropped from the filters in this review:

I646540e334dec05682640c05cedb315e0ee355bc

I don't see any explanation of why it was removed in that patch.

It seems reasonable that someone could set maintenance on a node that
is stuck in DEPLOYWAIT. And we would not want to touch it while it is
in maintenance. So, this patch re-adds it to the filters and makes
sure to re-check it after having a lock.

Also: When this was being reviewed, it was caught that
NoFreeConductorWorker should actually just completely exit the periodic
task. That change is included here too while re-factoring this.

Closes-Bug: 1332860

Change-Id: I9e73ca4a1d90bd92bdf83821dae72a30f7b885a9
Add some real-world testing on DiskPartitioner

This patch adds some integration tests for DiskPartitioner by using
it on a temporary file. As a side effect, this patch adds
disk_partitioner.list_partitions() helper, which is used by the test,
but can by used for anything else later.

The new tests are currently skipped on gate-ironic-python26, as
there is no `parted` utility there.
Also these tests do not cover destroy_disk_metadata, as it can't
be executed on a file.

Change-Id: I53bf2d207b7d15a0673be6a6786c47500b9eb499
Closes-Bug: #1306153
Mock pyghmi lib in unit tests if not present

Mock the pyghmi library from within ironic/tests/drivers so that
test_ipminative.py can import ironic/drivers/ipminative and run the unit
tests on it, even when the external library is not present. Also
corrects pep8 issue in ipminative by grouping the imports.

Change-Id: I870724bf48346857b1170463fcc7d22c08aca3bd
Merge "ipmitool driver raises DriverLoadError"
Merge "Add some real-world testing on DiskPartitioner"
Merge "Eliminate races in Conductor _check_deploy_timeouts"
Merge "Mock pyghmi lib in unit tests if not present"