Upgrade WebOb to 1.2.3

The version of WebOb being used in OpenStack was more than
1 year old. This change updates to the latest stable release.

Upgrading WebOb resolves a version conflict between OpenStack
and Pecan, the web framework used by the Ceilometer team for
version 2 of the ceilometer API.

Refer to http://docs.webob.org/en/latest/news.html
for the list of changes between 1.0.8 and 1.2.3.

bug 1092227

Change-Id: I44fdd11acbf1d5245e0c9c5a6199fd53200928ed
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
Update SolidFire Volume driver

Adds support for clone volumes and set QoS use volume type / extra_specs.
Also includes some minor cleanup and some hardening for known pre-release
XDB issue in SolidFire Cluster API.

Change-Id: I4b39b301b9a1f9b859a694decfee48c74d22a74a
Factor out LVM code.

Currently volume drivers inherit from VolumeDriver and ISCSIDriver,
which contain LVM-specific code. The LVM-specific functions are
generally overridden. The problem is that there is no place for
generic code for all drivers to inherit, which the LVM driver can
override. This patch basically makes the VolumeDriver and ISCSIDriver
classes mostly empty and moves the LVM-specific code to lvm.py. Also,
moved the global _iscsi_location() and _iscsi_authentication()
functions into the new LVMISCSIDriver class since nobody else used
them.

Change-Id: I067c975de97913bdc39086ad203cddef0c393c7a
Implements: blueprint factor-out-lvm-code
Enhance wsgi to listen on ipv6 address

Check if the hostname is ipv6 and set the family appropriately.
Picking up the snippet from glance.
Picked up some code from nova as well to get the test case running
properly

Change-Id: Ic79fcda2371f0907d75a142ea18b26b3e8d92e51
Support for SSL in wsgi.Server

SSL are entirely optional. Support for SSL as well using code from glance. We
have some new options for configuring the SSL support. There are tests for
accessing a sample app w/o ipv6 or ssl, one with just ssl and one with
ipv6 and ssl

DocImpact

Change-Id: I9aa1db6c9563868bf68ced7c4311daa870216ced
Merge "Upgrade WebOb to 1.2.3"
Relax various version constraints.

The current 3rd-party module requirements for cinder are still from the
nova git import. Usually, having an upper bound for requirements makes
only sense where API-incompatible changes are expected (like WebOb). For
the others it is better the only require a minimum version because
usually distributions differ on the shipped versions of these Python
modules. For instance, openSUSE has newer versions for almost all of
those and running the testsuite there works flawlessly.

Change-Id: I4614a2ea87084f927a557b9fb85dcd10ae9dfeff
support a configurable volume wiping method

Add a clear_volume() method that is called from delete_method().
This is only implemented at present for the base LVM driver.
This new clear_volume() method now supports these config vars:

  volume_clear = none, zero, shred
  volume_clear_size = size_in_MiB

'zero' is the default method and unchanged from previously.
'none' is used if security isn't a concern, or there is
  independent volume scrubbing.
'shred' is for more security conscious situations where
an overwrite count is required. Currently this defaults to 3 passes.

size_in_MiB can be used to limit the cleared area to the first
part of the volume, which can greatly speed up the operation,
and can be useful with encrypted volumes for example where
overwritting the encryption keys at the start is sufficient.

Fixes bug: 1022511
Change-Id: I7312678ff5d66156578501483a1b74e2a69e19a0
Merge "Enhance wsgi to listen on ipv6 address"
Merge "Support for SSL in wsgi.Server"
Merge "Update SolidFire Volume driver"
Merge "support a configurable volume wiping method"
Snapshot support for XenAPINFS

Related to blueprint xenapinfs-snapshots

Add support for snapshots, by implementing it with deep copies. Each
snapshot is a copy of the volume. Snapshot object has a new,
provider_location key, to store volume parameters.

Change-Id: Iea06246319ce82d5fcfe417419156ec83ef0a895
Move iscsi flags back to driver.py

During the lvm class create the iscsi flags were moved.
This is NOT correct, the flags belong with the ISCSI class
and should have been left in driver.py where ISCSIDriver
is defined.

Moving these breaks the inheritance structure for all those that
inherit from ISCSIDriver.

Change-Id: I1fda9158d9f8f01005875b87265d2dd87bcbc67f
Merge "Relax various version constraints."
Merge "Move iscsi flags back to driver.py"
New cinder.conf.sample format

Based on recent changes in Nova, this provides a cleaner/simpler looking config file:

- Move help message before each option, rather than after.
- Print types like "string value" instead of "(StrOpt)"
- Use fewer pound symbols

Switch to a new format that looks much more like a normal config file.

Change-Id: I69f9b7b84215a2a69bdb0c4af9d5e1cb1e105a45
Check for configured IPV6 before running tests

Some folks don't/can't have IPV6 configured on their systems,
the new IPV6 tests in test_wsgi require that you do, so
let's add a check and skip if there are no IPV6 configured interfaces.

Change-Id: I7cbdcbc3ad4cc4690634f6464d6e28d9f4dfd791
Merge "Check for configured IPV6 before running tests"
Merge "Snapshot support for XenAPINFS"