Victor Stinner [Wed, 7 Oct 2015 21:44:46 +0000 (23:44 +0200)]
Port API admin action tests to Python 3
* Replace ast.literal_eval(response.body) with response.json
* Use oslo_serialization.jsonutils.dump_as_bytes() to encode the
response to JSON as bytes for the HTTP body.
* tests-py3.txt: add cinder.tests.unit.api.contrib.test_admin_actions
Partial-Implements: blueprint cinder-python3
Change-Id: Ib30c701b9dbbcc774dfc5f19a7174ab318006206
Victor Stinner [Wed, 7 Oct 2015 16:41:48 +0000 (18:41 +0200)]
Port API types extra specs to Python 3
* Replace dict.iteritems() with dict.items(). The iteritems() method
of dictionaries was removed in Python 3.
* Add cinder.tests.unit.api.contrib tests to tests-py3.txt:
- test_availability_zones
- test_capabilities
- test_extended_snapshot_attributes
- test_hosts
- test_qos_specs_manage
- test_quotas
- test_quotas_classes
- test_scheduler_stats
- test_services
- test_types_extra_specs
- test_types_manage
- test_used_limits
Partial-Implements: blueprint cinder-python3
Change-Id: Ie3d2de456c34286cca0505f6125a1a723bd8ad8b
Victor Stinner [Wed, 7 Oct 2015 16:12:48 +0000 (18:12 +0200)]
Port API to Python 3
* test_make_flat_dict(): only use one dictionary key. On Python 3,
the hash function is now randomized by default and so dictionary
keys are returned in a random order.
* Replace "not cmp(a, b) == 0" with "a != b"
* test_common: replace range(n) with list(range(n)) to get a list on
Python 3. On Python 3, range() now returns an iterator.
* Replace dict.items()[0] with list(dict.items()[0]). On Python 3,
dict.items() now returns a view which is not indexable.
* VolumeTypesController.index(): replace dict.values() with
list(dict.values()) to get a list on Python 3.
* test_xmlutil: use byte strings for XML
* test_extensions: use byte strings for HTTP body
* Add the following tests to tests-py3.txt:
- cinder.tests.unit.api.test_common
- cinder.tests.unit.api.test_extensions
- cinder.tests.unit.api.test_versions
- cinder.tests.unit.api.test_xmlutil
Partial-Implements: blueprint cinder-python3
Change-Id: I40c28f6b6a1cf72ce13774755153c8691b4d621b
Jenkins [Wed, 14 Oct 2015 19:00:10 +0000 (19:00 +0000)]
Merge "encryption_api_url requires a version"
Jenkins [Wed, 14 Oct 2015 04:04:29 +0000 (04:04 +0000)]
Merge "Port WSGI tests to Python 3"
Jenkins [Wed, 14 Oct 2015 01:20:23 +0000 (01:20 +0000)]
Merge "Provide better debug log when 'cinder manage' fails"
Jenkins [Wed, 14 Oct 2015 01:20:11 +0000 (01:20 +0000)]
Merge "Move ssh_utils tests to test_ssh_utils"
Jenkins [Tue, 13 Oct 2015 23:27:57 +0000 (23:27 +0000)]
Merge "Fix log formatting for rbd driver"
Ollie Leahy [Thu, 1 Oct 2015 17:21:52 +0000 (18:21 +0100)]
encryption_api_url requires a version
If the value configured for encryption_api_url does not include the
barbican API version, then some calls from cinder will fail. This can
mean that encrypted volumes cannot be deleted. To prevent this happening
raise an exception if the configured value for encryption_api_url does not
include the barbican version.
Change-Id: I1a4c9b9e93d7d189a3cdf1469e8bb87817473da5
Closes-Bug: #
1501780
Victor Stinner [Wed, 7 Oct 2015 15:38:12 +0000 (17:38 +0200)]
Port WSGI tests to Python 3
* Replace dict.keys()[0] with list(data.keys())[0]. On Python 3,
dict.keys() now returns a view which is not indexable.
* Skip SSL tests on Python 3. Tests hang for an unknown reason, they
must be fixed later.
* Fix unit tests: HTTP body type is bytes, not Unicode.
* Debug.print_generator(): on Python 3, write into sys.stdout.buffer
instead of sys.stdout, because HTTP body type is bytes not Unicode.
* ResponseObject: encode serializer output to UTF-8 if it's Unicode.
* tox.ini: add the following tests to Python 3.4
- cinder.tests.unit.api.openstack.test_wsgi
- cinder.tests.unit.wsgi
Note: Ignore pylint error E1101 on sys.stdout.buffer. pylint on
Python 2 complains that the buffer attribute doesn't exist, whereas
the code is only executed on Python 3 and the attribute exists on
Python 3.
Related-Bug: #
1505103
Partial-Implements: blueprint cinder-python3
Change-Id: I0db0e04010e41be71192a2e4db13829114ad6eef
John Griffith [Tue, 13 Oct 2015 03:44:09 +0000 (21:44 -0600)]
Change default Exception code to 500
As a part of the fix for LP#
1505153, the invalid
response of 0 was changed to 400 to fix a running
issue with the new version of WebOb.
It was pointed out after the fact however that a
500 might be more appropriate here.
Additionally, other projects have implemented a 500
as the default so for the sake of consistency we should
consider doing the same.
This patch just changes the 400 to a 500 as the default
code.
Change-Id: Ie486dc49c927f9b50f07c1fc562e89c090924a40
Closes-Bug: #
1505488
Jenkins [Tue, 13 Oct 2015 14:14:41 +0000 (14:14 +0000)]
Merge "Fix Status-Line in HTTP response"
Jenkins [Tue, 13 Oct 2015 11:43:22 +0000 (11:43 +0000)]
Merge "Tox fast8: use pep8 env dir"
iberezovskiy [Tue, 13 Oct 2015 11:31:35 +0000 (14:31 +0300)]
Fix log formatting for rbd driver
Change-Id: Id2d7d18fa3b91fbbad9c771c9de006f21e43d2ea
Closes-bug: #
1505633
Ivan Kolodyazhny [Tue, 6 Oct 2015 11:52:53 +0000 (14:52 +0300)]
Fix Status-Line in HTTP response
There is a strict rule about constructing status line for HTTP:
'...Status-Line, consisting of the protocol version followed by a
numeric status code and its associated textual phrase, with each
element separated by SP characters'
(http://www.faqs.org/rfcs/rfc2616.html)
This patch coerces filling associated textual phrase.
Also removed unused code from cinder/tests/unit/test_exception.py
Change-Id: Ia9099fb5020cee02bfee2cd0e8e111845918c36c
Closes-Bug: #
1496055
Co-Authored-By: Marian Horban <mhorban@mirantis.com>
Jenkins [Tue, 13 Oct 2015 03:57:17 +0000 (03:57 +0000)]
Merge "Improve coverage for snapshot_get_by_host"
OpenStack Proposal Bot [Tue, 13 Oct 2015 00:49:24 +0000 (00:49 +0000)]
Updated from global requirements
Change-Id: Ie93d63467c5cb5253b16c9f9737897fa4611b86f
Eric Harney [Mon, 12 Oct 2015 14:58:48 +0000 (10:58 -0400)]
Tox fast8: use pep8 env dir
This reuses the .tox/pep8 environment rather than
building a separate .tox/fast8 environment for
fast8.
This reduces duplicated install time and disk space.
Change-Id: I230465b28ba3d0f2c3a2ba38011ff9f7d472d719
Eric Harney [Thu, 1 Oct 2015 14:58:16 +0000 (10:58 -0400)]
Move ssh_utils tests to test_ssh_utils
The code was split from utils.py a bit ago,
should move the tests as well.
Change-Id: Ifff9d3f6eb8d3c1669102c06b040654be139ccd6
Victor Stinner [Mon, 12 Oct 2015 08:35:25 +0000 (10:35 +0200)]
Fix test_misc for WebOb 1.5
WebOb 1.5 was released at 2015-10-11. With this new version,
webob.exc.WSGIHTTPException() constructor now fails with a KeyError
when the HTTP status code is 0.
test_exceptions_raise() of test_misc tries to instanciate all
exceptions of cinder.exception. The problem is that
ConvertedException uses a default HTTP status code of 0.
Modify the default HTTP status code of ConvertedException to 400 to
fix the unit test. The bug is only in the test,
cinder/api/openstack/wsgi.py copies an existing HTTP code:
Fault(exception.ConvertedException(code=ex_value.code, ...)
Closes-Bug: #
1505153
Change-Id: I1aec8038774828d48da4b0e831b390e33243809a
Jenkins [Sun, 11 Oct 2015 20:42:55 +0000 (20:42 +0000)]
Merge "Convert Retry-After header parameter value to string"
Jenkins [Sat, 10 Oct 2015 16:03:55 +0000 (16:03 +0000)]
Merge "Port violin driver to Python 3"
Jenkins [Sat, 10 Oct 2015 01:50:28 +0000 (01:50 +0000)]
Merge "Remove unused 'deprecated' option from auth_strategy opt"
Jenkins [Sat, 10 Oct 2015 00:53:00 +0000 (00:53 +0000)]
Merge "Port EMC scaleio to Python 3"
Jenkins [Sat, 10 Oct 2015 00:51:05 +0000 (00:51 +0000)]
Merge "Fix error string format for replication API calls"
Jenkins [Fri, 9 Oct 2015 22:34:42 +0000 (22:34 +0000)]
Merge "Add updated_at into response of listing detail"
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
Jenkins [Fri, 9 Oct 2015 14:18:40 +0000 (14:18 +0000)]
Merge "Port ceph driver to Python 3"
Jenkins [Fri, 9 Oct 2015 12:16:17 +0000 (12:16 +0000)]
Merge "Port IBM flashsystem to Python 3"
Jenkins [Fri, 9 Oct 2015 11:32:35 +0000 (11:32 +0000)]
Merge "Port image cache to Python 3"
Jenkins [Fri, 9 Oct 2015 05:57:45 +0000 (05:57 +0000)]
Merge "Add fast format option for thick volume creation"
Jenkins [Fri, 9 Oct 2015 04:36:58 +0000 (04:36 +0000)]
Merge "Verify volume is replication capable"
Jenkins [Fri, 9 Oct 2015 04:36:47 +0000 (04:36 +0000)]
Merge "Retype enhancement for EMC VNX cinder driver"
Jenkins [Fri, 9 Oct 2015 02:16:06 +0000 (02:16 +0000)]
Merge "Handle KeyManager exception when deleting a volume"
Jenkins [Fri, 9 Oct 2015 01:56:41 +0000 (01:56 +0000)]
Merge "Port targets test_iet_driver to Python 3"
Jenkins [Fri, 9 Oct 2015 01:51:43 +0000 (01:51 +0000)]
Merge "Add insecure option for swift backup"
Jenkins [Fri, 9 Oct 2015 00:48:21 +0000 (00:48 +0000)]
Merge "Test_backup_swift: Don't leak notifications"
Jenkins [Thu, 8 Oct 2015 22:24:41 +0000 (22:24 +0000)]
Merge "Fix capacity report error in Huawei driver"
Jenkins [Thu, 8 Oct 2015 22:24:30 +0000 (22:24 +0000)]
Merge "Remove references to Swift in chunked driver"
Jenkins [Thu, 8 Oct 2015 22:24:19 +0000 (22:24 +0000)]
Merge "test_backup_nfs: Set volume id per test"
Jenkins [Thu, 8 Oct 2015 22:22:02 +0000 (22:22 +0000)]
Merge "XtremIO fix remapping bug"
Jenkins [Thu, 8 Oct 2015 22:12:20 +0000 (22:12 +0000)]
Merge "Add multi-initiator extra-spec for Nimble driver"
Jenkins [Thu, 8 Oct 2015 22:02:08 +0000 (22:02 +0000)]
Merge "ScaleIO: Fix protection_domain_id log message at init"
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
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
Eric Harney [Thu, 8 Oct 2015 18:46:21 +0000 (14:46 -0400)]
Provide better debug log when 'cinder manage' fails
Change this DEBUG log message from:
Updating volume:
7fd9a82d-0f11-4d1b-921d-
97186a4e2df4 with
{'status': 'error'} due to: ???
to:
Updating volume:
7fd9a82d-0f11-4d1b-921d-
97186a4e2df4 with
{'status': 'error'} due to: Volume create failed while
extracting volume ref.
When a volume manage operation fails here.
The subsequent ERROR log message remains as:
"Volume <id>: create failed"
Change-Id: I70c343a974926348f5e3b7e0fffbd0b976bc96a2
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
Jenkins [Thu, 8 Oct 2015 17:20:04 +0000 (17:20 +0000)]
Merge "test_backup_swift: Set volume id per test"
Jenkins [Thu, 8 Oct 2015 17:14:54 +0000 (17:14 +0000)]
Merge "Port test_srb to Python 3"
Jenkins [Thu, 8 Oct 2015 16:08:52 +0000 (16:08 +0000)]
Merge "Imported Translations from Zanata"
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
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
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
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
Jenkins [Thu, 8 Oct 2015 08:40:10 +0000 (08:40 +0000)]
Merge "Clone cg support in VNX driver"
Jenkins [Thu, 8 Oct 2015 08:39:55 +0000 (08:39 +0000)]
Merge "Add device identifier to replication device"
Jenkins [Thu, 8 Oct 2015 08:17:11 +0000 (08:17 +0000)]
Merge "Updated from global requirements"
Jenkins [Thu, 8 Oct 2015 07:54:29 +0000 (07:54 +0000)]
Merge "Add testresources and testscenarios used by oslo.db fixture"
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
Jenkins [Thu, 8 Oct 2015 05:08:56 +0000 (05:08 +0000)]
Merge "Fix SolidFire target composition"
Jenkins [Thu, 8 Oct 2015 03:40:50 +0000 (03:40 +0000)]
Merge "py3: Run unit tests with ostestr on Python 3.4"
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
OpenStack Proposal Bot [Thu, 8 Oct 2015 00:04:15 +0000 (00:04 +0000)]
Updated from global requirements
Change-Id: Ib3a6740b8729b02d3da725e9847eb292cef5649e
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
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
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
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
Jenkins [Wed, 7 Oct 2015 19:28:18 +0000 (19:28 +0000)]
Merge "Fix update quota of subprojects"
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
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
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
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
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
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
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
Jenkins [Wed, 7 Oct 2015 06:50:20 +0000 (06:50 +0000)]
Merge "Port scheduler host manager to Python 3"
Jenkins [Wed, 7 Oct 2015 05:43:03 +0000 (05:43 +0000)]
Merge "Dell Eqlx: Support over subscription in thin provisioning"
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
Jenkins [Wed, 7 Oct 2015 01:08:22 +0000 (01:08 +0000)]
Merge "HNAS iSCSI manage does not work with spaces"
Jenkins [Wed, 7 Oct 2015 00:43:48 +0000 (00:43 +0000)]
Merge "Add ability to set prefix in SolidFire Volume name"
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
Jenkins [Tue, 6 Oct 2015 21:55:34 +0000 (21:55 +0000)]
Merge "Port test_quobyte to Python 3"
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
Jenkins [Tue, 6 Oct 2015 20:55:32 +0000 (20:55 +0000)]
Merge "Fix broken format string in vol mgr log"
Jenkins [Tue, 6 Oct 2015 20:53:29 +0000 (20:53 +0000)]
Merge "Hacking check for opt name registration"
Jenkins [Tue, 6 Oct 2015 17:15:50 +0000 (17:15 +0000)]
Merge "VMAX Target iSCSI IP Address"
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
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
Jenkins [Tue, 6 Oct 2015 07:14:33 +0000 (07:14 +0000)]
Merge "Port test_netapp to Python 3"
Jenkins [Tue, 6 Oct 2015 06:57:24 +0000 (06:57 +0000)]
Merge "Port netapp SSC Cmode to Python 3"
Jenkins [Tue, 6 Oct 2015 06:57:13 +0000 (06:57 +0000)]
Merge "Detach volume on device validation failure"
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
OpenStack Proposal Bot [Mon, 5 Oct 2015 23:13:29 +0000 (23:13 +0000)]
Updated from global requirements
Change-Id: I870a7a95358ab8c8e94e2ab8d78bc7cddf2ed3f8
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
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
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
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
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
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
OpenStack Proposal Bot [Sun, 4 Oct 2015 22:40:02 +0000 (22:40 +0000)]
Updated from global requirements
Change-Id: Id75e695e0e25ad4505391dc1a5b131f8f2a9e9b8