Unmount the NFS and GlusterFS shares on detach

When attaching an NFS or GlusterFS volume, nova mounts the share so it
can be reused by other instances but it is not unmounted when detaching.

This patch adds the disconnect_volume method to both drivers, which will
try to unmount the share. If a volume in that share is still being used
by another instance, the umount command will fail with the error 'target
is busy' and we will ignore it. Any other error while unmounting will be
properly logged. In any case the detach will fail because nova hasn't
been able to unmount the share.

Closes-Bug: #1285209
Change-Id: I79289524541a88ad359b3465719055cd402b4e3d
Task cleanup_running_deleted_instances can now use slave

Deployments that have a slave_connection configured can offload
read queries generated by this periodic task there. For
deployments with no slave, behavior remains the same.

Partially-implements: blueprint periodic-tasks-to-db-slave
Change-Id: Ie1e6cdfbefab096a2af62ef636786a5c8f659b13
Fix get_download_hander() typo

Clearly, this was meant to be get_download_handler().

Refactor loading modules in GlanceImageService a little to avoid the
get_download_handler() going over the length-of-line limit.

Change-Id: If871413cbb86cd800be8517bb37932df890bf53d
Add py27local tox target

This adds a new tox target that uses sitepackages=False. This is
handy for people running unit tests on a devstack box, where the
site-packages oslo.config interferes.

Change-Id: I1101730f18550de0b391d12bcc5841cb671434a2
VMware: image cache aging

The current patch set deletes cached images that are no longer used.
Images that are unused will be marked for aging. These images
will be deleted after they have not been used for
'remove_unused_original_minimum_age_seconds'.

The third and final phase of blueprint vmware-image-cache-management.

NOTE: in order to ensure that there will not be race conditions with
multiple compute nodes, each compute node will have its own datastore
cache directory. This will be a combination of the configuration
variables my_ip and image_cache_subdirectory_name. If the aging is
disabled then the original base is used (ensures backwards
compatibility).

Locking is done when accessing timestamps to detect if an image has aged
in the cache.

Change-Id: Iec47c28a38761c187226c5eff3ab69da503437f6
Updated from global requirements

Change-Id: I0b91fc1bb5e059cd5d56c3cc3557ee2986d811e4
Remove the docker driver

The docker compute driver does not currently have CI running against
it.  In accordance with our plan to require this for all drivers, we
are now removing the driver from nova.

https://wiki.openstack.org/wiki/HypervisorSupportMatrix/DeprecationPlan

At this point, the driver should be set up in a stackforge repository
and have CI staged from there to prove its reliability before we could
consider bringing it back into Nova.

DocImpact
UpgradeImpact

Change-Id: I1c9bea2fdeebc4199c4f7d8fca4580a6fb7fed5b
Merge "Unmount the NFS and GlusterFS shares on detach"
libvirt: fix blockinfo get_device_name helper

Currently all the methods in libvirt's blockinfo module will either
be called with block device objects (when attempting to default device
names)  or with a DriverBlockDevice subclass (all other operations in
the virt driver that expect such format to be passed).

This patch updates the get_device_name method to honor the above
situation introduced by I055651b5fd415092787d9487a69467a9bbcf073e.

Closes-bug: #1290302
Change-Id: I7099ea4502da2108c4bcba530a8ace173d2dafc9
Merge "Task cleanup_running_deleted_instances can now use slave"
Merge "VMware: image cache aging"
Merge "Add py27local tox target"
Merge "Remove the docker driver"
Merge "libvirt: fix blockinfo get_device_name helper"
Merge "Fix get_download_hander() typo"
Merge "Updated from global requirements"