]> review.fuel-infra Code Review - openstack-build/cinder-build.git/log
openstack-build/cinder-build.git
9 years agoFix LIO target helper when missing targetcli
Gorka Eguileor [Sun, 10 May 2015 14:50:36 +0000 (16:50 +0200)]
Fix LIO target helper when missing targetcli

After patch to fix LIO target persistence was merged, a bug was
introduced where target creation/removal would result in an exception if
targetcli is not installed on the system.

This patch fixes this by checking if path to the default file exists on
the system and creating it if doesn't.

Change-Id: I5ecc1ae47482ea43a4890ccd81a4e872ab570069
Closes-Bug: #1453518

9 years agoMerge "Introduce Guru Meditation Reports into Cinder"
Jenkins [Tue, 16 Jun 2015 16:53:06 +0000 (16:53 +0000)]
Merge "Introduce Guru Meditation Reports into Cinder"

9 years agoMerge "Use correct rtslib namespace for newer versions"
Jenkins [Tue, 16 Jun 2015 16:17:05 +0000 (16:17 +0000)]
Merge "Use correct rtslib namespace for newer versions"

9 years agoMerge "Pass proxy environment variables to tox"
Jenkins [Tue, 16 Jun 2015 15:46:08 +0000 (15:46 +0000)]
Merge "Pass proxy environment variables to tox"

9 years agoMerge "Replace xrange() with six.moves.range()"
Jenkins [Tue, 16 Jun 2015 15:45:58 +0000 (15:45 +0000)]
Merge "Replace xrange() with six.moves.range()"

9 years agoMerge "Fix Python 3 issues in utils"
Jenkins [Tue, 16 Jun 2015 15:44:13 +0000 (15:44 +0000)]
Merge "Fix Python 3 issues in utils"

9 years agoMerge "Drop L suffix from long integers"
Jenkins [Tue, 16 Jun 2015 15:41:36 +0000 (15:41 +0000)]
Merge "Drop L suffix from long integers"

9 years agoMerge "Re-add DRBD driver"
Jenkins [Tue, 16 Jun 2015 14:51:36 +0000 (14:51 +0000)]
Merge "Re-add DRBD driver"

9 years agoMerge "Adds FC and ISCSI Cinder drivers for DotHill Storage Arrays"
Jenkins [Tue, 16 Jun 2015 14:37:36 +0000 (14:37 +0000)]
Merge "Adds FC and ISCSI Cinder drivers for DotHill Storage Arrays"

9 years agoReplace xrange() with six.moves.range()
Victor Stinner [Mon, 25 May 2015 15:08:00 +0000 (17:08 +0200)]
Replace xrange() with six.moves.range()

Add "from six.moves import range" to replace the builtin range()
function with six.moves.range() to always create an iterator, instead of
creating a temporary list.

Replace "xrange" with "range".

Don't add the import for ranges of 1024 items or less.

Blueprint cinder-python3
Change-Id: If618b4e810e444f7eb6592bb2398805e9d14d548

9 years agoDrop L suffix from long integers
Victor Stinner [Wed, 10 Jun 2015 12:28:38 +0000 (14:28 +0200)]
Drop L suffix from long integers

Replace 123L with 123 to make Cinder code compatible with Python 3.

This patch was generated by the long operation of the sixer tool:
https://pypi.python.org/pypi/sixer

Manual changes:

* hp_3par_common: bump version

Blueprint cinder-python3
Change-Id: I3086d3e3d9c3ede358313bdd43d1eee9cfdafe15

9 years agoPass proxy environment variables to tox
Yuiko Takada [Mon, 15 Jun 2015 01:12:24 +0000 (10:12 +0900)]
Pass proxy environment variables to tox

When a development environment is under a proxy, tox fails even if
environment variables of the proxy are set.

This patch fixes this problem by passing (upper case and lower case)
http_proxy, https_proxy and no_proxy from environment to tox.

See: commit 2d02ebb775ec44a14e325c56d4a901c5705fbb94

Change-Id: Ib7964fd5ea4fb8398cdb4cd94a70fe7fae49f973

9 years agoRe-add DRBD driver
Philipp Marek [Tue, 16 Jun 2015 06:45:44 +0000 (08:45 +0200)]
Re-add DRBD driver

This reverts commit 37eef0b3d4d786d4b2b1a7e48f3e2339506e85e2.

We hope to have a -infra CI running by June 12th, to get included
in Liberty.

Change-Id: Icb7347d55dc5b22720269405b6d2b4053c2ad819

9 years agoMerge "Get rid of oslo-incubator copy of middleware"
Jenkins [Tue, 16 Jun 2015 04:22:38 +0000 (04:22 +0000)]
Merge "Get rid of oslo-incubator copy of middleware"

9 years agoMerge "Targets tests: Clean up long lines"
Jenkins [Tue, 16 Jun 2015 04:10:51 +0000 (04:10 +0000)]
Merge "Targets tests: Clean up long lines"

9 years agoMerge "SQL scripts should not manage transactions"
Jenkins [Tue, 16 Jun 2015 04:03:58 +0000 (04:03 +0000)]
Merge "SQL scripts should not manage transactions"

9 years agoIntroduce Guru Meditation Reports into Cinder
wanghao [Thu, 14 May 2015 07:42:44 +0000 (15:42 +0800)]
Introduce Guru Meditation Reports into Cinder

This commit integrates functionality from the
`openstack.common.report` module into Cinder.
This enables Cinder services to receive SIGUSR1
and print a Guru Meditation Report to stderr.
The required modules were added to
'openstack-common.conf' as well.

It is essentially a copy from implementation of
nova side.

Change-Id: I5bbdc0f97db9b0ebd7b48e50ab7869e2ca33aead
Implements: blueprint guru-meditation-report

9 years agoAdds FC and ISCSI Cinder drivers for DotHill Storage Arrays
nikeshm [Mon, 27 Apr 2015 06:53:11 +0000 (12:23 +0530)]
Adds FC and ISCSI Cinder drivers for DotHill Storage Arrays

DocImpact
Implements: blueprint dothill-fc-cinder-driver
Implements: blueprint dothill-iscsi-cinder-driver

Co-Authored-By: Gauvain Pocentek<gauvain.pocentek@objectif-libre.com>
Co-Authored-By: Walter A. Boring IV<walter.boring@hp.com>
Change-Id: Iaf70ade96d4ad4234cc7e88277ed7b52cf458c2a

9 years agoGet rid of oslo-incubator copy of middleware
Davanum Srinivas [Mon, 1 Jun 2015 21:43:03 +0000 (17:43 -0400)]
Get rid of oslo-incubator copy of middleware

We have already moved away from openstack/common/middleware modules
to the oslo_middlware library. Let us cleanup the remaining files
here.

Change-Id: I701b08a28884eb56d12f2829483fe94aa8d2fd1d

9 years agoMerge "Get StringIO from six for Python 3 compatibility"
Jenkins [Mon, 15 Jun 2015 23:32:31 +0000 (23:32 +0000)]
Merge "Get StringIO from six for Python 3 compatibility"

9 years agoMerge "Remove WritableLogger wrapper"
Jenkins [Mon, 15 Jun 2015 23:26:50 +0000 (23:26 +0000)]
Merge "Remove WritableLogger wrapper"

9 years agoMerge "Update 3PAR user config help strings"
Jenkins [Mon, 15 Jun 2015 22:37:48 +0000 (22:37 +0000)]
Merge "Update 3PAR user config help strings"

9 years agoMerge "Replace dict(obj.iteritems() with dict(obj)"
Jenkins [Mon, 15 Jun 2015 22:37:38 +0000 (22:37 +0000)]
Merge "Replace dict(obj.iteritems() with dict(obj)"

9 years agoMerge "Replace dict.iteritems() with dict.items()"
Jenkins [Mon, 15 Jun 2015 22:10:18 +0000 (22:10 +0000)]
Merge "Replace dict.iteritems() with dict.items()"

9 years agoMerge "Use six.reraise() for Python 3 compatibility"
Jenkins [Mon, 15 Jun 2015 22:06:26 +0000 (22:06 +0000)]
Merge "Use six.reraise() for Python 3 compatibility"

9 years agoMerge "Remove pretty_tox and use ostestr"
Jenkins [Mon, 15 Jun 2015 21:23:17 +0000 (21:23 +0000)]
Merge "Remove pretty_tox and use ostestr"

9 years agoSQL scripts should not manage transactions
John Griffith [Mon, 15 Jun 2015 20:02:28 +0000 (14:02 -0600)]
SQL scripts should not manage transactions

This bug was fixed a while back, but the migration added for
multi-attach reintroduced it for its sqlite_downgrade file.

This patch removes it.

blueprint enable-mysql-connector

Change-Id: Iaec8713bf5cf36bcc97afbca8dd025cda9c2238d
Closes-Bug: 1368391

9 years agoTargets tests: Clean up long lines
Eric Harney [Fri, 12 Jun 2015 19:47:30 +0000 (15:47 -0400)]
Targets tests: Clean up long lines

Clean up long lines in unit tests, mostly by
using a variable for volume UUID and shortening
unnecessarily long CHAP credentials.

This is not intended to be complete, just
a good start that greatly reduces #noqa and
improves readability.

Change-Id: Iddc26a5722731d76e6d9e4b0ff493ed806bf148d

9 years agoUpdate 3PAR user config help strings
Kurt Martin [Thu, 11 Jun 2015 20:29:11 +0000 (13:29 -0700)]
Update 3PAR user config help strings

The 3PAR drivers no longer requires a user to have the 'super'
access role. This patch simply updates the help strings for the
3PAR username and password to reflect that an 'edit' role will
be sufficient.

DocImpact

Change-Id: I9b546953d06072dd614f92542b77e3a1a96f2eb5

9 years agoDisallow backing files when uploading volumes to image
Eric Harney [Tue, 31 Mar 2015 23:48:17 +0000 (19:48 -0400)]
Disallow backing files when uploading volumes to image

Volumes with a header referencing a backing file can leak
file data into the destination image when uploading a
volume to an image.

Halt the upload process if the volume data references a
backing file to prevent this.

Closes-Bug: #1415087
Change-Id: Iab9718794e7f7e8444015712cfa08c46848ebf78

9 years agoRemove WritableLogger wrapper
Igor Pugovkin [Mon, 15 Jun 2015 09:10:41 +0000 (12:10 +0300)]
Remove WritableLogger wrapper

With Eventlet 0.17.2, we can directly pass the logger
instance. This allows us to deprecate/remove the WritableLogger
class from oslo.log.

Change-Id: Ib7d193435584fc3631740058ed34b4df4ab23ad6
Closes-Bug: #1440773

9 years agoGet StringIO from six for Python 3 compatibility
Victor Stinner [Tue, 9 Jun 2015 13:32:32 +0000 (15:32 +0200)]
Get StringIO from six for Python 3 compatibility

Get StringIO and cStringIO classes and modules from the six module to
make cinder compatible with Python 2 and Python 3.

This patch was generated by the stringio operation of the sixer tool
version 0.4:
https://pypi.python.org/pypi/sixer

Blueprint cinder-python3
Change-Id: Ia8a58f83a504f2d2930bf5a0dc2cbaa482c29784

9 years agoFix Python 3 issues in utils
Victor Stinner [Fri, 12 Jun 2015 11:28:38 +0000 (13:28 +0200)]
Fix Python 3 issues in utils

* Replace string.split(key_file, ',') with key_file.split(','):
  the string.split() function was removed in Python 3, use the
  str.split() method instead
* Fix conf_fixture: import backup_enable_progress_timer and
  backup_swift_enable_progress_timer options. This change is required
  to run tests using testtools (it's now possible yet to run tests on
  Python 3 using testr).
* hash_file(): use b'' (bytes) for the sentinel, not '' (unicode), when
  reading the input binary file
* test_hash_file() requires a binary file (bytes), not a text file
  (unicode)
* Get the builtin open() function from six.moves.builtins instead of
  getting it from __builtin__ to mock the open() function. The
  __builtin__ module was renamed to builtins in Python 3.
* sanitize_hostname(): on Python 3, decode back the hostname from Latin1
  to work on a native string (Unicode)
* replace reduce() with six.moves.reduce(): the Python 2 builtin
  reduce() function was moved to the functools module in Python 3
* convert_version_to_str(): fix integer division, use a//b, not a/b
* convert_version_to_str(): replace reduce() with ''.join() with map(str)

Blueprint cinder-python3
Change-Id: If7b8f50c6a8b0a5044c2c7108b2b0293dddafff3

9 years agoMerge "Wait until service thread is done on service stop"
Jenkins [Mon, 15 Jun 2015 04:03:59 +0000 (04:03 +0000)]
Merge "Wait until service thread is done on service stop"

9 years agoMerge "3PAR enable multiattach capability reporting"
Jenkins [Sun, 14 Jun 2015 23:02:12 +0000 (23:02 +0000)]
Merge "3PAR enable multiattach capability reporting"

9 years agoMerge "Use six to fix imports on Python 3"
Jenkins [Sun, 14 Jun 2015 22:43:31 +0000 (22:43 +0000)]
Merge "Use six to fix imports on Python 3"

9 years agoMerge "Add cinder volume driver for Blockbridge EPS"
Jenkins [Sat, 13 Jun 2015 17:11:27 +0000 (17:11 +0000)]
Merge "Add cinder volume driver for Blockbridge EPS"

9 years agoWait until service thread is done on service stop
Mitsuhiro Tanino [Sat, 13 Jun 2015 04:23:40 +0000 (00:23 -0400)]
Wait until service thread is done on service stop

In order to be able to perform graceful shutdown of services, we need
to wait for all the current service threads to finish before exiting
from the service process.

Oslo.service provides this facility through it's wait() method, so we
need to call it in Cinder Service stop() method which gets called when
graceful shutdown is requested by sending the process SIGINT or SIGTERM.

Partial-Bug: 1464822
Change-Id: I972b80251cebe353f9d89ff4e05db8d029ef5e73

9 years agoMerge "Add secondary account capability to SolidFire"
Jenkins [Sat, 13 Jun 2015 15:40:23 +0000 (15:40 +0000)]
Merge "Add secondary account capability to SolidFire"

9 years agoMerge "Volume manager should set filter_function and goodness_function"
Jenkins [Sat, 13 Jun 2015 01:13:06 +0000 (01:13 +0000)]
Merge "Volume manager should set filter_function and goodness_function"

9 years agoAdd cinder volume driver for Blockbridge EPS
Joshua Huber [Fri, 12 Jun 2015 01:17:13 +0000 (21:17 -0400)]
Add cinder volume driver for Blockbridge EPS

This initial commit includes support for the minimum required volume
operations:

- Volume Create/Delete
- Volume Attach/Detach
- Snapshot Create/Delete
- Create Volume from Snapshot
- Get Volume Stats
- Copy Image to Volume
- Copy Volume to Image
- Clone Volume
- Extend Volume

For more details about our storage backend, please see the blueprint.

blueprint blockbridge-eps-driver
Change-Id: I99c95243bec708c6519cb69c4cb68085ad698c83

9 years agoMerge "san driver: don't use relative Python import"
Jenkins [Fri, 12 Jun 2015 20:39:29 +0000 (20:39 +0000)]
Merge "san driver: don't use relative Python import"

9 years agoMerge "Implement Cinder Volume driver for HGST Solutions"
Jenkins [Fri, 12 Jun 2015 19:03:07 +0000 (19:03 +0000)]
Merge "Implement Cinder Volume driver for HGST Solutions"

9 years agoMerge "Re-integrate Oracle iSCSI Cinder driver"
Jenkins [Fri, 12 Jun 2015 17:44:40 +0000 (17:44 +0000)]
Merge "Re-integrate Oracle iSCSI Cinder driver"

9 years agoMerge "NetApp E-Series: Add Fibre Channel Support"
Jenkins [Fri, 12 Jun 2015 16:54:12 +0000 (16:54 +0000)]
Merge "NetApp E-Series: Add Fibre Channel Support"

9 years ago3PAR enable multiattach capability reporting
Walter A. Boring IV [Wed, 13 May 2015 16:24:49 +0000 (09:24 -0700)]
3PAR enable multiattach capability reporting

This patch enables the reporting of the
multiattach capability in get_volume_stats.
The scheduler currently filters on the capability
for drivers that support/don't support that ability
to do more than one attachment for a volume.
By reporting multiattach = True, it lets the scheduler
know this driver allows attaching a volume more than once.

Change-Id: Ia18414bbadff14777c2266b681c03c76a2aa6889

9 years agoMerge "NetApp E-Series: Refactor class structure for FC"
Jenkins [Fri, 12 Jun 2015 14:39:06 +0000 (14:39 +0000)]
Merge "NetApp E-Series: Refactor class structure for FC"

9 years agoReplace dict(obj.iteritems() with dict(obj)
Victor Stinner [Fri, 12 Jun 2015 12:55:37 +0000 (14:55 +0200)]
Replace dict(obj.iteritems() with dict(obj)

Since oslo.db 1.10, it's possible to convert directly a SQLAlchemy
object to a dictionary using dict(obj) instead of having to write
dict(obj.iteritems()).

dict(obj) works also on regular dictionaries to duplicate a dictionary.

Blueprint cinder-python3
Change-Id: I868a055d5bbfe6646aad3e36e1bf6c7a1ad7b449

9 years agoReplace dict.iteritems() with dict.items()
Victor Stinner [Fri, 12 Jun 2015 12:53:05 +0000 (14:53 +0200)]
Replace dict.iteritems() with dict.items()

This change adds Python 3 compatibility to the modified code.

Replace also six.iteritems(obj) with obj.items().

The iteritems() method of Python 2 dictionaries was renamed to items()
on Python 3. As discussed on the openstack-dev mailing list, iteritems()
must be replaced with items(), six.iteritems() should not be used. In
OpenStack, the overhead of creating a temporary list with dict.items()
on Python 2 is negligible.

Blueprint cinder-python3
Change-Id: Ic3d8fd6b71d2c9f21929b0d6bf68c8f84a5e2567

9 years agosan driver: don't use relative Python import
Victor Stinner [Fri, 12 Jun 2015 11:10:41 +0000 (13:10 +0200)]
san driver: don't use relative Python import

Replace relative import with absolute import. Relative imports don't
work on Python 3 anymore.

Blueprint cinder-python3
Change-Id: Ie27ee7d8734c59d0739b8e1a2ecc369801d56cf7

9 years agoMerge "Replace it.next() with next(it) for py3 compat"
Jenkins [Fri, 12 Jun 2015 10:00:52 +0000 (10:00 +0000)]
Merge "Replace it.next() with next(it) for py3 compat"

9 years agoMerge "NetApp E-Series driver: Remove caching logic"
Jenkins [Fri, 12 Jun 2015 04:54:23 +0000 (04:54 +0000)]
Merge "NetApp E-Series driver: Remove caching logic"

9 years agoMerge "Updated from global requirements"
Jenkins [Fri, 12 Jun 2015 04:05:21 +0000 (04:05 +0000)]
Merge "Updated from global requirements"

9 years agoMerge "EMC ScaleIO Cinder Driver"
Jenkins [Fri, 12 Jun 2015 03:30:20 +0000 (03:30 +0000)]
Merge "EMC ScaleIO Cinder Driver"

9 years agoMerge "Re-add the StorPool distributed storage driver"
Jenkins [Fri, 12 Jun 2015 01:49:32 +0000 (01:49 +0000)]
Merge "Re-add the StorPool distributed storage driver"

9 years agoImplement Cinder Volume driver for HGST Solutions
Earle F. Philhower, III [Thu, 28 May 2015 22:03:47 +0000 (15:03 -0700)]
Implement Cinder Volume driver for HGST Solutions

Enables native support for HGST Solutions software Spaces as
Cinder volumes or snapshots.

Each Cinder Volume or Snapshot is mapped to a single HGST Space.
This space may be named differently from the actual volume/snap ID
and so we store the Space Name<->ID mapping in the volume provider_id.
Snapshots are not supported with the current HGST Solutions
software, so they are implemented as heavyweight copies in the
driver.

All Spaces are made visible on the Cinder host for speed of access,
and only the spaces requested by Nova instances are actually made
visible on other members of the cluster.

Not all nodes need SSD storage to take advantage of these volumes,
cinder.conf entries specify which nodes share their local SSDs.

Prerequisites:
HGST Solutions is a software-SAN-like package which allows local
SSDs in a cluster to be combined into a single storage pool.
The driver has a series of configuration options which must be set
in the cinder.conf, prefixed with hgst_*.
Nodes should have the HGST software installed and connected to the
HGST domain prior to rolling out Nova nodes using this storage.

Additional patches required for full functionality (being tracked
under the same blueprint):
OS-brick patch @ https://review.openstack.org/#/c/186588/
Nova patch @ https://review.openstack.org/#/c/186594/
Nova patch required until os-brick<->nova connection finalized
in https://review.openstack.org/#/c/175569/

Change-Id: Ie0ff03856edd4b5610f4412951ea7c970ad63c8c
Implements: blueprint add-volume-driver-hgst-solutions

9 years agoVolume manager should set filter_function and goodness_function
Daniel Wilson [Wed, 10 Jun 2015 21:32:49 +0000 (14:32 -0700)]
Volume manager should set filter_function and goodness_function

If a user defines a filter_function or goodness_function in their cinder.conf
file the scheduler should use that function. This change appends those
functions to volume_stats if the driver has not specified them.

Change-Id: I76f90aa3c1bda7564185d8e130926af7d0827e0e
Closes-Bug: #1458061

9 years agoMerge "Dell SC: Expanded comments and update var names"
Jenkins [Thu, 11 Jun 2015 18:08:47 +0000 (18:08 +0000)]
Merge "Dell SC: Expanded comments and update var names"

9 years agoReplace it.next() with next(it) for py3 compat
Victor Stinner [Wed, 10 Jun 2015 12:55:52 +0000 (14:55 +0200)]
Replace it.next() with next(it) for py3 compat

The Python 2 next() method of iterators was renamed to __next__() on
Python 3. Use the builtin next() function instead which works on Python
2 and Python 3.

This patch was generated by the next operation of the sixer tool:
https://pypi.python.org/pypi/sixer

Manual changes:

* cinder/tests/unit/test_cmd.py: use "tpgs = iter([tpg])" instead of
  using a magic mock for tpgs

Blueprint cinder-python3
Change-Id: I261f8cda231d80910f27b9c1329f1d43ccdd77b6

9 years agoUse six to fix imports on Python 3
Victor Stinner [Mon, 25 May 2015 14:56:46 +0000 (16:56 +0200)]
Use six to fix imports on Python 3

Replace Python 2 imports with six.moves import to make code compatible
with Python 2 and Python 3.

Replaced imports:

* BaseHTTPServer
* __builtin__
* cookielib
* httplib

This patch was generated by the six_moves operation of the sixer tool
version 0.4:
https://pypi.python.org/pypi/sixer

Manual changes:

* Disable pylint warnings on the HTTPSConnection classes because pylint
  doesn't support importing from six.moves yet, see:
  https://bitbucket.org/logilab/pylint/issue/550/

Blueprint cinder-python3
Change-Id: Ide6d4e3480f2c0a7eb4500aa88affe152ecc0401

9 years agoNetApp E-Series: Add Fibre Channel Support
Alex Meade [Fri, 1 May 2015 16:56:48 +0000 (12:56 -0400)]
NetApp E-Series: Add Fibre Channel Support

The NetApp driver for E-series product lines currently support iSCSI. This
patch adds Fibre Channel support to the E-Series driver. This driver reuses
the same functionality as the E-Series iSCSI driver except for the
initialize_connection and terminate_connection driver methods which make
full use of Cinder's FibreChannel zone manager.

DocImpact
Implements blueprint: add-fibre-channel-support-to-netapp-eseries
Co-Authored-By: Alex Meade <mr.alex.meade@gmail.com>
Co-Authored-By: Yogesh Kshirsagar <ykshirsa@netapp.com>
Change-Id: I130f473aaa27ace4cd16a98f75c797aa967715b3

9 years agoNetApp E-Series: Refactor class structure for FC
Alex Meade [Tue, 28 Apr 2015 01:19:36 +0000 (21:19 -0400)]
NetApp E-Series: Refactor class structure for FC

This patch moves classes to mimic the NetApp ONTAP drivers class
structure by creating a library module, making the iSCSI driver
a thin layer. This way the E-Series FC driver can be added in a
similar manner.

Change-Id: I8b4ed6a7b2d43cd93da5c340646405e3041a312a

9 years agoNetApp E-Series driver: Remove caching logic
Alex Meade [Sun, 15 Feb 2015 22:01:54 +0000 (17:01 -0500)]
NetApp E-Series driver: Remove caching logic

This patch removes unnecessary API caching logic from the NetApp
E-Series driver. The cache, represented as the _objects dictionary,
is refreshed nearly every API call and therefore provides no value.
This refactor is also preparation for refactoring the class structure
so we can easily add an E-Series Fibre Channel driver.

Change-Id: I5a1a8c9bab3abff58a876a1da3575b1c329fdfba

9 years agoUse six.reraise() for Python 3 compatibility
Victor Stinner [Wed, 10 Jun 2015 12:49:59 +0000 (14:49 +0200)]
Use six.reraise() for Python 3 compatibility

Replace "raise a, b, c" with "six.reraise(a, b, c)" to make the Cinder
code compatible with Python 3.

This patch was generated by the raise operation of the sixer tool:
https://pypi.python.org/pypi/sixer

Blueprint cinder-python3
Change-Id: Iab9e12763e2a7641fc2671acdd4f2ff84be584f3

9 years agoUpdated from global requirements
OpenStack Proposal Bot [Thu, 11 Jun 2015 12:33:15 +0000 (12:33 +0000)]
Updated from global requirements

Change-Id: I8dd1e2580be9642837e5b1f4b70b3cd22ec7c321

9 years agoMerge "Replace urllib and urllib2 with six.moves.urllib"
Jenkins [Thu, 11 Jun 2015 11:37:59 +0000 (11:37 +0000)]
Merge "Replace urllib and urllib2 with six.moves.urllib"

9 years agoMerge "Dispose DB connections between backend proc starts"
Jenkins [Thu, 11 Jun 2015 04:01:44 +0000 (04:01 +0000)]
Merge "Dispose DB connections between backend proc starts"

9 years agoMerge "Replace unicode with six.text_type"
Jenkins [Wed, 10 Jun 2015 22:46:36 +0000 (22:46 +0000)]
Merge "Replace unicode with six.text_type"

9 years agoMerge "Switch from MySQL-python to PyMySQL"
Jenkins [Wed, 10 Jun 2015 22:41:29 +0000 (22:41 +0000)]
Merge "Switch from MySQL-python to PyMySQL"

9 years agoMerge "Add iSCSI protocol support for IBM FlashSystem"
Jenkins [Wed, 10 Jun 2015 20:14:53 +0000 (20:14 +0000)]
Merge "Add iSCSI protocol support for IBM FlashSystem"

9 years agoAdd secondary account capability to SolidFire
John Griffith [Mon, 1 Jun 2015 20:04:15 +0000 (20:04 +0000)]
Add secondary account capability to SolidFire

The SolidFire Cluster has a limit of 2K volumes per SolidFire
account. Given that the SolidFire account maps directly to the
OpenStack tenant this can be a limitation for some large scale
deployments that may have tenants that wish to create more than
2K volumes in their OpenStack cloud.

This patch introduces the concept of a secondary account for
an OpenStack tenant on the SolidFire backend.

If an OpenStack tenant has more than 2K volumes, and wishes to
create additional volumes, we can create a secondary/supplemental
SolidFire account that is owned by the same OpenStack tenant.

If they wish to go beyond 4K volumes... well, SolidFire V3
driver will deal with that, for now 4K is a line in the sand.

While working on unit tests, we again move to using mock
opportunistically.  In addition, a few tests that either
weren't actually testing anything, or were just a fake-loop
that didn't actually work have been removed:

NOTE:
This patch is a temporary for backporting purposes, we are
still planning a refresh in Liberty of the driver.

Change-Id: I1c8a14e6bea1b6f47d10777c56c5af42b63e2dae

9 years agoMerge "Add missing unit test for goodness weigher"
Jenkins [Wed, 10 Jun 2015 18:44:28 +0000 (18:44 +0000)]
Merge "Add missing unit test for goodness weigher"

9 years agoReplace urllib and urllib2 with six.moves.urllib
Victor Stinner [Tue, 9 Jun 2015 13:37:02 +0000 (15:37 +0200)]
Replace urllib and urllib2 with six.moves.urllib

The Python 2 urllib and urllib2 modules changed a lot in Python 3. On
Python 3, the urllib functions are now grouped into submodules of
urllib: urllib.parse, urllib.error, etc. The urllib2 has been removed.
Replace urllib and urllib2 with six.moves.urllib to make the Cinder code
compatible with Python 2 and Python 3.

The new code now looks like Python 3 code (ex: "urllib.parse.urlsplit"),
but it also works on Python 2.

Replace also "import six.moves.urllib.parse as urlparse" with "from
six.moves import urllib" to uniformize the code:
"urlparse.urlsplit(href)" becomes "urllib.parse.urlsplit(href)".

This patch was generated by the urllib operation of the sixer tool version 0.4:
https://pypi.python.org/pypi/sixer

Manual changes:

* Add a try/except ImportError to get the parse_http_list function
  in cinder/api/urlmap.py
* Import the socket module instead of using urllib2.socket
  in cinder/volume/drivers/huawei/rest_common.py
* test_nimble.py: replace NIMBLE_URLLIB2 value with
  'six.moves.urllib.request'
* Remove "from six.moves.urllib import parse as urlparse", it was
  replaced with urllib.parse from six.moves.
* Reformat to respect the 80 columns constraint

Change-Id: Ibd1e7bc83bbbd93a3634207fb277d25ef1b8a086

9 years agoReplace unicode with six.text_type
Victor Stinner [Wed, 10 Jun 2015 12:39:37 +0000 (14:39 +0200)]
Replace unicode with six.text_type

The "unicode" type was renamed to "str" in Python 3. Use six.text_type
to make Cinder compatible with Python 3.

The initial patch was generated by the unicode operation of sixer tool:
https://pypi.python.org/pypi/sixer

Manual changes:

* cinder/volume/drivers/san/hp/hp_3par_iscsi.py:
  replace "isinstance(value, str) or isinstance(value, unicode)"
  with "isinstance(value, six.string_types)"
* cinder/volume/drivers/san/hp/hp_3par_iscsi.py:
  bump the version to 2.0.17
* Revert changes on hacking: hacking explicitly searchs the "unicode"
  pattern for Python 2. Hacking may require more work to be ported to
  Python 3.
* Revert changes on docstrings and strings

Change-Id: I68ea8a81a66c9377b2fe20e3f545dce8b691c398

9 years agoUse correct rtslib namespace for newer versions
Gorka Eguileor [Wed, 10 Jun 2015 09:57:07 +0000 (11:57 +0200)]
Use correct rtslib namespace for newer versions

For rtslib-fb versions 2.1.52 and newer its own namespace (rtslib_fb) is
recommended instead of the older one (rtslib).

On versions with this new namespace a deprecation warning will be
thrown: "'rtslib' package name for rtslib-fb is deprecated, please
instead import 'rtslib_fb'"

This patch uses this new namespace when possible and falls back to the
older namespace if not.

Change-Id: I984105458da4d7b8736bf7c83919cbe5feb9c85a
Closes-Bug: #1460814

9 years agoMerge "Merge tag '2014.2'"
Jenkins [Wed, 10 Jun 2015 05:24:36 +0000 (05:24 +0000)]
Merge "Merge tag '2014.2'"

9 years agoMerge "Add 'source-id' and 'source-name' support in VNX driver"
Jenkins [Wed, 10 Jun 2015 05:15:23 +0000 (05:15 +0000)]
Merge "Add 'source-id' and 'source-name' support in VNX driver"

9 years agoMerge "Merge tag '2015.1.0'"
Jenkins [Wed, 10 Jun 2015 01:37:25 +0000 (01:37 +0000)]
Merge "Merge tag '2015.1.0'"

9 years agoDispose DB connections between backend proc starts
Jay S. Bryant [Tue, 9 Jun 2015 22:10:18 +0000 (17:10 -0500)]
Dispose DB connections between backend proc starts

Currently we do not dispose the existing DB pools before
forking off additional storage backend processes.  This can
result in timing issues and DB errors.

This change simply ensures that we do a dispose_engine() in
the loop where we are forking off processes for the storage
backends.

Change-Id: I4ce67e1ce7853fafe5318393482d841583e42098
Closes-bug: 1463580

9 years agoEMC ScaleIO Cinder Driver
Xing Yang [Sat, 16 May 2015 04:31:51 +0000 (00:31 -0400)]
EMC ScaleIO Cinder Driver

This patch adds a Cinder volume driver for EMC ScaleIO product.
The ScaleIO driver supports the following Cinder features:
* Create/delete volume
* Create/delete snapshot
* Create volume from snapshot
* Create cloned volume
* Extend volume

implements blueprint scaleio-cinder-volume-driver

Change-Id: I7007e4ec36586d98cbf53e4f322ab25aa9b414c6

9 years agoMerge "remotefs: Fix doc string for _create_snapshot"
Jenkins [Tue, 9 Jun 2015 20:13:04 +0000 (20:13 +0000)]
Merge "remotefs: Fix doc string for _create_snapshot"

9 years agoRe-integrate Oracle iSCSI Cinder driver
Diem Tran [Tue, 28 Apr 2015 18:33:14 +0000 (14:33 -0400)]
Re-integrate Oracle iSCSI Cinder driver

This reverts commit c742566.

The Oracle iSCSI Cinder driver now has a working CI and is ready to be re-integrated.

Change-Id: I0522dc054a46d62f912df1694d54c0083c5f4f7e

9 years agoDell SC: Expanded comments and update var names
Tom Swanson [Tue, 2 Jun 2015 19:02:33 +0000 (14:02 -0500)]
Dell SC: Expanded comments and update var names

Additional comments have been added to help explain what is happening
in the driver. This revolves mostly around dell_storagecenter_api.py
which is not an obvious file for a reviewer to review. Hopefully
additional comments will aid this.

Updated single character variable names except for r which is the
REST calls return throughout the code by convention.

Reworked create_volume for clarity. No functional changes.

Changed two obvious error messages from LOG.debug to LOG.error.

Driver version changed to 1.0.2.

Change-Id: Ib41d9bc45d20af4fc179b691549fe52f8bd6ec6d

9 years agoMerge tag '2015.1.0'
Jeremy Stanley [Tue, 9 Jun 2015 17:37:43 +0000 (17:37 +0000)]
Merge tag '2015.1.0'

This is a null-merge of the 2015.1.0 release tag back into the master
branch so that the 2015.1.0 tag will appear in the git commit history of
the master branch. It contains no actual changes to the master branch,
regardless of how our code review system's UI represents it. Please
ask in #openstack-infra if you have any questions, and otherwise try
to merge this as quickly as possible to avoid later conflicts on the
master branch.

Change-Id: I76a736bd12372cff6c7fb3936b0eeb520a96ba08

9 years agoMerge tag '2014.2'
Jeremy Stanley [Tue, 9 Jun 2015 16:31:41 +0000 (16:31 +0000)]
Merge tag '2014.2'

This is a null-merge of the 2014.2 release tag back into the
master branch. It contains no actual changes to the master branch,
regardless of how our code review system's UI represents it. Please
ask in #openstack-infra if you have any questions, and otherwise try
to merge this as quickly as possible to avoid later conflicts on the
master branch.

Change-Id: I16744c997f71f3680b2e12aaee8631f0e6b6b3d5

9 years agoMerge "Fixes 3PAR snapshot failure with optional params"
Jenkins [Tue, 9 Jun 2015 14:10:55 +0000 (14:10 +0000)]
Merge "Fixes 3PAR snapshot failure with optional params"

9 years agoRe-add the StorPool distributed storage driver
Peter Penchev [Thu, 28 May 2015 13:32:15 +0000 (16:32 +0300)]
Re-add the StorPool distributed storage driver

Re-add the driver as it was removed, then make the following
six changes (bugfixes and updates):

1. Move the testcase to cinder/tests/unit/

2. Pass the H402 docstring check

Add a period at the end of a single-line docstring.

3. Fall back to the configured template

If the volume type does not specify a template, properly fall back to
the default template from the configuration instead of going with none.

4. Return volume object in _attach_volume()

Catch up with rev. bbf1b49 of volume/driver.py.

5. Use the ABC metaclasses

Declare the existing StorPool volume driver functionality by
deriving from the appropriate driver.*VD classes.

6. Implement volume retyping and migrations

initialize_connection(): store the StorPool client ID in the connection
data to be used by the "StorPool" Brick connector.

validate_connector(): actually check the connector data for a valid
hostname defined in the StorPool configuration.

_storpool_client_id(): new method to get the numeric ID of a host in
the StorPool cluster from the /etc/storpool.conf file.

_attach_volume(), _detach_volume(): if the "remote" flag is set, pass
the request on to the default Cinder driver implementation; it knows
how to make remote volumes accessible.

_attach_volume(), _detach_volume(): support the case when these methods
are invoked from a method that is not overridden in the StorPool Cinder
driver - create a storpool.spopenstack.AttachDB attachment structure
and destroy it upon detaching.

ensure_export(): add a stub method, the actual work is handled by
the Nova volume attachment driver.

retype(): new method: handle a StorPool-to-StorPool retyping where
at most the volume's StorPool template or replication is changed.
For anything else, return False to indicate an unsupported request so
that a full volume migration is triggered.

update_migrated_volume(): rename the StorPool volume to correspond to
the real Cinder volume's name.

Add the StorPoolConfigurationMissing and StorPoolConfigurationInvalid
exceptions.

Flesh out the validate_connector() and initialize_connection() unit tests.

Implements: blueprint storpool-block-driver
Implements: blueprint abc-driver-update
Implements: blueprint volume-retype
Change-Id: I5c29cb5f679b08b8db664c9f20cf24cbcd7c6c60

9 years agoAdd iSCSI protocol support for IBM FlashSystem
Edwin Wang [Sat, 13 Dec 2014 20:42:09 +0000 (04:42 +0800)]
Add iSCSI protocol support for IBM FlashSystem

This change implements iSCSI protocol for Cinder driver.
It is inherited from driver.ISCSIDriver and flashsystem.py.
We will separate flashsystem.py into common and FC protocol.

iSCSI test result:
https://bugs.launchpad.net/cinder/+bug/1406442

Implements: blueprint ibm-flashsystem-driver-iscsi
Change-Id: Ie6cc2315e9d770302fcdfb63873da1b0dea12bda

9 years agoMerge "ConsistencyGroup: Return 400 instead of 500 for invalid body"
Jenkins [Mon, 8 Jun 2015 17:34:35 +0000 (17:34 +0000)]
Merge "ConsistencyGroup: Return 400 instead of 500 for invalid body"

9 years agoMerge "Remove unused find_attribute_or_element()"
Jenkins [Mon, 8 Jun 2015 17:34:22 +0000 (17:34 +0000)]
Merge "Remove unused find_attribute_or_element()"

9 years agoFixes 3PAR snapshot failure with optional params
Kurt Martin [Mon, 8 Jun 2015 17:26:20 +0000 (10:26 -0700)]
Fixes 3PAR snapshot failure with optional params

Create snapshot fails when HP3PAR hp3par_snapshot_retention and/or
hp3par_snapshot_expiration parameters were set in cinder.conf. The
params were being sent to the backend as strings instead on integers.

Change-Id: I24d0bc133c48b47a27f5c112e9cd924dd0fa3bcc
Closes-bug: #1461640

9 years agoMerge "Prophetstor driver needs to return snapshot objects"
Jenkins [Mon, 8 Jun 2015 15:39:00 +0000 (15:39 +0000)]
Merge "Prophetstor driver needs to return snapshot objects"

9 years agoConsistencyGroup: Return 400 instead of 500 for invalid body
PranaliDeore [Mon, 25 May 2015 09:14:26 +0000 (02:14 -0700)]
ConsistencyGroup: Return 400 instead of 500 for invalid body

If invalid request body is passed to the delete
consistencygroups api, then it returns 500 error.

Validated request body using 'is_valid_body()' method
and also added validation to check 'force' is of bool type.

APIImpact

Closes-Bug: #1458868
Change-Id: Iaaa4409233bfed6ae3e67be5df8cc5ada28e054f

9 years agoAdd 'source-id' and 'source-name' support in VNX driver
peter_wang [Fri, 29 May 2015 00:38:56 +0000 (20:38 -0400)]
Add 'source-id' and 'source-name' support in VNX driver

Currently, VNX driver only supports 'id' as the id-type in manage/unmanage volume.
With release of new version python-cinderclient, 'source-id' and 'source-name' are
preferred id-type when using cinder manage.

This fix is to add 'source-id' and 'source-name' support
and obsolete the self-defined 'id' support.

Change-Id: Ia0619123ff56e44da98c4f12c554474c8fe6093c
closes-bug: 1450280

9 years agoMerge "Dell SC: Added support for alternate iscsi portals"
Jenkins [Sat, 6 Jun 2015 03:35:37 +0000 (03:35 +0000)]
Merge "Dell SC: Added support for alternate iscsi portals"

9 years agoMerge "Revert "Adds drivers for DotHill Storage Arrays.""
Jenkins [Sat, 6 Jun 2015 01:02:52 +0000 (01:02 +0000)]
Merge "Revert "Adds drivers for DotHill Storage Arrays.""

9 years agoMerge "Handle ineffective backup compression"
Jenkins [Sat, 6 Jun 2015 00:16:29 +0000 (00:16 +0000)]
Merge "Handle ineffective backup compression"

9 years agoRevert "Adds drivers for DotHill Storage Arrays."
Mike Perez [Fri, 5 Jun 2015 23:14:33 +0000 (16:14 -0700)]
Revert "Adds drivers for DotHill Storage Arrays."

Coordinating with the DotHill folks on some corrections that need to be
made for this patch.

This reverts commit f09c4b1aa0d76d5063d63b12a597da7fead0b93e.

Change-Id: I24a8892ae97b7d874fdfeab50065577f7857c8c6

9 years agoMerge "Windows SMBFS: Fix image resize errors during volume creation"
Jenkins [Fri, 5 Jun 2015 22:57:00 +0000 (22:57 +0000)]
Merge "Windows SMBFS: Fix image resize errors during volume creation"

9 years agoMerge "Fix exception parameter name"
Jenkins [Fri, 5 Jun 2015 22:25:01 +0000 (22:25 +0000)]
Merge "Fix exception parameter name"