Skip migrations test_walk_versions instead of pass

When there is no db engine configured for the migration tests,
the test_walk_versions test was passing, rather than skipping,
because it contained a for-loop and no check for the length of the
sequence being iterated over.

This patch checks the length of the configured engines and
properly skips the test when there are no engines.

Change-Id: I8a5c0a66f65a99c5169b251be02a8fbe6c727641
Closes-bug: #1327397
Mock seamicroclient lib in unit tests if not present

Mock the python-seamicroclient library from within ironic/tests/drivers
so that test_seamicro.py can import ironic/drivers/modules/seamicro.py
and run the unit tests on it, even when the external library is not
present.

Change-Id: I4f2cd75b2c64a5a280a5d45d5cea058fd432815b
Closes-bug: #1312321
Add retry logic to iscsiadm commands

In order to avoid random iscsiadm errors this patch adds retry logic
to the iscsiadm commands. All iscsiadm commands will be attempted
5 times before failing.

Closes-Bug: #1327392

Change-Id: I971db541efbaaaf76bb6266570d7606d5b8285e7
TaskManager: Only support single node locking

The multi-node locking is not used and there's no plan to use it.
Removing it allows us to clean up a lot of code.

The TaskManager tests are refactored to not use the DB.

Removed 'node' from get_node_mac_addresses() in driver/utils as it's
no longer needed.

Partial-Bug: 1312632

Change-Id: Ie3577ba150df6c84fc34a4b08775e5011f8925cb
Remove 'node' parameter from the Console and Rescue interfaces

The node parameter is redundant since the node object is an attribute
of the task object.

Partial-Bug: #1312632
Change-Id: Ic7bf898b7d881e36188511d75837e450f29f066c
Merge "TaskManager: Only support single node locking"
Merge "Remove 'node' parameter from the Console and Rescue interfaces"
Merge "Mock seamicroclient lib in unit tests if not present"
Merge "Skip migrations test_walk_versions instead of pass"
Merge "Add retry logic to iscsiadm commands"