Support mount options for NFS/GlusterFS volumes

This patch adds support for mount options for NFS/GlusterFS volumes.

To set options, append them to the line for the volume in the
nfs_shares_config or glusterfs_shares_config file:
 192.168.175.166:/testvol -o backupvolfile-server=192.168.175.177
 host1:/testvol2 -o backupvolfile-server=host2,rw,other_option

These options are used when mounting from the cinder-volume
service and the nova-compute service.  (There is an associated
nova-compute patch to enable the same.)

This is a useful change for GlusterFS because the
backupvolfile-server option enables a mount to succeed even if
the first server specified is offline.

Change-Id: I13bb0a930d6a05e803ccb50e6dc5d4b2b412ac11
Imported Translations from Transifex

Change-Id: I85bdbb3aef9f4f16f28ab31753cd7935a471f3a7
Removes a broken link from the sidebar of Sphinx built pages.

Change-Id: I1c24f015bd8b67b1dc85eda67a0669ac79ca282b
Merge "Support mount options for NFS/GlusterFS volumes"
Raise VolumeNotFound with correct volume_id

Make sure VolumeNotFound is raised with the correct volume_id
in the SolidFire driver. Some exceptions were wrongfully referring
to an undefined variable named uuid.

Fixes: bug #1182966
Change-Id: Ied101fc9778f51dfb74b39f466c2c13d6e775a40
Added test for nonnumerical limit param

Change-Id: Ie9ef0b2ddcf9945f4065e76fddba763470ffdb81
Added a test for bad limit param

Change-Id: Ic9a93779d5623644ccf210de622d59f999571dd2
Update log.py and jsonutils.py from oslo-incubator

The update of log was mostly to get coloring to work again
in devstack, and jsonutils was picked up as well.

The update to jsonutils also requires the six dependency
which is added to pip-requires.

Change-Id: I95d23aafe19b12d4a427149aa5f7a66394d178c6
Merge "Added test for nonnumerical limit param"
Merge "Added a test for bad limit param"
Implement scheduler hints for API v2

We've done this implementation because we need to use scheduler hint in
cinder with some specific filters. So, most part of code have been
imported from nova.

bp scheduler-hints
docimpact

Change-Id: I4c8a78ade4ff668d79e7aa6d0d358029754e3d90
Add the service_state into test_schedule_happy_day.

Since the fake filter scheduler does not update the capabilities, the sevice
states remains empty. To avoid the None value for free_capacity_gb, we set the
host_manager to a fake host manager with a list of service states.

Fixed Bug 1171906.

Change-Id: I359ea6952392cc5e6b8eff513f3ca4d8161a30e3
Add common Oslo DB code to the source tree

Blueprint: db-session-cleanup

Change-Id: I1e2e6d66474f0f8a655a055d5b2150699d66f1dd
Make NFS share selection more intelligent.

Make the NFS share selection more intelligent by using a used_ratio
and oversub_ratio to determine the valid target.  The used_ratio
is a hard-cap of maximum "actual" used space, oversub_ratio allows
for oversubscription of the share based upon the apparant-allocated
space for sparse files.

Removed Options: nfs_disk_util

New options added:
* nfs_used_ratio:
    Float representation of the maximum allowed usage (e.g. 0.95
    calculated by available_space / total_space) before the share
    is no longer concidered a valid target.  Default: 0.95

* nfs_oversub_ratio:
    Float representation of the oversubscriotion ratio allowed when
    utilizing sparse files (determined via "du").  This gets
    multiplied against the total_capacity before comparing the
    apparant space used by the backing volume files.  Default
    ratio is 1.0 (meaning reserved/allocated space cannot exceed
    total space available on the mount).

DocImpact: New Configuration Options / Removal of Config Option

bp nfs-share-selection-logic-improvement

Change-Id: I3572e106eb4c794b08bf6f499e2da2d494c4072d
Fix ownership transfer when cloning with SolidFire

When cloning a volume with SolidFire driver, the owner of
the cloned volume is not set correctly in SolidFire when there is
a transfer of ownership.

This results in inconsistent states where the cloned volume
is owned by the new tenant in Cinder but SolidFire thinks it is still
owned by the original volume's tenant.

This patch adds the newAccountID parameter to all CloneVolume calls.

If the cloned volume is owned by the same tenant, newAccountID will
be set to the same value as the original SolidFire volume. There
will be no change of ownership done by the cloning process in SolidFire.

If the cloned volume should be owned by a different tenant, newAccountID
will be set to the appropriate SolidFire account corresponding
to the new tenant. If the SolidFire account does not exist already,
it will be created.

Fixes: bug #1183521
Change-Id: I622ca2962478298e3e0c5a26866e39919805075f
Migrate base test class to testtools.

This is step one in moving towards testr.

Change-Id: Ieac7fbe34ddc9ca05812faca76b68ff7d37ca708
Replace custom skip_ methods.

testtools has these built in - so we should use them.

Change-Id: I2a9f6dbd69d5acef9a0dfbe5e90e9dbf706d8677
Merge "Add common Oslo DB code to the source tree"
Add "_" builtin method for config generation

extract_opts.py fails to generate config without this

bug 1183731

Change-Id: Icf3b45d5d7262607336f5d5e7a0a14b0dee9741d
Improve "service is down or disabled" warning message

Include "volume" and host in this message to make it more useful.

Change-Id: I2cacc7373de3a1b51762df2844a46b393d96c6cc