Splitting out volume drivers in driver.py

Moved RBDDriver, SheepdogDriver into their own respective driver
files under cinder/volume/drivers/*. Moved FakeISCSIDriver and
LoggingVolumeDriver into a fake driver file under the tests,
since that's the only place where those are used.

Implements bp driver-cleanup

Change-Id: I39d91ac8e498a9e42c5443db16706203b988444b
Port openstack-common/uuidutils to Cinder

openstack-common has a new uuidutils to handle is_uuid_like(),
port it to Cinder.

Change-Id: I0ccc6166854193137af6a3210d3c465dd38fd955
Changes bit mode of zadara.py to 644

Change-Id: I0b4693d7da4ecfe5242dc302630c40ed2b8268ef
Merge "Port openstack-common/uuidutils to Cinder"
Merge "Splitting out volume drivers in driver.py"
Add admin only action for force detach

This action calls the same methods nova would after it successfully
detaches a volume.  By exposing it to the administrator it makes it's
easier to repair un-syncronized state between services.  Generally when
the host is no longer attached, but the volume state is wrong.

Future work: The Iscsi based drivers don't seem to use
initialize_connection and terminate_connection to create the export for
the volume.  This would be more useful with drivers that do that.

I added the force parameter to terminate_connection for drivers that may
want to differintiate between a normal terminate and the force detach.

Future Nova work:  Nova will want an admin action to update the bdm
tables - today it's a bit of nova-manage shell work.

Change-Id: Icc1cff0f50a5ace9ebdae62c85524ee8d6ec23e0
Fix run_tests.sh ambiguous usage msg and behaviour for -x option

In commit
https://github.com/openstack/cinder/commit/
50792c2ff41fdc7e73b3e3c51f4510366debfd14,
the committer wanted to add an option in run_tests.sh for generating XML
coverage report, but ended up accidentally overriding the default nose
option -x. But, the usage message still showed that using option -x will
'Stop running tests after the first error or failure'. So, I changed the
option to generate XML report to  -X (capitalized 'x'). So now both -x and
-X options are available, with different purposes.

Fixes bug 1070047

Change-Id: Ie8c30c14629d4811d6db74f3eea9cdecb1d27c8a
Scheduler API clean up and refactor

Unlike Nova scheduler, which has to consider serving compute and volume
scheduling, Cinder scheduler only serves volume scheduling, so there's no
need to keep generic interface 'schedule'. Instead, 'schedule_create_volume'
is added (if missing) to manager/driver class and chance/simple scheduler
driver implementation.

Also this patch changes the interface between API service and scheduler to
allow more information about volume is passed to scheduler for advanced
scheduling while maintained backward compatibility. And this change bumps
scheduler RPC API to version 1.2.

Change-Id: I42be05675cd73f89a03c84105ec512d7ee4f3c3a
Merge "Scheduler API clean up and refactor"
Remove unused volume API method - remove_from_compute()

remove_from_compute() method in cinder.volume.api is never used
by others and it is also broken since the interface in Nova has
been changed to remove_volume_connection(), thus it should be
removed from Cinder.

Change-Id: Ibcb2cf7f88606d9a540cc9a03b5c95990fca8c3e
Import order cleanup per HACKING

Change-Id: I5540a5d24f45aa51e0ef58b43427fbaf7726da89
Remove obsolete use_local_volumes

Reading documentation, I felt on that option, but grepping the source
everywhere saw no use at all, and removing seems to be safe.

Change-Id: I0ec22bcc406402420bc06fd28c352b84a4e21b69
Signed-off-by: Julien Danjou <julien@danjou.info>
Merge "Remove unused volume API method - remove_from_compute()"
Merge "Remove obsolete use_local_volumes"
Remove gen_uuid()

Removed gen_uuid and uuid related unittests
Replaced utils.gen_uuid() with uuid.uuid4()

Change-Id: If34096f47fdea719e2dc180b448654519ede9bc9
Volume RPC API Versioning

Add versioning to Volume Rpc API version.  This is initial version
1.0, which is compatible with previous non-versioned RPC API.

Note: this patch slightly change the db.volume_update() behavior,
which now returns updated volume info.

Change-Id: I78036b6ed97c5bc369d8c85307ecaaad8e31ff90
Merge "Remove gen_uuid()"
Various pep8/HACKING fixes for Cinder.

Fix some ordering/pep8/hacking issues in preperation for re-enabling
full pep8/HACKING checks in tox.

Change-Id: I7151ac73d1ace5d98046580e6d1c6a1dcc6c4cef
Make tox.ini run pep8/hacking checks on bin.

This updates the pep8 checks in our tox.ini file so that
we are also scanning the bin directory.

Additionally, it updates the main pep8 check so that it scans
cinder properly as well. Previously there were a bunch of files
getting skipped due to some of the pep8 pattern matching.

Change-Id: Ib47a590303409e62546a75625ee356c9fa7af6ad
Remove unused python-daemon dependency

python-daemon is listed as a dependency, but it is not needed.

Change-Id: I4d6eadfef5d60cd277ff7395a12f5ad255db7155