]> review.fuel-infra Code Review - openstack-build/cinder-build.git/log
openstack-build/cinder-build.git
8 years agoChange the format of some inconsistent docstring
sparkliu [Wed, 16 Dec 2015 17:49:43 +0000 (09:49 -0800)]
Change the format of some inconsistent docstring

Replace all the ":return:" with ":returns:"
Replace all the ":returns " wtih ":returns:"
Replace all the ":returns :" with ":returns:"

Add the changes for ":raise" also, change ":raise" to ":raise:"

Change-Id: Ib29fbb583dc2dad5d084c44d4172d6ddfa5f7458

8 years agoMerge "Robustify writing iscsi target persistence file"
Jenkins [Thu, 3 Dec 2015 08:21:23 +0000 (08:21 +0000)]
Merge "Robustify writing iscsi target persistence file"

8 years agoMerge "Add a FakeGateDriver"
Jenkins [Thu, 3 Dec 2015 05:12:17 +0000 (05:12 +0000)]
Merge "Add a FakeGateDriver"

8 years agoMerge "LIO: Handle initiator IQNs as case insensitive"
Jenkins [Thu, 3 Dec 2015 03:00:38 +0000 (03:00 +0000)]
Merge "LIO: Handle initiator IQNs as case insensitive"

8 years agoRobustify writing iscsi target persistence file
Mitsuhiro Tanino [Fri, 25 Sep 2015 16:38:23 +0000 (10:38 -0600)]
Robustify writing iscsi target persistence file

With the current code, it's possible to end up with a zero-size
persistence file (or even corruption of the contents) if the
process gets killed or the system takes a power outage.

Switch to a "write to temp file and rename" model for writing the
persistence file.  This will make it more robust against unclean
process termination or unclean system shutdown.

Change-Id: Ic4fdb5a9f6f622b2ab9658f7d4206e4c8ca55046
Closes-Bug: #1499795

8 years agoMerge "Fix dictionary key error"
Jenkins [Wed, 2 Dec 2015 23:18:55 +0000 (23:18 +0000)]
Merge "Fix dictionary key error"

8 years agoMerge "Port Windows drivers to Python 3"
Jenkins [Wed, 2 Dec 2015 23:11:36 +0000 (23:11 +0000)]
Merge "Port Windows drivers to Python 3"

8 years agoLIO: Handle initiator IQNs as case insensitive
Eric Harney [Tue, 1 Dec 2015 23:14:17 +0000 (18:14 -0500)]
LIO: Handle initiator IQNs as case insensitive

If there is a mismatch in case between the stored
initiator IQN in the LIO ACL vs. the IQN provided
in a later call, rtstool would fail to find the
existing ACL.

Compare IQNs in a case insensitive manner to ensure
they will always match as intended.  (Refer to RFC
3720 section 3.2.6.1 for details on this.)

Closes-Bug: #1522053

Change-Id: I6f535f3f4fbfcbbb49da30cffb08d17b3cac778a

8 years agoFix dictionary key error
Tomas Hancock [Wed, 2 Dec 2015 15:07:05 +0000 (15:07 +0000)]
Fix dictionary key error

The key 'multipath' was being referenced in the 'connector' dictionary
in initialize_connection(), even though the key was not always set.

Change-Id: Ia3c7640a24ebe9bedec3402f6cefb7e457c66ecd
Closes-Bug: #1522062

8 years agoMerge "Imported Translations from Zanata"
Jenkins [Wed, 2 Dec 2015 16:15:09 +0000 (16:15 +0000)]
Merge "Imported Translations from Zanata"

8 years agoMerge "Fix typo in LIO terminate_connection error msg"
Jenkins [Wed, 2 Dec 2015 11:47:50 +0000 (11:47 +0000)]
Merge "Fix typo in LIO terminate_connection error msg"

8 years agoMerge "Delete unused codes in rbd.retype"
Jenkins [Wed, 2 Dec 2015 10:36:28 +0000 (10:36 +0000)]
Merge "Delete unused codes in rbd.retype"

8 years agoImported Translations from Zanata
OpenStack Proposal Bot [Wed, 2 Dec 2015 06:26:12 +0000 (06:26 +0000)]
Imported Translations from Zanata

For more information about this automatic import see:
https://wiki.openstack.org/wiki/Translations/Infrastructure

Change-Id: I88351b055df8fe0f973b9cf48b1276981ef07a2e

8 years agoMerge "Fix the bug of can't get the desired image info"
Jenkins [Wed, 2 Dec 2015 04:39:27 +0000 (04:39 +0000)]
Merge "Fix the bug of can't get the desired image info"

8 years agoDelete unused codes in rbd.retype
LisaLi [Thu, 12 Nov 2015 06:08:11 +0000 (06:08 +0000)]
Delete unused codes in rbd.retype

Before rbd.retype is called, encryption and host have
been checked so that encryptions are different and
host are same.
Meanwhile, as extra_spec is not used during the
rbd driver. As a result, even if they are different
rbd.retype can still return True which means no need
to do further migration.

Change-Id: Id025a51631676389203b8e3892a5826c834105ca
Closes-Bug: #1515493
Closes-Bug: #1514775

8 years agoMerge "EMC VMAX - Change naming convention for MV and SG for FAST"
Jenkins [Wed, 2 Dec 2015 02:38:22 +0000 (02:38 +0000)]
Merge "EMC VMAX - Change naming convention for MV and SG for FAST"

8 years agoMerge "Add some missing fields to Volume object"
Jenkins [Wed, 2 Dec 2015 02:38:11 +0000 (02:38 +0000)]
Merge "Add some missing fields to Volume object"

8 years agoMerge "Sheepdog: Optimization of error handling"
Jenkins [Wed, 2 Dec 2015 02:38:00 +0000 (02:38 +0000)]
Merge "Sheepdog: Optimization of error handling"

8 years agoMerge "Add retype in lvm driver"
Jenkins [Wed, 2 Dec 2015 02:37:49 +0000 (02:37 +0000)]
Merge "Add retype in lvm driver"

8 years agoMerge "Add Mitaka-1 release notes"
Jenkins [Wed, 2 Dec 2015 02:37:36 +0000 (02:37 +0000)]
Merge "Add Mitaka-1 release notes"

8 years agoMerge "xio: fix regression in authentication"
Jenkins [Wed, 2 Dec 2015 01:42:11 +0000 (01:42 +0000)]
Merge "xio: fix regression in authentication"

8 years agoMerge "Cleanup orphaned code in sqlalchemy API"
Jenkins [Wed, 2 Dec 2015 00:14:27 +0000 (00:14 +0000)]
Merge "Cleanup orphaned code in sqlalchemy API"

8 years agoMerge "Take into consideration races in XtremIOClient3"
Jenkins [Tue, 1 Dec 2015 20:43:32 +0000 (20:43 +0000)]
Merge "Take into consideration races in XtremIOClient3"

8 years agoAdd Mitaka-1 release notes
Sean McGinnis [Mon, 30 Nov 2015 19:50:01 +0000 (13:50 -0600)]
Add Mitaka-1 release notes

This adds release notes for changes up to the Mitaka-1
milestone for reno release note generation.

Change-Id: I8cd65b41994631d96c5d4cf4c0531a3c0f74149f

8 years agoMerge "Update compression license check"
Jenkins [Tue, 1 Dec 2015 18:27:34 +0000 (18:27 +0000)]
Merge "Update compression license check"

8 years agoMerge "Imported Translations from Zanata"
Jenkins [Tue, 1 Dec 2015 17:45:18 +0000 (17:45 +0000)]
Merge "Imported Translations from Zanata"

8 years agoxio: fix regression in authentication
Victor Stinner [Tue, 1 Dec 2015 10:00:03 +0000 (11:00 +0100)]
xio: fix regression in authentication

The change I75a5dee2fd1f8cf45dbf416b0353736a43efd8e8 replaced
base64.encodestring(auth_key)[:-1] with
oslo_serialization.base64.encode_as_text(auth_key)[:-1]. It's wrong
because base64.encodestring() adds '\n' to the output, wheras
oslo_serialization.base64.encode_as_text() doesn't add '\n'.

This change removes '[:-1]' to strip the newline, it's no more
needed.

Partial-Implements: blueprint cinder-python3
Change-Id: Ib015a850d7cc2e1259518fecfe66c836002b28d9

8 years agoAdd some missing fields to Volume object
Szymon Wroblewski [Thu, 29 Oct 2015 11:45:06 +0000 (12:45 +0100)]
Add some missing fields to Volume object

Volume object was missing fields that were defined on
the SQLAlchemy model as relationships or backrefs such as
consistencygroup, glance_metadata and snapshots.
This commit adds fields representing these relationships.

Partial-Bug: 1509012
Co-Authored-By: Szymon Borkowski <szymon.borkowski@intel.com>
Change-Id: I2f4cae34833b6b97278adf2abb52cef44405c093

8 years agoMerge "Cleanup orphaned code from ceph backup driver"
Jenkins [Tue, 1 Dec 2015 14:35:55 +0000 (14:35 +0000)]
Merge "Cleanup orphaned code from ceph backup driver"

8 years agoImported Translations from Zanata
OpenStack Proposal Bot [Tue, 1 Dec 2015 06:54:03 +0000 (06:54 +0000)]
Imported Translations from Zanata

For more information about this automatic import see:
https://wiki.openstack.org/wiki/Translations/Infrastructure

Change-Id: I3b3c0a26c4b16174e22b7a4d5b17a9b9195693cd

8 years agoMerge "Optimize "open" method with context manager"
Jenkins [Tue, 1 Dec 2015 05:48:25 +0000 (05:48 +0000)]
Merge "Optimize "open" method with context manager"

8 years agoMerge "Fix ZFSSA drivers' local cache bugs"
Jenkins [Tue, 1 Dec 2015 05:35:00 +0000 (05:35 +0000)]
Merge "Fix ZFSSA drivers' local cache bugs"

8 years agoMerge "Remove db access in VNX driver"
Jenkins [Tue, 1 Dec 2015 03:55:22 +0000 (03:55 +0000)]
Merge "Remove db access in VNX driver"

8 years agoMerge "Declare multiattach is True in Dell Eqlx driver"
Jenkins [Tue, 1 Dec 2015 03:36:25 +0000 (03:36 +0000)]
Merge "Declare multiattach is True in Dell Eqlx driver"

8 years agoAdd retype in lvm driver
LisaLi [Fri, 13 Nov 2015 02:09:03 +0000 (02:09 +0000)]
Add retype in lvm driver

During retype operation, it makes sure that volume
types have same encryption, and same backend qos
before moving on.

In lvm driver, no extra_spec and qos are used. As
a result, if retype a volume to same host, it just
needs to return True, and no needs to migrate the
volume.

Change-Id: Id6273046424190ee3e36dabd4bfcf69466bf23ad
Closes-Bug: #1515840

8 years agoMerge "Updated from global requirements"
Jenkins [Tue, 1 Dec 2015 00:32:45 +0000 (00:32 +0000)]
Merge "Updated from global requirements"

8 years agoMerge "Force releasenotes warnings to be treated as errors"
Jenkins [Mon, 30 Nov 2015 18:08:14 +0000 (18:08 +0000)]
Merge "Force releasenotes warnings to be treated as errors"

8 years agoMerge "Improve metadata update operations"
Jenkins [Mon, 30 Nov 2015 16:38:43 +0000 (16:38 +0000)]
Merge "Improve metadata update operations"

8 years agoTake into consideration races in XtremIOClient3
Gorka Eguileor [Mon, 30 Nov 2015 11:04:58 +0000 (12:04 +0100)]
Take into consideration races in XtremIOClient3

When working with FC and xtremio is using XtremIOClient3 on FC's
terminate_connection we can get VolumeBackendAPIException saying a
resource could not be found when we shouldn't.

The cause is that Client3 is open to race conditions on 2 methods,
find_lunmap and num_of_mapped_volumes, where a list of mappings is first
retrieved and then we iterate this list to retrieved additional info on
the mappings.

The race would happen if one of the mappings is removed from the backend
in the time it takes to retrieve the additional info after we have
retrieved the list.

This patch fixes this issue by ignoring any mappings that have been
removed and are now NotFound when retrieving additional information for
a mapping in those 2 methods.

This patch also fixes this kind of race problems on volume creation
since it uses find_lumap method.

Closes-Bug: #1521143
Change-Id: I40831e04093ff475395870a333211dd0cb60440f

8 years agoMerge "Add atomic conditional updates to objects"
Jenkins [Mon, 30 Nov 2015 15:42:30 +0000 (15:42 +0000)]
Merge "Add atomic conditional updates to objects"

8 years agoOptimize "open" method with context manager
xiexs [Sat, 28 Nov 2015 05:53:54 +0000 (13:53 +0800)]
Optimize "open" method with context manager

Replace the classic open() with opening context manager to open
files which is in the create_iscsi_target methods of volume targets.

Change-Id: I12e19801a21b1279308983fd0257dae9c9653641

8 years agoUpdated from global requirements
OpenStack Proposal Bot [Sun, 29 Nov 2015 02:32:40 +0000 (02:32 +0000)]
Updated from global requirements

Change-Id: Ie81ad596ae6b473c90e01f91f293895532ca0756

8 years agoSheepdog: Optimization of error handling
zhangsong [Sun, 15 Nov 2015 15:46:23 +0000 (23:46 +0800)]
Sheepdog: Optimization of error handling

Since each place where _run_dog() is called needs to handle a
connection error, it would be more efficient to handle it inside
the _run_dog() method.

Change-Id: Ib1eb3044e583b46a8a42f820bf780600415122e8

8 years agoFix the bug of can't get the desired image info
zhangsong [Fri, 13 Nov 2015 16:44:53 +0000 (00:44 +0800)]
Fix the bug of can't get the desired image info

When we use 'qemu-img info' command to get image info, some kinds
of image may show an 'unavailable' disk size. For example:

$qemu-img info sheepdog:volume-1af1afa0-7820-4063-9b90-4fa6161a74a9
image: sheepdog:volume-1af1afa0-7820-4063-9b90-4fa6161a74a9
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: unavailable

$qemu-img info -f rbd rbd:data/foo
image: rbd:data/foo
file format: rbd
virtual size: 10G (10737418240 bytes)
disk size: unavailable
cluster_size: 4194304

The current code didn't consider 'unavailable' size, and it will
raise a ValueError in this case. This patch fixed this bug by
adding the judgment of 'unavailable' size.

Change-Id: Ic5f3b80e172baaafc07432319f8aa24bf117b392
Closes-Bug: #1516083

8 years agoMerge "ScaleIO extend volume round up capacity"
Jenkins [Fri, 27 Nov 2015 23:11:37 +0000 (23:11 +0000)]
Merge "ScaleIO extend volume round up capacity"

8 years agoCleanup orphaned code in sqlalchemy API
Sean McGinnis [Fri, 27 Nov 2015 20:12:06 +0000 (14:12 -0600)]
Cleanup orphaned code in sqlalchemy API

There were several methods in the sqlalchemy code that were no longer
being used anywhere. While some of these have potential for being useful,
they are not in use and should not be sitting around the codebase waiting
for someone to need them.

Change-Id: Ic30d27b29d19de5470c9fffadc136988899525ca

8 years agoCleanup orphaned code from ceph backup driver
Sean McGinnis [Fri, 27 Nov 2015 05:25:31 +0000 (23:25 -0600)]
Cleanup orphaned code from ceph backup driver

The method _num_backup_snaps was not being called anywhere in the source.
This removes the unused call from the driver.

Change-Id: Ib094edff6c26a21177405a988f132c3c6c8c9646

8 years agoMerge "Nexenta Edge iSCSI backend driver"
Jenkins [Thu, 26 Nov 2015 17:01:34 +0000 (17:01 +0000)]
Merge "Nexenta Edge iSCSI backend driver"

8 years agoMerge "Update list_replication_targets"
Jenkins [Thu, 26 Nov 2015 16:08:36 +0000 (16:08 +0000)]
Merge "Update list_replication_targets"

8 years agoMerge "RBD: Make snapshot_delete more robust"
Jenkins [Thu, 26 Nov 2015 16:08:15 +0000 (16:08 +0000)]
Merge "RBD: Make snapshot_delete more robust"

8 years agoMerge "Fix quotas issue during volume transfer"
Jenkins [Thu, 26 Nov 2015 15:57:35 +0000 (15:57 +0000)]
Merge "Fix quotas issue during volume transfer"

8 years agoMerge "Hacking Checks for assertTrue/IsNone()"
Jenkins [Thu, 26 Nov 2015 15:54:58 +0000 (15:54 +0000)]
Merge "Hacking Checks for assertTrue/IsNone()"

8 years agoForce releasenotes warnings to be treated as errors
Michał Dulko [Thu, 26 Nov 2015 09:15:32 +0000 (10:15 +0100)]
Force releasenotes warnings to be treated as errors

Change-Id: I03a8071114d8d4042ad143b55860e5562d86b34d

8 years agoRemove db access in VNX driver
Xi Yang [Tue, 27 Oct 2015 04:11:15 +0000 (12:11 +0800)]
Remove db access in VNX driver

DB access should be removed in all CG related
operations. This patch is removing the DB access
in VNX driver.

Change-Id: Ifee0cdcaba41d39500c1ce7aef0d15b2737e6a20
Closes-Bug: 1511663

8 years agoMerge "Remove netaddr useless requirement"
Jenkins [Thu, 26 Nov 2015 05:53:24 +0000 (05:53 +0000)]
Merge "Remove netaddr useless requirement"

8 years agoFix quotas issue during volume transfer
Mitsuhiro Tanino [Fri, 13 Nov 2015 20:01:32 +0000 (15:01 -0500)]
Fix quotas issue during volume transfer

When admin transfers a volume with volume type from
one tenant to another, it correctly updates the quota
for the default values, but does not update for the
volume type values.

This patch fixes the problem to update quotas for
the volume type values.

Change-Id: If444639cea8e74a415220df43fccfb155ca89216
Closes-Bug: #1501855

8 years agoMerge "Support insecure NAS security options in Quobyte"
Jenkins [Thu, 26 Nov 2015 04:39:51 +0000 (04:39 +0000)]
Merge "Support insecure NAS security options in Quobyte"

8 years agoMerge "Revert "Add Scality SRB driver""
Jenkins [Thu, 26 Nov 2015 04:37:34 +0000 (04:37 +0000)]
Merge "Revert "Add Scality SRB driver""

8 years agoMerge "Fix InstanceLocalityFilter scheduler filter"
Jenkins [Thu, 26 Nov 2015 01:40:32 +0000 (01:40 +0000)]
Merge "Fix InstanceLocalityFilter scheduler filter"

8 years agoDeclare multiattach is True in Dell Eqlx driver
wuyuting [Wed, 25 Nov 2015 02:00:44 +0000 (10:00 +0800)]
Declare multiattach is True in Dell Eqlx driver

An Eqlx volume can be attached to multi instances, however,
this feature is not declared in eqlx driver. As a result,
if a user create a multi-attached volume using eqlx as
backend, they will be failed.

In this commit, we declared multiattach is True in eqlx
driver.

Change-Id: Ia8e94e739c2573f1f26d8cb2713a6b851adf9428
Closes-Bug: #1519570

8 years agoNexenta Edge iSCSI backend driver
mikhail [Tue, 24 Feb 2015 16:00:43 +0000 (08:00 -0800)]
Nexenta Edge iSCSI backend driver

Nexenta Edge project supports iSCSI block level storage.
This patch implements a driver for Nexenta Edge iSCSI backend.

DocImpact
Implements: blueprint nexentaedge-iscsi-volume-driver
Change-Id: I82c215ba85e9d49723e792d88d86553b3a75d3ac

8 years agoRBD: Make snapshot_delete more robust
Dirk Mueller [Thu, 29 Jan 2015 13:11:35 +0000 (14:11 +0100)]
RBD: Make snapshot_delete more robust

Since there is no equivalent of a force-snapshot-delete,
the normal snapshot-delete should be more robust to
also handle backend errors. In case the backend does not have
the image snapshot anymore, log an info message and succeed the
operation.

Change-Id: I7fe0878dbc07053ac78272b6998513fafa1c36e8
Closes-Bug: #1415905
Related-Bug: #1361926

8 years agoHacking Checks for assertTrue/IsNone()
Kendall Nelson [Tue, 17 Nov 2015 18:39:58 +0000 (12:39 -0600)]
Hacking Checks for assertTrue/IsNone()

This patch adds a hacking check to make sure that assertEquals isn't
comparing the result value to True or None. When developers
use assertEquals(None, return_value) the check will catch it when
pep8 runs and suggest using assertIsNone(return_value) instead.
Similar situations will occur when trying to use assertTrue(True,
return_value).

This patch also makes the necessary changes that get caught by the
new hacking check.

Change-Id: I56cc8121784eee617c09fb4e92b4ebb5877a0553

8 years agoMerge "Fix ScaleIO driver provisioning key"
Jenkins [Wed, 25 Nov 2015 16:44:58 +0000 (16:44 +0000)]
Merge "Fix ScaleIO driver provisioning key"

8 years agoMerge "VMware: Validate extra spec opt vmware:clone_type"
Jenkins [Wed, 25 Nov 2015 16:34:26 +0000 (16:34 +0000)]
Merge "VMware: Validate extra spec opt vmware:clone_type"

8 years agoRemove netaddr useless requirement
Bertrand Lallau [Wed, 25 Nov 2015 15:52:26 +0000 (16:52 +0100)]
Remove netaddr useless requirement

This patch cleans up the requirement list to remove netaddr module
that is not used anymore directly by cinder.

Change-Id: I0d0efbf26fb43e94f2ccc1a62edaba6f2b13f27e

8 years agoImprove metadata update operations
Gorka Eguileor [Fri, 21 Aug 2015 17:06:07 +0000 (19:06 +0200)]
Improve metadata update operations

Currently our metadata operations in the DB and the API are less than
optimal, main issues are:

- To update metadata first we get all metadata in the API and add
  requested update metadata, then on the DB we retrieve each of the
  metadata keys and update one by one contents.
- When deletion of existing keys is requested in the DB we retrieve all
  metadata contents and for those that are not in the new metadata we
  retrieve the contents from the DB (again) and delete the entry.

This patch changes this so we no longer retrieve metadata in the API,
deletion does not retrieve any metadata from the DB and just makes 1
deletion request to the DB, and for changes we retrieve metadata once
and then issue a bulk change to create new entries and update existing
ones.

Partial-Bug: #1238093
Change-Id: I12506541cca61282122e319e3504560f68df225b

8 years agoAdd atomic conditional updates to objects
Gorka Eguileor [Sat, 25 Jul 2015 10:34:28 +0000 (12:34 +0200)]
Add atomic conditional updates to objects

To allow atomic state changes across Cinder services we need to
implement a way to easily do compare-and-swap.

This patch adds methods to allow compare-and-swap on DB models and on
Cinder Versioned Objects as well.

Conditions for the compare part of the update can consist of:
- Inclusion: status == 'available'
- Exclusion: status != 'in-use'
- Multi-inclusion: status in ('available', 'error')
- Multi-exclusion: status not in ('attaching', 'in-use')
- Sqlalchemy filters

A complete example of usage would be the compare-and-swap used in volume
delete requests that has to take in consideration not only the status
but the attach and migration status as well as the volume not having
snapshots:

 now = timeutils.utcnow()
 expected = {'attach_status': db.Not('attached'),
             'migration_status': None,
             'consistencygroup_id': None}
 good_status = ('available', 'error', 'error_restoring',
                'error_extending')
 if not force:
     expected.update(status=good_status)

 # Volume cannot have snapshots if we want to delete it
 filters = [~sql.exists().where(models.Volume.id ==
                                models.Snapshot.volume_id)]

 updated = vol_obj.conditional_update(
     {'status': 'deleting',
      'previous_status': vol_obj.model.status,
      'terminated_at': now},
     expected,
     filters)

It can also be specified whether to save already dirtied fields from the
objects or not and by default (if no expected_values argument is
provided) it will make sure that the entry in the DB has the same values
as the objects we are saving.

We can select values based on conditions using Case objects in the
'values' argument. For example:

 has_snapshot_filter = sql.exists().where(
     models.Snapshot.volume_id == models.Volume.id)
 case_values = volume.Case([(has_snapshot_filter, 'has-snapshot')],
                           else_='no-snapshot')
 volume.conditional_update({'status': case_values},
                           {'status': 'available'})

Exclusion and multi-exclusion will handle, by default, NULL values like
Python does instead of like SQL does, so NULL values will be considered
different than any non NULL values.  That way if we search for something
not equal to 1 we will also get NULL values.

WARNING: SQLAlchemy does not allow selecting order of SET clauses, so
for now we cannot do things like
    {'previous_status': model.status, 'status': 'retyping'}
because it will result in both previous_status and status being set to
'retyping'.  Issue has been reported [1] and a patch to fix it [2] has
been submitted.
[1]: https://bitbucket.org/zzzeek/sqlalchemy/issues/3541
[2]: https://github.com/zzzeek/sqlalchemy/pull/200

Specs: https://review.openstack.org/232599/

Implements: blueprint cinder-volume-active-active-support
Related-Bug: #1490944
Related-Bug: #1238093
Related-Bug: #1490946
Related-Bug: #1469659
Related-Bug: #1493120
Related-Bug: #1493419
Related-Bug: #1493476
Related-Bug: #1494466
Change-Id: If90a37f8c7d6fad8fc1f861d52ba862875920cdc

8 years agoRevert "Add Scality SRB driver"
Nicolas Trangez [Wed, 25 Nov 2015 13:45:09 +0000 (14:45 +0100)]
Revert "Add Scality SRB driver"

The Scality SRB kernel-driver is being re-designed to optimize for
specific workloads, which are (initially) not compatible with VM-style
block device access. Not to confuse users, we believe it's advisable to
remove the Cinder SRB driver in the meantime.

This reverts commit a23f17f8cebe5e1e57f675aedf6272257257d1b7.

Some references to the SRB driver and test modules added in later
commits are removed as well.

Conflicts:
        cinder/tests/unit/test_srb.py
        cinder/volume/drivers/srb.py
        etc/cinder/rootwrap.d/volume.filters

See: 2f9e4163f42ae5246fd997b9f35e16d3d97be54f
See: 3fda737f53824170bd59eb6e8ce2e991c89c3c1d

Change-Id: Ic9d79b09363ef904932128f63371ba01a15c5d31

8 years agoMerge "Remove kombu as a dependency for Cinder"
Jenkins [Wed, 25 Nov 2015 13:41:49 +0000 (13:41 +0000)]
Merge "Remove kombu as a dependency for Cinder"

8 years agoMerge "Port xio driver to Python 3"
Jenkins [Wed, 25 Nov 2015 13:41:27 +0000 (13:41 +0000)]
Merge "Port xio driver to Python 3"

8 years agoMerge "Port key manager to Python 3"
Jenkins [Wed, 25 Nov 2015 12:53:32 +0000 (12:53 +0000)]
Merge "Port key manager to Python 3"

8 years agoVMware: Validate extra spec opt vmware:clone_type
Vipin Balachandran [Wed, 25 Nov 2015 12:06:21 +0000 (17:36 +0530)]
VMware: Validate extra spec opt vmware:clone_type

This patch validates the value of extra spec option 'vmware:clone_type'.
It raises an exception if the value is invalid.

Change-Id: Idab59a090184e1ea1446e9e9ed18c753d5c803cc
Closes-Bug: #1288254

8 years agoMerge "Remove stubs and add resource cleanup"
Jenkins [Wed, 25 Nov 2015 05:16:08 +0000 (05:16 +0000)]
Merge "Remove stubs and add resource cleanup"

8 years agoUpdate list_replication_targets
John Griffith [Tue, 24 Nov 2015 21:46:19 +0000 (14:46 -0700)]
Update list_replication_targets

We were planning to let the list targets call be a
free for all, and just be a generic dict of info.

This probably isn't such a great idea, inparticular since
we have a required identifier field for each replication
device it makes more sense to just use that in the response
and leave the rest of the info internal.

In the future if there's a need we can always implement a
show command that displays all the dirty details.

This patch changes the identifier name to 'target_device_id'
to be more self describing, and updates the docstrings and
devref docs to reflect the changes and agreed upon changes.

Change-Id: If14130f5d5bb2e6df4478bd0e14a1f33d706bf78

8 years agoMerge "Declare multiattach is True in RBD driver"
Jenkins [Tue, 24 Nov 2015 20:03:09 +0000 (20:03 +0000)]
Merge "Declare multiattach is True in RBD driver"

8 years agoPort key manager to Python 3
Victor Stinner [Tue, 24 Nov 2015 16:42:07 +0000 (17:42 +0100)]
Port key manager to Python 3

* Replace text.decode('hex') with binascii.unhexlify(text)
* test_barbican: base64 string is a bytes string
* tests-py3.txt: add keymgr tests

Partial-Implements: blueprint cinder-python3
Change-Id: Icc19fa354603857b259458b858e27c5bdd600360

8 years agoMerge "Don't build two tox envs for pep8(-constraints)"
Jenkins [Tue, 24 Nov 2015 19:10:42 +0000 (19:10 +0000)]
Merge "Don't build two tox envs for pep8(-constraints)"

8 years agoMerge "Add check_uptodate.sh --checkopts to "pep8""
Jenkins [Tue, 24 Nov 2015 19:10:31 +0000 (19:10 +0000)]
Merge "Add check_uptodate.sh --checkopts to "pep8""

8 years agoMerge "Fix metadata retrieval in GPFS driver"
Jenkins [Tue, 24 Nov 2015 19:10:18 +0000 (19:10 +0000)]
Merge "Fix metadata retrieval in GPFS driver"

8 years agoMerge "VMware: Skip unsupported datastore types"
Jenkins [Tue, 24 Nov 2015 18:21:04 +0000 (18:21 +0000)]
Merge "VMware: Skip unsupported datastore types"

8 years agoMerge "Move oslo-incubator's scheduler module to cinder"
Jenkins [Tue, 24 Nov 2015 18:00:06 +0000 (18:00 +0000)]
Merge "Move oslo-incubator's scheduler module to cinder"

8 years agoMerge "Port IBM storewize_svc driver to Python 3"
Jenkins [Tue, 24 Nov 2015 17:14:34 +0000 (17:14 +0000)]
Merge "Port IBM storewize_svc driver to Python 3"

8 years agoMerge "CG API should return volume type IDs"
Jenkins [Tue, 24 Nov 2015 16:49:06 +0000 (16:49 +0000)]
Merge "CG API should return volume type IDs"

8 years agoMerge "Fix the bug of OSError when convert image"
Jenkins [Tue, 24 Nov 2015 16:29:05 +0000 (16:29 +0000)]
Merge "Fix the bug of OSError when convert image"

8 years agoMove oslo-incubator's scheduler module to cinder
Michał Dulko [Tue, 24 Nov 2015 14:42:17 +0000 (15:42 +0100)]
Move oslo-incubator's scheduler module to cinder

oslo-incubator is ending its life and we should move remaining
dependencies from there to cinder namespace. This commit does so with
openstack.common.scheduler. Apart from that tests from oslo-incubator
repository are added.

Change-Id: I10d88c120c9c847826986483065f5493e91f89d6
Closes-Bug: 1519337

8 years agoRemove stubs and add resource cleanup
Yuriy Nesenenko [Tue, 24 Nov 2015 13:34:21 +0000 (15:34 +0200)]
Remove stubs and add resource cleanup

This patch adds cleanup resource and removes stubs in test_admin_actions.py.

Change-Id: I08df6c26b4c7cb17c12248a8cf1f5ed647e5fa17

8 years agoMerge "XtremIO fix attach readonly bug"
Jenkins [Tue, 24 Nov 2015 13:16:31 +0000 (13:16 +0000)]
Merge "XtremIO fix attach readonly bug"

8 years agoVMware: Skip unsupported datastore types
Vipin Balachandran [Mon, 23 Nov 2015 11:24:13 +0000 (16:54 +0530)]
VMware: Skip unsupported datastore types

vCenter supports different types of datastores such as
VMFS, NFS etc. Currently the VMDK driver supports only
vSAN, VMFS and NFS datastores for storing volume vmdks.
This patch adds a check to skip unsupported datastore
types during volume creation.

Closes-bug: #1519316
Change-Id: I314abbe0de09bb304859c72b27054784eeef9044

8 years agoPort IBM storewize_svc driver to Python 3
Victor Stinner [Sun, 8 Nov 2015 21:36:01 +0000 (22:36 +0100)]
Port IBM storewize_svc driver to Python 3

Change default preferred node in
StorwizeSVCDriver.initialize_connection(). For fiber channel without
multipath, pick the first node from the list of sorted nodes, to have
a determinist preferred node. The list of nodes is created indirectly
using list(set(nodes)) which doesn't have a determinist order. On
Python 3, the hash function is randomized, and so list(set()) has an
unknown order.

A similar change was done for volume throttling in the change
Icf7141f772397c7ac08f0f1e21ad74cb86a06351 to port the code
to Python 3.

Other changes:

* Use assertSetEqual() in test_storwize_svc to compare
  initiator_target_map, because conn_wwpns has a random order on
  Python 3.
* StorwizeSVCDriver._check_volume_copy_ops(): replace dict.items()
  with list(dict.items()) to iterate on items. On Python 3,
  dict.items() now returns a view instead of a copy. The loop
  modifies the dictionary and a dict must not be modified while
  iterating on it, we really need a copy of items.
* StorwizeHelpers: replace a/b with a//b to use integer division on
  Python 3.
* tests-py3.txt: add cinder.tests.unit.test_storwize_svc

Partial-Implements: blueprint cinder-python3
Change-Id: I534a85928816d6cce921545e1820311aedd1b884

8 years agoDeclare multiattach is True in RBD driver
wuyuting [Tue, 24 Nov 2015 09:01:44 +0000 (17:01 +0800)]
Declare multiattach is True in RBD driver

An RBD volume can be attached to multi instances, however,
this feature is not declared in RBD driver. As a result,
if a user create a multi-attached volume using RBD as
backend, they will be failed.

In this commit, we declared multiattach is True in RBD
driver.

Change-Id: I70c2c0528d9c00629f9cf34d79262a5bf4750e34
Closes-Bug: #1519227

8 years agoXtremIO fix attach readonly bug
Shay Halsband [Sun, 15 Nov 2015 10:31:00 +0000 (12:31 +0200)]
XtremIO fix attach readonly bug

* Remove the access_mode from connection_info and let the manager decide
on the access mode.
* add a test to make sure access_mode won't be added in the future

liberty-backport-potential

Change-Id: I1584b27ff0c14e54f1d1efb2310d25454995c50a
Closes-Bug: 1516365

8 years agoCG API should return volume type IDs
Deepti Ramakrishna [Thu, 19 Nov 2015 08:43:49 +0000 (00:43 -0800)]
CG API should return volume type IDs

The create method of consistency group API requires a list of
volume type ids; volumes belonging to only these types can be added
to the consistency group. The get method of the consistency group API
does not, however, return the volume type id information.

Horizon needs this value for its "Add volumes to consistency group"
panel so that it can filter the "available volumes" list to only
show volumes that match the volume type associated with the consistency
group.

This was fixed by propagating the volume type id information in
the api layer (this information is stored in the db, it just wasn't
being propagated).

APIImpact
The get method of the consistency group API now returns the volume
type ids information.

DocImpact
The screenshots in the admin guide (see
http://docs.openstack.org/admin-guide-cloud/blockstorage-consistency-groups.html)
should be updated to show this new field.

Change-Id: Icc3206c67227af38a7bf89ea0145942f750b506b
Closes-Bug: #1489957

8 years agoMerge "Retry on database deadlock on service_update method"
Jenkins [Tue, 24 Nov 2015 05:00:32 +0000 (05:00 +0000)]
Merge "Retry on database deadlock on service_update method"

8 years agoMerge "Add guidelines for release notes to devref"
Jenkins [Tue, 24 Nov 2015 00:24:24 +0000 (00:24 +0000)]
Merge "Add guidelines for release notes to devref"

8 years agoEMC VMAX - Change naming convention for MV and SG for FAST
Helen Walsh [Wed, 18 Nov 2015 16:11:30 +0000 (16:11 +0000)]
EMC VMAX - Change naming convention for MV and SG for FAST

Up until now we assumed a one to one relationship between FAST policy
and Pool. This does not have to be the case. A FAST policy can span
multiple pools. To ensure uniqueness we will change the SG nand MV
name to contain the FAST policy and not the pool name.

Change-Id: I4d7cc4f8922d08b886b8eb3eb9b1a2b3f4340cc1
Closes-Bug: #1515181

8 years agoMerge "Imported Translations from Zanata"
Jenkins [Mon, 23 Nov 2015 18:35:39 +0000 (18:35 +0000)]
Merge "Imported Translations from Zanata"

8 years agoFix the bug of OSError when convert image
zhangsong [Mon, 9 Nov 2015 15:00:08 +0000 (23:00 +0800)]
Fix the bug of OSError when convert image

When I try to convert a image use image_utils.convert_image() method,
an error occurred like this :
'''
OSError: [Errno 2] No such file or directory:
'sheepdog:10.133.17.61:7000:volume-a0a70f9b-a50e-4369-885f-c41a894c9fe5'
'''
The reason is that in some cluster storage systems, like
ceph/sheepdog, QEMU can access an image directly via their private
protocol, and there’s no need to map an image as a block device on
the host. In this case, the qemu-img convert command may like:

    #qemu-img convert -O raw sheepdog:Ip:port:image_name temp_file
    #qemu-img convert -O raw rbd:pool_name/image_name temp_file

The source path may be 'sheepdog:Ip:port:image_name' or
'rbd:pool_name/image_name', it doesn't exist in OS. So, when it runs
the os.stat(source) in image_utils.convert_image(source,dest,out_format)
method, an OSError would be raised.

We can use qemu_img_info method instead to resolve this problem, because
the 'qemu-img info' command can always get the image size info which has
support qemu-img tool. Here we capture a ValueError just in case, but it
only need to give a warning message, because the image has been successfully
converted.

Change-Id: I5fd1e51840972a67053b85a76f8e001fa8148ad7
Closes-Bug: #1514442

8 years agoMerge "Eager load columns in volume_get_active_by_window"
Jenkins [Mon, 23 Nov 2015 14:07:24 +0000 (14:07 +0000)]
Merge "Eager load columns in volume_get_active_by_window"

8 years agoMerge "Port EMC VMAX to Python 3"
Jenkins [Mon, 23 Nov 2015 14:07:04 +0000 (14:07 +0000)]
Merge "Port EMC VMAX to Python 3"