NetApp direct to filer drivers for iscsi and nfs.

The drivers are designed to work with 7 mode and cluster storage systems.
The drivers are designed to communicate with the NetApp storage controllers
directly without requiring any intermediate management softwares in place using
the NetApp api. Hence these represent the direct to filer versions of NetApp drivers.
This also contains conventional nfs driver for cluster systems which requires
NetApp management software as middle layer. Implementation for cloning support
and basic volume type scheduler support in driver added. All NetApp drivers
shifted into separate NetApp package. NetApp api refactored into a separate file
other than drivers.

blueprint netapp-direct-volume-drivers
blueprint netapp-cluster-nfs-driver

Change-Id: If3f5389d1f98eba899c4928a8ae1c1d3430bd847
Add volume_glance_metadata to volume.api.get

The dict(rv.iteritems()) agains the volume object from
volume.api.get does NOT set the volume_glance_metadata k/v.

This is used to show bootable in the show and list api calls,
the result was that list properly reflected the bootable status
of a volume, however show would always describe the flag as False.

So we simply check if the rv includes the glance_metadata and if
so go ahead and create the entry in the volume dict.

Fixes bug: 1115629

Change-Id: Ia0be08f3d2c85b7fe8390fca264803c96cdce7f7
XenAPINFS: Copy image from glance

related to blueprint xenapinfs-glance-integration

This change is using the glance xenapi plugin to copy a glance image to
a xenapinfs backed volume. It slightly differs from the reference
implementation, as this implementation is composed of three steps:
- create volume
- overwrite the created volume with the one downloaded from glance
- resize the volume
As opposed to fill the bytes from glance to the created image. This
approach works more effective with XenServer type semi ovf tgz -ed vhds.

Change-Id: I2345f6bb355aa285eee0455380c580e4724f004e
XenAPINFS: Copy volume to glance

related to blueprint xenapinfs-glance-integration

This patch enables to upload XenAPINFS backed cinder volumes to glance
by using the nova glance plugin.

Change-Id: Ie41aa6871fec691556b82501ce3bfdf50898471d
Allow tools/install_venv_common.py to be run from within the source directory.

(Copy latest update from oslo)

Not doing this raised exceptions when it tried importing modules
that didn't exist in the path.

Fixes LP# 1112484

Change-Id: I2be7bde0bf873a22318617b987a76b209caef22a
rework migration 004 testing with real data

tests that 004 works with real data.

Fix downgrade issue where id conversion needed to happen prior to
the schema definition change.

Fix pep8 E12* items

Change-Id: I216d649bf081a6d70321e72e06357ef5a729a998
Allow for specifying nfs mount options

Fixes bug 1113042

Adds a new config option:
    nfs_mount_options=None (Default)

When not None, anything set here will be passed as -o <options> to
the mount command. The default behavior is to do exactly as we are
doing today and relying on the OS/kernel defaults.

Change-Id: I6bd27f9d0e8848a9ba98318ba7288e43ee6b4cb9
Flags: DocImpact
Don't require importing paramiko for error.

The _run_ssh function raises a paramiko exception, which requires
functions that use it to import the paramiko class. This should be
hidden away, and so I created a new exception in its place. Nobody
but the Storwize/SVC driver use it anyway, and I am updating that
driver in a separate patch.

Change-Id: Ibf353edc664765897a5fa7a08d126de4b8992863
Allow disabling of long-lived SSH connections.

Currently, SSHPool connections are kept alive indefinitely.  This can
be good for many cases, but sometimes it is not desirable.  For
example, this causes unit tests which use SSH to not complete because
of the open connections.  This patch allows users to revert back
to paramiko's regular timeout policy.

Change-Id: Ifa96508b38d90610390c9ec3d48a7de75d02f08b
Merge "Add volume_glance_metadata to volume.api.get"
Update to latest oslo-version code.

In prep for tag-based versioning, update to latest oslo-version code.

Change-Id: Ic5046006919e20247481fa1ddbde2dfd456b188a
Move create_cloned_volume() to LVMVolumeDriver.

The implementation of create_cloned_volume() that was in driver.py
relied on functions that aren't declared there, such as
_create_volume(), _copy_volume(), and _sizestr().  Moved the function
to LVMVolumeDriver in lvm.py, where those functions exist.

Change-Id: I5ab77a119b3af0a152a3b5e0c2ff6a5ce196ad0f
Fixes: bug #1112485
Merge "Allow tools/install_venv_common.py to be run from within the source directory."
Merge "XenAPINFS: Copy image from glance"
Merge "rework migration 004 testing with real data"
Merge "Don't require importing paramiko for error."
Merge "Allow for specifying nfs mount options"
Merge "Update to latest oslo-version code."
Merge "XenAPINFS: Copy volume to glance"
Merge "Move create_cloned_volume() to LVMVolumeDriver."