ZFSSA iSCSI driver should support extra specs

Support for extra specs at volume creation time,
would allow more flexibility to create custom volumes.
The following scoped keys are supported:
-zfssa:volblocksize
-zfssa:sparse
-zfssa:compression
-zfssa:logbias

Closes-Bug: #1379403
DocImpact

Change-Id: I8768d07f19147dc2544bebc0dbf3392313838e8f
RemoteFS: Move Nova snapshot code into RemoteFSSnapDriver

Implements bp: remotefs-snaps

Change-Id: I2e92322ff9c80de123dc281f790a7c2a89c4d62e
First version of Cinder driver for Quobyte USP

Supported Operations are:
- Create Volume
- Delete Volume
- Attach Volume
- Detach Volume
- Extend Volume
- Create Snapshot
- Delete Snapshot
- List Snapshots
- Create Volume from Snapshot
- Create Volume from Image
- Create Volume from Volume (Clone)
- Create Image from Volume

The driver uses a file-based interface to access the configured
Quobyte volume. Therefore, the driver is similar to the existing
drivers NFS and GlusterFS.

Due to the similarities, I reused the snapshot code from the GlusterFS
driver. Gluster, thanks for that! I've kept the "Red Hat" copyright in
the header to credit you properly.

All driver functions are covered by unit tests. Snapshot tests were
taken over from test_glusterfs.py. New tests are written using "Mock"
instead of "mox".

Certification tests: https://bugs.launchpad.net/cinder/+bug/1401471

Implements: blueprint quobyte-usp-driver
Change-Id: I7ca13e28b000d7a07c2baecd5454e50be4c9640b
DB migration tests

Refactored migration tests to use OpportunisticTestCase, removed
unused code and ``test_migrations.conf`` file.

The main feature of this approach is to create a new database with
random name for each migration test.  This will avoid migration tests of
race conditions and reduce tests intersection. After this change, database
``openstack_citest`` will be used only for initial connection to the database.

``test_migrations.conf`` file not required anymore, because we create test
database for migration test, so we no longer need to keep database credentials.

Implements blueprint: db-migration-tests
Related-bug: #1266595
Change-Id: I4febd485ff53936b636947c86773a23724e24c65
Symantec NFS cinder driver

Changes to support Symantec Storage Foundation Clustered File
System High Availability via NFS Cinder driver.

cert results at:
https://bugs.launchpad.net/cinder/+bug/1402147

implements: blueprint symantec-nfs-cinder-driver
Change-Id: Ie4b4785b7c93246147c8d9e6a172621f454301ae
Ensure that lun_id is an int for NetApp Drivers

Various NetApp drivers were treating the lun_id as a string
rather than an int.  This was causing attempts to mount NetApp
volumes to Hyper-V nodes to fail as they were checking an integer
type against a unicode type which would fail.

This change casts result_lun to an integer after the value has
gone through the ssh injection attack check.  This way Hyper-V
is able to verify if the found LUN is the target LUN, enabling
mounting of NetApp volumes to Hyper-V.

This change also refactors initialize_connection into some helper
methods so as to enable simpler unit testing of the patchset.

Closes-bug: 1372808

Change-Id: I308b3b2dff315ec33451fb45a30ecd53d5d4c353
Add Support for Dell Storage Center

This driver implements cinder FC and iSCSI volume drivers.
The file dell_storagecenter_api.py is called to interface with the
Dell Storage Center backend via a REST interface.
Dell_storagecenter_common.py is the base class implementation with
dell_storagecenter_fc.py and dell_storagecenter_iscsi.py being providing
fc and iscsi specific support respectivly.

https://bugs.launchpad.net/cinder/+bug/1398951

Implements: blueprint dell-storage-center-block-storage-driver
Change-Id: Ic483e54b40349ede20e078c6406f5bab8d7d7cc2
Remove commented out code from cinder/test.py

There was a line of code left from previous development that
was left commented out.  This change removes the unnecessary
line of code.

Change-Id: I8a78e051e946f4cad7ec4b26d1a590a7e97cb613
Add the StorPool block storage driver.

StorPool is distributed data storage software running on standard x86
servers.  StorPool aggregates the performance and capacity of all drives
into a shared pool of storage distributed among the servers.  Within
this storage pool the user creates thin-provisioned volumes that are
exposed to the clients as block devices.  StorPool consists of two parts
wrapped in one package - a server and a client.  The StorPool server
allows a hypervisor to act as a storage node, while the StorPool client
allows a hypervisor node to access the storage pool and act as a compute
node.  In OpenStack terms the StorPool solution allows each hypervisor
node to be both a storage and a compute node simultaneously.

To make full use of StorPool's native network communication protocol,
the Nova compute nodes will need to use the StorPool libvirt volume
attachment driver, nova.virt.libvirt.storpool.LibvirtStorPoolVolumeDriver.

DocImpact
Change-Id: I64adbca724a52771b68e4838749f8896e6e56019
Implements: blueprint storpool-block-driver
Send the notifications to the Ceilometer for backup service

* Add the notification send-out for create_backup, delete_backup
  and restore_backup.
* Add the progress notification to Swift backup service.

DocImpact

Change-Id: I9835073a39aa8b2ffbec12d84147cce027ff731b
implements-bp: backup-notification
Delete default volume size 100M in drivers

There is check: if volume size == 0 we set default value to 100M,
it uses only in tests and it's little bit confusing.Use code only
for tests in drivers is bad practice.

Also the create volume flow already won't let user to create
a volume  with size 0. So it was decided to remove this check.

Change-Id: I620ae8fff4634c60a02329f22d1a0343b27aa955
Merge "RemoteFS: Move Nova snapshot code into RemoteFSSnapDriver"
Merge "First version of Cinder driver for Quobyte USP"
Merge "Ensure that lun_id is an int for NetApp Drivers"
Merge "DB migration tests"
Merge "Send the notifications to the Ceilometer for backup service"
Added UUID as primary key for Encryption model

volume_type_id could not be used as PK because
soft deletes are using for Encryption

Change-Id: I5c4423da4442f2458417dc3492750412a74ebe09
Closes-Bug: #1316540
Merge "Add Support for Dell Storage Center"
Merge "Remove commented out code from cinder/test.py"
Merge "Symantec NFS cinder driver"