]> review.fuel-infra Code Review - openstack-build/cinder-build.git/log
openstack-build/cinder-build.git
9 years agoVMware: Unit test refactoring
Vipin Balachandran [Mon, 19 Oct 2015 06:55:54 +0000 (12:25 +0530)]
VMware: Unit test refactoring

Some of the unit tests use mox instead of mock. Also, there are
cases where a single test tests multiple cases and methods. This
patch refactors the unit tests for the following methods in the
vmdk module to fix these issues:

* get_volume_stats
* _verify_volume_creation
* create_volume
* delete_volume
* _get_extra_spec_disk_type
* _get_disk_type
* create_snapshot
* delete_snapshot

There will be follow-up patches to fix the remaining unit tests.

Partial-bug: #1261097
Change-Id: I17b1c0df4e13bf9900a2fe8d37ff5297a8e7486e

9 years agoMerge "Convert Retry-After header parameter value to string"
Jenkins [Sun, 11 Oct 2015 20:42:55 +0000 (20:42 +0000)]
Merge "Convert  Retry-After header parameter value to string"

9 years agoMerge "Port violin driver to Python 3"
Jenkins [Sat, 10 Oct 2015 16:03:55 +0000 (16:03 +0000)]
Merge "Port violin driver to Python 3"

9 years agoMerge "Remove unused 'deprecated' option from auth_strategy opt"
Jenkins [Sat, 10 Oct 2015 01:50:28 +0000 (01:50 +0000)]
Merge "Remove unused 'deprecated' option from auth_strategy opt"

9 years agoMerge "Port EMC scaleio to Python 3"
Jenkins [Sat, 10 Oct 2015 00:53:00 +0000 (00:53 +0000)]
Merge "Port EMC scaleio to Python 3"

9 years agoMerge "Fix error string format for replication API calls"
Jenkins [Sat, 10 Oct 2015 00:51:05 +0000 (00:51 +0000)]
Merge "Fix error string format for replication API calls"

9 years agoMerge "Add updated_at into response of listing detail"
Jenkins [Fri, 9 Oct 2015 22:34:42 +0000 (22:34 +0000)]
Merge "Add updated_at into response of listing detail"

9 years agoFix error string format for replication API calls
Alex O'Rourke [Fri, 9 Oct 2015 18:10:38 +0000 (11:10 -0700)]
Fix error string format for replication API calls

enable_replication, disable_replication, and failover_replication all
raise exceptions if the volume they are being called on are not in
valid states. When that is done, the error message is not properly
formatted and looks as such:
"ERROR: Invalid volume: (u'Invalid status to enable replication. valid
states are: %(valid_states)s, current replication-state is:
%(curr_state)s.', {'curr_state': u'enabled', 'valid_states':
['disabled']}) (HTTP 400)"

The reason for this is the msg string is using a ',' instead of a '%'
to evaluate the string. When fixed, the error is displayed correctly:
"ERROR: Invalid volume: Invalid status to enable replication. valid
states are: ['disabled'], current replication-state is: enabled.
(HTTP 400)"

Change-Id: I47dcb0a7688a7d740672a75292e0bf98df1551b2
Closes-Bug: #1504633

9 years agoMerge "Port ceph driver to Python 3"
Jenkins [Fri, 9 Oct 2015 14:18:40 +0000 (14:18 +0000)]
Merge "Port ceph driver to Python 3"

9 years agoMerge "Port IBM flashsystem to Python 3"
Jenkins [Fri, 9 Oct 2015 12:16:17 +0000 (12:16 +0000)]
Merge "Port IBM flashsystem to Python 3"

9 years agoMerge "Port image cache to Python 3"
Jenkins [Fri, 9 Oct 2015 11:32:35 +0000 (11:32 +0000)]
Merge "Port image cache to Python 3"

9 years agoMerge "Add fast format option for thick volume creation"
Jenkins [Fri, 9 Oct 2015 05:57:45 +0000 (05:57 +0000)]
Merge "Add fast format option for thick volume creation"

9 years agoMerge "Verify volume is replication capable"
Jenkins [Fri, 9 Oct 2015 04:36:58 +0000 (04:36 +0000)]
Merge "Verify volume is replication capable"

9 years agoMerge "Retype enhancement for EMC VNX cinder driver"
Jenkins [Fri, 9 Oct 2015 04:36:47 +0000 (04:36 +0000)]
Merge "Retype enhancement for EMC VNX cinder driver"

9 years agoMerge "Handle KeyManager exception when deleting a volume"
Jenkins [Fri, 9 Oct 2015 02:16:06 +0000 (02:16 +0000)]
Merge "Handle KeyManager exception when deleting a volume"

9 years agoMerge "Port targets test_iet_driver to Python 3"
Jenkins [Fri, 9 Oct 2015 01:56:41 +0000 (01:56 +0000)]
Merge "Port targets test_iet_driver to Python 3"

9 years agoMerge "Add insecure option for swift backup"
Jenkins [Fri, 9 Oct 2015 01:51:43 +0000 (01:51 +0000)]
Merge "Add insecure option for swift backup"

9 years agoMerge "Test_backup_swift: Don't leak notifications"
Jenkins [Fri, 9 Oct 2015 00:48:21 +0000 (00:48 +0000)]
Merge "Test_backup_swift: Don't leak notifications"

9 years agoMerge "Fix capacity report error in Huawei driver"
Jenkins [Thu, 8 Oct 2015 22:24:41 +0000 (22:24 +0000)]
Merge "Fix capacity report error in Huawei driver"

9 years agoMerge "Remove references to Swift in chunked driver"
Jenkins [Thu, 8 Oct 2015 22:24:30 +0000 (22:24 +0000)]
Merge "Remove references to Swift in chunked driver"

9 years agoMerge "test_backup_nfs: Set volume id per test"
Jenkins [Thu, 8 Oct 2015 22:24:19 +0000 (22:24 +0000)]
Merge "test_backup_nfs: Set volume id per test"

9 years agoMerge "XtremIO fix remapping bug"
Jenkins [Thu, 8 Oct 2015 22:22:02 +0000 (22:22 +0000)]
Merge "XtremIO fix remapping bug"

9 years agoMerge "Add multi-initiator extra-spec for Nimble driver"
Jenkins [Thu, 8 Oct 2015 22:12:20 +0000 (22:12 +0000)]
Merge "Add multi-initiator extra-spec for Nimble driver"

9 years agoMerge "ScaleIO: Fix protection_domain_id log message at init"
Jenkins [Thu, 8 Oct 2015 22:02:08 +0000 (22:02 +0000)]
Merge "ScaleIO: Fix protection_domain_id log message at init"

9 years agoPort IBM flashsystem to Python 3
Victor Stinner [Wed, 7 Oct 2015 16:02:43 +0000 (18:02 +0200)]
Port IBM flashsystem to Python 3

* Replace dict.keys()[0] with list(dict.keys())[0]. On Python 3,
  dict.keys() now returns a view which is not indexable.
* tests-py3.txt: add cinder.tests.unit.test_ibm_flashsystem

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

9 years agoPort ceph driver to Python 3
Victor Stinner [Wed, 7 Oct 2015 16:07:38 +0000 (18:07 +0200)]
Port ceph driver to Python 3

* Replace xrange() with range(). cinder/volume/utils.py uses
  "from six.moves import range", so "range" is xrange on Python 2.
* Replace '' with b'' for image content to get a bytes string on
  Python 3.

Note: _transfer_data() of cinder.volume.utils is tested by
test_backup_ceph which is already run on Python 3, but the test only
failed with python3 run with -bb. This bug is now fixed.

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

9 years agoRemove references to Swift in chunked driver
Tom Barron [Thu, 8 Oct 2015 01:10:48 +0000 (21:10 -0400)]
Remove references to Swift in chunked driver

After the chunked/Swift backup driver refactor in commit
2f701a39208f9396893cd8a57165e37cfeb6fc2f
some references to 'Swift' remained in code comments and
log messages in code that no longer lives in the Swift driver
proper.

This commit cleans up those leftovers.

Change-Id: I9c83661ed380cf728c9262d39f89cce0bc341509
Closes-Bug: 1452864

9 years agoMerge "test_backup_swift: Set volume id per test"
Jenkins [Thu, 8 Oct 2015 17:20:04 +0000 (17:20 +0000)]
Merge "test_backup_swift: Set volume id per test"

9 years agoMerge "Port test_srb to Python 3"
Jenkins [Thu, 8 Oct 2015 17:14:54 +0000 (17:14 +0000)]
Merge "Port test_srb to Python 3"

9 years agoMerge "Imported Translations from Zanata"
Jenkins [Thu, 8 Oct 2015 16:08:52 +0000 (16:08 +0000)]
Merge "Imported Translations from Zanata"

9 years agoAdd insecure option for swift backup
Tom Barron [Fri, 2 Oct 2015 20:49:46 +0000 (16:49 -0400)]
Add insecure option for swift backup

When running backups with the swift backup driver and an
https url for the swift endpoint, the config option
backup_swift_ca_cert_file must point to a valid server side
cert.

For test purposes, it is useful to be able to ignore
cert errors while still making a SSL/TLS connection, the way
one can with https:// urls and the curl command and the
swift client itself.

This commit adds a boolean CONFIG option, 'backup_swift_auth_insecure',
whose default value is False, in which case there is no change from
current behavior.  If this option is set to True, however, cert validation
is skipped for SSL/TLS.

DocImpact

Change-Id: I1ca88d8e083d95c2bdb86ae79a4d66e04f521ddb

9 years agoScaleIO: Fix protection_domain_id log message at init
Eric Harney [Thu, 8 Oct 2015 14:21:26 +0000 (10:21 -0400)]
ScaleIO: Fix protection_domain_id log message at init

The log message refers to this setting with the
wrong name.

Change-Id: Icb74861046082689b5b438228fa979fc637c04b1

9 years agoPort test_srb to Python 3
Victor Stinner [Wed, 7 Oct 2015 13:43:05 +0000 (15:43 +0200)]
Port test_srb to Python 3

* Replace itertools.izip() with six.moves.zip()
* Replace (int, long) with six.integer_types
* tests-py3.txt: add cinder.tests.unit.test_srb

Disable pylint on six.moves.zip() because pylint doesn't handle
correctly six.moves, see:
https://bitbucket.org/logilab/pylint/issues/200/

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

9 years agoAdd fast format option for thick volume creation
Xiaoqin Li [Sun, 4 Oct 2015 17:59:37 +0000 (10:59 -0700)]
Add fast format option for thick volume creation

Add option for user to disable fast format at thick
provisioned volume creation in IBM Storwize cinder.
The default value is False and clients who do not want
to do Fast Format for thick volume, they can set this
parameter to True.

DocImpact: Add fast format option
Change-Id: Ib627696b91c336d09de6066ee70ee518fca5a7a9
Closes-Bug: 1502404

9 years agoMerge "Clone cg support in VNX driver"
Jenkins [Thu, 8 Oct 2015 08:40:10 +0000 (08:40 +0000)]
Merge "Clone cg support in VNX driver"

9 years agoMerge "Add device identifier to replication device"
Jenkins [Thu, 8 Oct 2015 08:39:55 +0000 (08:39 +0000)]
Merge "Add device identifier to replication device"

9 years agoMerge "Updated from global requirements"
Jenkins [Thu, 8 Oct 2015 08:17:11 +0000 (08:17 +0000)]
Merge "Updated from global requirements"

9 years agoMerge "Add testresources and testscenarios used by oslo.db fixture"
Jenkins [Thu, 8 Oct 2015 07:54:29 +0000 (07:54 +0000)]
Merge "Add testresources and testscenarios used by oslo.db fixture"

9 years agoImported Translations from Zanata
OpenStack Proposal Bot [Thu, 8 Oct 2015 06:24:23 +0000 (06:24 +0000)]
Imported Translations from Zanata

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

Change-Id: I3eba87d4e361efd5b166d106745b9550635c64e4

9 years agoMerge "Fix SolidFire target composition"
Jenkins [Thu, 8 Oct 2015 05:08:56 +0000 (05:08 +0000)]
Merge "Fix SolidFire target composition"

9 years agoMerge "py3: Run unit tests with ostestr on Python 3.4"
Jenkins [Thu, 8 Oct 2015 03:40:50 +0000 (03:40 +0000)]
Merge "py3: Run unit tests with ostestr on Python 3.4"

9 years agoRetype enhancement for EMC VNX cinder driver
Xi Yang [Tue, 1 Sep 2015 10:05:15 +0000 (06:05 -0400)]
Retype enhancement for EMC VNX cinder driver

VNX driver will trigger lun migration when retyping a thin/thick
volume to a compressed volume and it is time-consuming. To enhance
the performance, this patch will directly turn on the compression
on a volume instead of migrating it.

Change-Id: I155272d1130ac0048d226742970e021118f2f123
Closes-Bug: #1495802

9 years agoUpdated from global requirements
OpenStack Proposal Bot [Thu, 8 Oct 2015 00:04:15 +0000 (00:04 +0000)]
Updated from global requirements

Change-Id: Ib3a6740b8729b02d3da725e9847eb292cef5649e

9 years agoVerify volume is replication capable
John Griffith [Tue, 6 Oct 2015 23:15:58 +0000 (17:15 -0600)]
Verify volume is replication capable

The V1 implementation of replication added a replication_status
field to the Volume object and set it to disabled by default on
volume creation.

This is problematic, because there's no way for the API or any
caller to know if the status is disabled because it was
explicitly set that way, or if it is because the back end or
volume-type do not support replication.

This results in cases like enable replication (which does a status
check on disabled) to be called inappropriately on devices that
don't support replication.

This patch adds a decorator to the new replication methods which will
check that the volume is of type with replication_enabled=True before
attempting any replication related operations.

Change-Id: I943be2aef3b7c32026278f311dae9f82194372fe
Closes-Bug: #1503439

9 years agoAdd device identifier to replication device
John Griffith [Wed, 7 Oct 2015 22:49:36 +0000 (16:49 -0600)]
Add device identifier to replication device

One thing that may be needed by some back ends
that are implementing replication is some sort
of back end device identifier.

For managed back ends this shouldn't be an issue
but for unmanaged, it's handy to have some sort
of identifier string.

This patch just adds that to the response examples
in the volume.manager code as well as adds an update
to the dev docs to point it out.

Change-Id: Ic113d905e65c756439425b03035179e65ce0b39e

9 years agoPort violin driver to Python 3
Victor Stinner [Wed, 7 Oct 2015 17:01:57 +0000 (19:01 +0200)]
Port violin driver to Python 3

* Replace dict.items()[0] with list(dict.items())[0], same for
  dict.values()
* Replace dict.iteritems() with dict.items()
* Replace dict.itervalues() with dict.values()
* Replace a/b with a//b to get integer on Python 3.
* test_get_active_fc_targets(): ignore order when comparing active
  FC targets. On Python 3, the hash function is randomized and so
  dictionaries values are returned in a random order.

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

9 years agoPort EMC scaleio to Python 3
Victor Stinner [Wed, 7 Oct 2015 15:57:00 +0000 (17:57 +0200)]
Port EMC scaleio to Python 3

* Import urllib modules using six.moves.urllib
* MockHTTPSResponse: encode HTTP body to UTF-8 if it's Unicode,
  replace six.string_types with (bytes, six.text_type).
* _id_to_base64(): catch also binascii.Error when calling
  b16decode(); encode name to UTF-8 before calling b64encode();
  decode b64encode() from ASCII on Python 3 to get Unicode.
* tox.ini: add cinder.tests.unit.volume.drivers.emc.scaleio
  to Python 3.4

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

9 years agoMerge "Fix update quota of subprojects"
Jenkins [Wed, 7 Oct 2015 19:28:18 +0000 (19:28 +0000)]
Merge "Fix update quota of subprojects"

9 years agoAdd multi-initiator extra-spec for Nimble driver
Sonia Ghanekar [Wed, 30 Sep 2015 17:02:30 +0000 (10:02 -0700)]
Add multi-initiator extra-spec for Nimble driver

This patch allows setting up multi-initiator access for
the Nimble driver through the extra-specs.

This can be set by adding the key 'nimble:multi-initiator'
with boolean value of 'true' or 'false'. If nothing is
specified it defaults to 'false'.

Change-Id: Iade49f0ce418a2db7ea9a00ebf925a017e3eb429
Closes-Bug: #1495750

9 years agoFix SolidFire target composition
John Griffith [Tue, 6 Oct 2015 23:39:24 +0000 (17:39 -0600)]
Fix SolidFire target composition

We added the target composition a while back but never
really finished it.  We created a set of interface methods
and had them call the target class mostly thinking we'd
want this when adding FC.

It turns out that doing a regular composition and using
get_attr will actually work fine when the FC target is
added, so re factor this and make it a true composition
where both objects inherit attributes from each other.

Change-Id: I1da439c2e50ec66d759def19d3eda997797d00a5

9 years agoPort targets test_iet_driver to Python 3
Victor Stinner [Wed, 7 Oct 2015 15:14:54 +0000 (17:14 +0200)]
Port targets test_iet_driver to Python 3

* Replace StandardError with MemoryError: StandardError was removed
  in Python 3
* Replace __builtin__ with six.moves.builtins to mock open()
* Mock the logger in test_create_iscsi_target() because the test
  injects errors in open() and the logger uses open() to format the
  traceback
* tox.ini: add cinder.tests.unit.targets.test_iet_driver to Python 3.4

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

9 years agoPort image cache to Python 3
Victor Stinner [Wed, 7 Oct 2015 15:20:07 +0000 (17:20 +0200)]
Port image cache to Python 3

* Replace [unicode, str] with six.string_types and use isinstance()
  to check the type
* tox.ini: add cinder.tests.unit.image.test_cache to Python 3.4

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

9 years agopy3: Run unit tests with ostestr on Python 3.4
Victor Stinner [Wed, 7 Oct 2015 13:33:38 +0000 (15:33 +0200)]
py3: Run unit tests with ostestr on Python 3.4

"tox -e py34" now uses ostestr instead of testtools.run to run tests.
Tests are now executed in parallel.

Move the tests whitelist from tox.ini to a new file tests-py3.txt.

Fix NaElement.__str__() of netapp driver: return Unicode on Python 3,
not bytes.

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

9 years agoAdd testresources and testscenarios used by oslo.db fixture
Davanum Srinivas [Wed, 7 Oct 2015 01:45:12 +0000 (18:45 -0700)]
Add testresources and testscenarios used by oslo.db fixture

If we use oslo.db fixtures, we'll need these 2 packages or
the next version of oslo.db release will break us.

Closes-Bug: #1503501
Change-Id: I8facdaf69c79b1b1ae4f9f64e9856e12f14440ed

9 years agoClone cg support in VNX driver
Tina [Fri, 14 Aug 2015 03:10:53 +0000 (23:10 -0400)]
Clone cg support in VNX driver

This change added the clone consistency group support
in VNX driver.

DocImpact
Implements: blueprint vnx-clone-cg
Change-Id: I7eb69be2e6ffe47a92bca5818c952addd1b45217

9 years agoMerge "Port scheduler host manager to Python 3"
Jenkins [Wed, 7 Oct 2015 06:50:20 +0000 (06:50 +0000)]
Merge "Port scheduler host manager to Python 3"

9 years agoMerge "Dell Eqlx: Support over subscription in thin provisioning"
Jenkins [Wed, 7 Oct 2015 05:43:03 +0000 (05:43 +0000)]
Merge "Dell Eqlx: Support over subscription in thin provisioning"

9 years agoTest_backup_swift: Don't leak notifications
Eric Harney [Tue, 6 Oct 2015 20:53:31 +0000 (16:53 -0400)]
Test_backup_swift: Don't leak notifications

At least some of these tests can leak notifications
such as backup.createprogress.

Mock the send notification methods to ensure this
doesn't happen.

This likely indicates that some restructuring of these
tests is needed, but patching this long-standing issue
on its own is worthwhile.

Partial-Bug: #1501745

Change-Id: I91cb3bef18a8b830fcc3b3589afe6b6975bc0c2b

9 years agoMerge "HNAS iSCSI manage does not work with spaces"
Jenkins [Wed, 7 Oct 2015 01:08:22 +0000 (01:08 +0000)]
Merge "HNAS iSCSI manage does not work with spaces"

9 years agoMerge "Add ability to set prefix in SolidFire Volume name"
Jenkins [Wed, 7 Oct 2015 00:43:48 +0000 (00:43 +0000)]
Merge "Add ability to set prefix in SolidFire Volume name"

9 years agotest_backup_nfs: Set volume id per test
Eric Harney [Tue, 6 Oct 2015 19:31:03 +0000 (15:31 -0400)]
test_backup_nfs: Set volume id per test

Since some of these tests trigger operations (such as
progress reporting) that can happen as an asyncronous
task, set a different ID for each test so it's possible
to identify where notifications are coming from.

Related-Bug: #1501745

Change-Id: I4cb3400d302f03d19d982979bc5f3c3b90eb47a4

9 years agoMerge "Port test_quobyte to Python 3"
Jenkins [Tue, 6 Oct 2015 21:55:34 +0000 (21:55 +0000)]
Merge "Port test_quobyte to Python 3"

9 years agotest_backup_swift: Set volume id per test
Eric Harney [Tue, 6 Oct 2015 18:14:00 +0000 (14:14 -0400)]
test_backup_swift: Set volume id per test

Since some of these tests trigger operations (such as
progress reporting) that can happen as an asyncronous
task, set a different ID for each test so it's possible
to identify where notifications are coming from.

Related-Bug: #1501745

Change-Id: I255941ecb813e47ac02c9b8ca09e41d99d12d218

9 years agoMerge "Fix broken format string in vol mgr log"
Jenkins [Tue, 6 Oct 2015 20:55:32 +0000 (20:55 +0000)]
Merge "Fix broken format string in vol mgr log"

9 years agoMerge "Hacking check for opt name registration"
Jenkins [Tue, 6 Oct 2015 20:53:29 +0000 (20:53 +0000)]
Merge "Hacking check for opt name registration"

9 years agoMerge "VMAX Target iSCSI IP Address"
Jenkins [Tue, 6 Oct 2015 17:15:50 +0000 (17:15 +0000)]
Merge "VMAX Target iSCSI IP Address"

9 years agoDell Eqlx: Support over subscription in thin provisioning
rajinir [Mon, 5 Oct 2015 20:56:40 +0000 (15:56 -0500)]
Dell Eqlx: Support over subscription in thin provisioning

Dell eqlx driver reports the following new stats:
  * provisioned_capacity
  * max_over_subscription_ratio
  * thin_provisioning_support (True or False)
  * thick_provisioning_support (True or False)

Change-Id: I09176259840eb5b52a5f4ec1942db2bf152667d0
Implements: blueprint dell-eqlx-over-subscription-thin-provisioning

9 years agoHacking check for opt name registration
Kendall Nelson [Tue, 15 Sep 2015 01:37:00 +0000 (20:37 -0500)]
Hacking check for opt name registration

Depending on how opts are registered (either with register_opt() or
register_opts()), the name needs to be singular or plural to match
the method.  This patch adds a hacking check to make sure the names
of the opts and opt lists (or tuples) are correct given how they are
being registered.  The check also verifies that a single option is
sent when register_opt() is used and a list is used when using
register_opts().

Includes fixes to files that don't meet the naming convention and a
addition to the generate_cinder_opts.py file in order to skip
checks.py in the generation of the opts.py file.

Closes-Bug: 1495752
Change-Id: Ia795915c6e3d46272acc30407961d5d876f783ce

9 years agoMerge "Port test_netapp to Python 3"
Jenkins [Tue, 6 Oct 2015 07:14:33 +0000 (07:14 +0000)]
Merge "Port test_netapp to Python 3"

9 years agoMerge "Port netapp SSC Cmode to Python 3"
Jenkins [Tue, 6 Oct 2015 06:57:24 +0000 (06:57 +0000)]
Merge "Port netapp SSC Cmode to Python 3"

9 years agoMerge "Detach volume on device validation failure"
Jenkins [Tue, 6 Oct 2015 06:57:13 +0000 (06:57 +0000)]
Merge "Detach volume on device validation failure"

9 years agoAdd ability to set prefix in SolidFire Volume name
John Griffith [Mon, 5 Oct 2015 23:22:30 +0000 (17:22 -0600)]
Add ability to set prefix in SolidFire Volume name

The SolidFire creates names for Volumes on the backend using
the format UUID-<cinder-id>

This works well, but it turns out that there is a possibility
of a UUID collision for customers running multiple clouds against
the same cluster. To eliminate that possibility we should allow
a config option to set the prefix to be whatever an admin chooses.

This patch introduces the sf_volume_prefix config option to
address this bug.  The default still uses the 'UUID-' prefix.

DocImpact
Changing this setting on an existing deployment will
result in the existing volumes being inaccessible. To introduce
this change to an existing deployment it's recommende to
add the Cluster as if it were a second backend and disable
new deployments to the current backend.

Change-Id: I21a87e6431099e51355044f2dfea35b61ca8125f
Closes-Bug: #1503069

9 years agoUpdated from global requirements
OpenStack Proposal Bot [Mon, 5 Oct 2015 23:13:29 +0000 (23:13 +0000)]
Updated from global requirements

Change-Id: I870a7a95358ab8c8e94e2ab8d78bc7cddf2ed3f8

9 years agoFix broken format string in vol mgr log
Eric Harney [Mon, 5 Oct 2015 16:55:52 +0000 (12:55 -0400)]
Fix broken format string in vol mgr log

"Detected volume stuck in" message is
not formatted correctly.

Change-Id: Ia2b3797508d8bcbc00f2c85d1d9f8172d923a062

9 years agoDetach volume on device validation failure
Gorka Eguileor [Fri, 2 Oct 2015 13:08:31 +0000 (15:08 +0200)]
Detach volume on device validation failure

If device validation fails when attaching a volume for some driver
operation (copy_volume_data, copy_image_to_volume, copy_volume_to_image)
we may end up with an attached volume that we don't cleanup.

This patch tries to detach the volume if we fail when validating the
device after we have attached the volume.

This happens for example on multipath when we have properly detected the
paths but they are all in a failed state when we try to read from the
device on validation.

Closes-Bug: #1502138
Change-Id: I73be4206930eba7da064e22d86ff2136191acb0b

9 years agoConvert Retry-After header parameter value to string
Ivan Kolodyazhny [Mon, 5 Oct 2015 12:24:28 +0000 (15:24 +0300)]
Convert  Retry-After header parameter value to string

Cinder doesn't work under Apache well with enabled debug.
In Python 2.x all header values should be a string.

Change-Id: Ie15b5f6836a60a6135ed2808380fa12c3281d5dd
Closes-Bug: #1502881

9 years agoFix capacity report error in Huawei driver
Wilson Liu [Tue, 22 Sep 2015 12:52:36 +0000 (20:52 +0800)]
Fix capacity report error in Huawei driver

Currently the capacity report is incorrect due
to wrong way code clear.

The previously right way is:
result = var / 1024.0 / 1024.0 / 2

But currently we use a constant CAPACITY_UNIT to make the code cleaner
like this:
CAPACITY_UNIT = 1024.0 / 1024.0 / 2
result = var / CAPACITY_UNIT
We want the CAPACITY_UNIT work like a *real* constant like C
language, but in python, it is not a *real* constant, it's
just a variable. It will calculate the CAPACITY_UNIT first,
so the finally result is:
result = var / 0.5
And this is wrong.

This patch will fix this.

Closes-Bug: #1498452
Change-Id: I4dc20ef8805d7c414fedb1dc441deb3f9fcd75b5

9 years agoemc vmax driver: use integer division for Python 3
Victor Stinner [Thu, 1 Oct 2015 16:15:54 +0000 (18:15 +0200)]
emc vmax driver: use integer division for Python 3

Replace a/b with a//b in emc_vmax_utils.py to get integers on
Python 3.

Blueprint cinder-python3
Change-Id: I8d9390b1558e2b4a08674eadcaa3559020f8dcff

9 years agoVMAX Target iSCSI IP Address
Xing Yang [Thu, 1 Oct 2015 02:28:56 +0000 (22:28 -0400)]
VMAX Target iSCSI IP Address

In VMAX iSCSI driver, the iscsi_ip_address was hardcoded
in cinder.conf. This may have issues with multi-portgroup
environment. If a customer has multiple portgroups
containing different ports with different iSCSI IP addresses,
then â€˜iscsiadm‘ command cannot use more than the one hardcoded
IP address in its sendtargets operation.

This patch addresses this by examining the ports in the
portgroup of the masking view used in the attach operation.
Each port has a corresponding iSCSI IP address. A portgroup
with only one port will have one IP address; a portgroup with
multiple ports will have multiple IP addresses. Even if there
is more than one IP address, the first in the list is likely to
result in a successful iscsiadm -sendtargets.

Closes-Bug: #1501678
Change-Id: I52ab6b278a114d55aec5e66b38ff76fd1bfb1b49

9 years agoUpdated from global requirements
OpenStack Proposal Bot [Sun, 4 Oct 2015 22:40:02 +0000 (22:40 +0000)]
Updated from global requirements

Change-Id: Id75e695e0e25ad4505391dc1a5b131f8f2a9e9b8

9 years agoMerge "Delete a temporary volume in DB with admin context"
Jenkins [Sun, 4 Oct 2015 16:42:42 +0000 (16:42 +0000)]
Merge "Delete a temporary volume in DB with admin context"

9 years agoMerge "Implement extend_volume method to Block Device driver"
Jenkins [Sun, 4 Oct 2015 10:59:00 +0000 (10:59 +0000)]
Merge "Implement extend_volume method to Block Device driver"

9 years agoDelete a temporary volume in DB with admin context
Masaki Kanno [Sun, 4 Oct 2015 06:57:22 +0000 (15:57 +0900)]
Delete a temporary volume in DB with admin context

Non-disruptive backup creates a temporary volume. Information
of the volume will be deleted from DB if the volume cannot be
created by drivers. volume_destroy method is used in order to
delete the information. We must elevate the context to admin
context because the method requests admin context.

Change-Id: Ie5cd935cdd9e13c261708e504fa6fb2622a8aebb
Closes-Bug: 1502460

9 years agoMerge "Small optimization in Block Device driver"
Jenkins [Sun, 4 Oct 2015 02:34:17 +0000 (02:34 +0000)]
Merge "Small optimization in Block Device driver"

9 years agoMerge "DRBD: new option "drbdmanage_devs_on_controller"."
Jenkins [Sun, 4 Oct 2015 01:50:15 +0000 (01:50 +0000)]
Merge "DRBD: new option "drbdmanage_devs_on_controller"."

9 years agoFix update quota of subprojects
Erickson Santos [Tue, 15 Sep 2015 17:21:42 +0000 (14:21 -0300)]
Fix update quota of subprojects

Cinder raises an exception when performing an update quota
operation in a subproject in which its parent's quotas weren't
explicitly updated.

This is because cinder will try to find the parent's quotas
in order to update the allocated value. But, since the parent's
quotas are the default quotas (i.e. there are no entries for them
in the database), the operation will raise an error.

Steps to reproduce:
1. Create a project A in keystone;
2. Create a project B in keystone with A as its parent;
3. Try to update the quota value of any resources of project B
   (e.g. openstack quota set <id of B> --volumes 2)

This patch fix this bug by adding entries to the database when
performing an update quota operation in a subproject and there
are still no quota associated with the parent project.

Change-Id: Ia732ca9d5a5f59d3973c2656a27b666077c3402a
Closes-bug: #1495990

9 years agoMerge "Use of ast for integers doesn't changes type"
Jenkins [Sat, 3 Oct 2015 19:00:50 +0000 (19:00 +0000)]
Merge "Use of ast for integers doesn't changes type"

9 years agoMerge "Cleanup orphaned code from cinder root directory"
Jenkins [Sat, 3 Oct 2015 17:04:33 +0000 (17:04 +0000)]
Merge "Cleanup orphaned code from cinder root directory"

9 years agoMerge "VMAX Truncate Storage Group Name"
Jenkins [Sat, 3 Oct 2015 04:35:05 +0000 (04:35 +0000)]
Merge "VMAX Truncate Storage Group Name"

9 years agoPort test_quobyte to Python 3
Victor Stinner [Fri, 2 Oct 2015 15:25:50 +0000 (17:25 +0200)]
Port test_quobyte to Python 3

Modify assertRaisesAndMessageMatches() to tolerate subclasses. On
Python 3, a permission error now raises an exception PermissionError
which is a subclass of OSError, whereas the test expected exactly the
OSError type.

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

9 years agoMerge "Tests: print fake_notifier queue upon mismatch"
Jenkins [Fri, 2 Oct 2015 20:01:06 +0000 (20:01 +0000)]
Merge "Tests: print fake_notifier queue upon mismatch"

9 years agoMerge "Fix enable/disable_replication raise InvalidVolume"
Jenkins [Fri, 2 Oct 2015 19:24:26 +0000 (19:24 +0000)]
Merge "Fix enable/disable_replication raise InvalidVolume"

9 years agoRemove unused 'deprecated' option from auth_strategy opt
Jay S Bryant [Fri, 2 Oct 2015 17:44:13 +0000 (12:44 -0500)]
Remove unused 'deprecated' option from auth_strategy opt

Noticed that the auth_strategy option in
cinder/common/config.py has a 'deprecated' option.  I
can only see that 'no_auth' and 'keystone' are used anywhere
in the code.  Looking at the git logs it appears that
the 'deprecated' option may have been pulled over when we split
from Nova.  This patch removes the unused option.

DocImpact

Change-Id: I34383f9ceb87d10030e1c28f4bc0a7d8c21467d4

9 years agoMerge "Fix various Python 3 issues"
Jenkins [Fri, 2 Oct 2015 16:37:51 +0000 (16:37 +0000)]
Merge "Fix various Python 3 issues"

9 years agoPort netapp SSC Cmode to Python 3
Victor Stinner [Fri, 2 Oct 2015 15:40:55 +0000 (17:40 +0200)]
Port netapp SSC Cmode to Python 3

Fix query_cluster_vols_for_ssc(): cast string (records) to int. On
Python 3, comparison between str and int now raise a TypeError.

tox.ini: add cinder.tests.unit.test_netapp_ssc to Python 3.4.

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

9 years agoPort test_netapp to Python 3
Victor Stinner [Fri, 2 Oct 2015 15:35:37 +0000 (17:35 +0200)]
Port test_netapp to Python 3

* Add close() method to FakeHttplibSocket,
  FakeDirectCmodeHTTPConnection, FakeDirect7modeHTTPConnection
* Replace StringIO() with BytesIO() for socket buffers
* makefile(): ignore optional arguments after mode
* Fix bytes versus Unicode: use bytes for HTTP body. Encode HTTP body
  to UTF-8 and HTTP headers to Latin1.
* tox.ini: add cinder.tests.unit.test_netapp to Python 3.4

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

9 years agoVMAX Truncate Storage Group Name
Xing Yang [Fri, 2 Oct 2015 14:17:40 +0000 (10:17 -0400)]
VMAX Truncate Storage Group Name

In the VMAX driver, it generates a storage group name using
the short host name, pool name, etc. However the storage
group name has an upper limit of 64 characters. So it fails
if the length of the name exceeds the limit. This patch
fixes it by truncating the name to fix within the limit.

Change-Id: I18258933591a389691a7b33af2d30a40bb34f09c
Closes-Bug: #1501925

9 years agoMerge "Fix volume throttling to Python 3"
Jenkins [Fri, 2 Oct 2015 14:59:28 +0000 (14:59 +0000)]
Merge "Fix volume throttling to Python 3"

9 years agoHNAS iSCSI manage does not work with spaces
Adriano Rosso [Mon, 24 Aug 2015 17:13:30 +0000 (14:13 -0300)]
HNAS iSCSI manage does not work with spaces

Currently, HNAS iSCSI driver does not work when trying to manage a
volume that contains one or more space in the name.
This patch fixes this functionality and performs some other minor
adjustments.

Change-Id: I2ba6407478c293f20925171d80dcc8f97f2110c7
Closes-bug: #1500544

9 years agoPort scheduler host manager to Python 3
Victor Stinner [Fri, 2 Oct 2015 08:24:54 +0000 (10:24 +0200)]
Port scheduler host manager to Python 3

* Rewrite ReadOnlyDict using collections.Mapping: collections.Mapping
  has no method to modify the dictionary and is available on Python 2
  and Python 3. Add also a __repr__() method to ease debug. Remove
  ReadOnlyDict.update() method: a read-only dictionary must not be
  modifiable.
* test_host_manager.py: sort dictionaries using a key function to
  have a reliable order for the list of dictionaries. On Python 3,
  the hash function is now randomized.
* tox.ini. add cinder/tests/unit/scheduler/ tests to Python 3.4

Blueprint cinder-python3
Change-Id: I34d98d6a75fef907251719f0d46b025d8e8b2b65