Add support for querying the quotas usage

QuotaSetsController's _get_quotas already supports querying for
the usage. This patch allows sending a parameter "usage" to the
REST API when asking for quotas

Change-Id: I2103f41ae7aac1ed9f071949db4fb205552694f5
VMware ESX: Fixes vol clone & clone from snapshot

The driver was earlier performing create from a source volume and create from
a snapshot point by copying the source volume container folder.

This is not valid in case of vSAN datastore where the volume data is not a
'file' in the container folder unlike VMFS/NFS datastores. So copying folder
will only copy descriptor file and hence the source and cloned volume will
end up writing to the same data location, eventually corrupting it.

The fix is to copy only the VMDK file (descriptor + data) and not the entire
container folder. The implementation does the following:
1. Create a volume backing
2. Delete the current VMDK
3. Make a copy of source volume's VMDK file to the destination using virtual
   disk manager. In case of create from snapshot, we copy the VMDK file
   corresponding to the snapshot point.

Fixes bug: 1233034

Change-Id: I51c9870c11a6d66f9f47c1ad9aaa2abc3dd0533a
Remove incorrect class in cinder.conf.sample

cinder.openstack.common.exception has already been deleted.
It seems to be a leak in 'Change-Id:
I6f46f90bd74cc26fc01667e467e3dab38037eec3'.

Change-Id: Ic2000280f31e354da39a9bbb0d60142b431f58a6
Closes-Bug: #1234002
Quotas roll back failure of create volume task

Fixes quotas rollback issue if volume creation fails

* Added revert method in QuotaCommitTask to rollback
* volume reservations.

Fixes bug #1230176

Change-Id: I0983ea876983b4294ed0aebb49a065715a185b4e
Remove need for CONF acces in brick iscsi

At some point we'd like brick to be a standalone lib,
and as such we don't want to have a requirement for
CONF files and having duplicate conf entries across
projects.

The better approach would be to let the projects decide
what they want to use, and how they want defaults to be set
and then pass those settings in via __init__ or when calling
the methods that need them.

Partial-Bug: #1230066

Change-Id: Ib108f1abb2948cb896bdad58070daa7a725a205d
Add key manager implementation with static key

Per feedback received on other patch sets, an example key manager
driver is required to support ephemeral storage encryption and
Cinder volume encryption -- see
* https://blueprints.launchpad.net/nova/+spec/encrypt-cinder-volumes
* https://blueprints.launchpad.net/nova/+spec/encrypt-ephemeral-storage
The ConfKeyManager class reads its key from the project's
configuration file and provides this key for *all* requests. As
such, this key manager is insecure but allows the aforementioned
encryption features to be used without further integration effort.

To clarify the above statements, the configuration-based key
manager uses a single, fixed key. When used to encrypt data (e.g.,
by the Cinder volume encryption feature), the encryption provides
limited protection for the confidentiality of data. For example,
data cannot be read from a lost or stolen disk, and a volume's
contents cannot be reconstructed if an attacker intercepts the iSCSI
traffic between the compute and storage host. If the key is ever
compromised, then any data encrypted with the key can be decrypted.

This commit copies the ConfKeyManager class from Nova as well as
synchronizing changes with the key manager interface in Nova.

Implements blueprint encrypt-cinder-volumes
DocImpact
SecurityImpact

Change-Id: I5cb06386410f46cabc490fa6af23272d1d2cb979
Merge "Quotas roll back failure of create volume task"
Merge "Remove need for CONF acces in brick iscsi"
Merge "Add key manager implementation with static key"
Merge "Remove incorrect class in cinder.conf.sample"
Merge "VMware ESX: Fixes vol clone & clone from snapshot"
Merge "Add support for querying the quotas usage"