Angela Smith [Wed, 24 Feb 2016 19:18:42 +0000 (11:18 -0800)]
Fix HTTP sessions left open in Brocade zone driver
Add missing call to logout html page on FC switch to close the HTTP
session on the FC switch in HTTP connector. Also, move the session
cleanup calls in the zone driver so that it is invoked for all code
paths.
Change-Id: Id08c1b1f1e75188cacfb9b5586519a7fee827602
Jenkins [Wed, 24 Feb 2016 18:14:32 +0000 (18:14 +0000)]
Merge "Force target_lun to be int type to make os-brick happy"
Jenkins [Wed, 24 Feb 2016 16:50:16 +0000 (16:50 +0000)]
Merge "Port netapp dataontap driver to Python 3"
Jenkins [Wed, 24 Feb 2016 16:49:48 +0000 (16:49 +0000)]
Merge "Scalable backup service - Liberty compatibility"
Jenkins [Wed, 24 Feb 2016 15:47:46 +0000 (15:47 +0000)]
Merge "Port infortrend driver to Python 3"
Jenkins [Wed, 24 Feb 2016 15:02:44 +0000 (15:02 +0000)]
Merge "Fix service-list filter"
Victor Stinner [Mon, 15 Feb 2016 15:51:20 +0000 (16:51 +0100)]
Port netapp dataontap driver to Python 3
With this change, all unit tests on volume drivers pass on Python 3.
Changes:
* Replace a/b with a//b to get an integer on Python 3.
* Replace map(...) and filter(...) with a list-comprehension to get a
list on Python 3.
* Replace dict.keys() with list(dict.keys()) to get a list
on Python 3.
* Replace (str, int, float, long) with
six.integer_types + (str, float): long type was removed
from Python 3.
* decode_base32_to_hex(): on Python 3, decode encode_hex_to_base32()
to return a Unicode string.
* convert_es_fmt_to_uuid(): encode/decode on Python 3 to pass the
right types to base64.b32decode() (bytes) and uuid.UUID()
(Unicode).
* fakes.py: Change type of XML document from Unicode to bytes: add
b prefix to literal strings (b'...').
* Replace range(a, b) with list(range(a, b)) to get a list
on Python 3.
* tests-py3.txt: add cinder.tests.unit.volume.drivers, all volume
drivers tests now pass on Python 3.
Partial-Implements: blueprint cinder-python3
Change-Id: Iee609f72bbbef3789fa5e970d209047a113d005c
Jenkins [Wed, 24 Feb 2016 11:45:06 +0000 (11:45 +0000)]
Merge "HNAS driver: Fix SSH and cluster_admin_ip0 bug"
Jenkins [Wed, 24 Feb 2016 10:47:13 +0000 (10:47 +0000)]
Merge "NetApp: E-Series remove snapshot limitations"
LisaLi [Fri, 19 Feb 2016 08:28:36 +0000 (09:28 +0100)]
Scalable backup service - Liberty compatibility
To support rolling upgrades we need to make sure that Mitaka's services
are running fine with Liberty's. It gets complicated with backups as
we've strongly reworked them. Main difference is that Mitaka c-bak can
handle backup/restore of any volume and Liberty was restricted to
operate only on volumes placed on the same node.
Now when running in version heterogeneous environment we need to use old
way of backup jobs scheduling and switch to new one (round robin) only
when everything is running Mitaka.
This commit implements that by adding a dummy backup RPC API version
(1.3) that marks the beginning of scalable backups era. Jobs are
scheduled the new way only if every c-bak reports that (or higher)
version.
There are also small changes to volume.rpcapi - to fail fast if some
c-vol services aren't supporting new calls required by scalable backups
feature. This allows us to error out backups with proper message when
upgrade was done in an improper way (in Mitaka we require c-vols to be
upgraded before c-baks).
This commit also includes small changes to CinderObjectSerializer to
block tries to "forwardport" an object when sending it over RPC. If a
service receives an older object it should handle it explicitly.
Related-Blueprint: scalable-backup-service
Co-Authored-By: Michal Dulko <michal.dulko@intel.com>
Change-Id: I45324336ba00726d53cfa012e8bd498868919a8c
Jenkins [Wed, 24 Feb 2016 03:30:16 +0000 (03:30 +0000)]
Merge "Include allocated quota value in the quota reserve"
Richard Hedlind [Wed, 24 Feb 2016 00:51:01 +0000 (17:51 -0700)]
Force target_lun to be int type to make os-brick happy
The X-IO driver was returning the target_lun field as a string
from initialize_connection. It has to be an int to not cause
breakage later on.
Change-Id: I41c91b78753a2007c243ed30731f0a0cd92e68b5
Closes-Bug: #
1549048
Jenkins [Tue, 23 Feb 2016 22:56:48 +0000 (22:56 +0000)]
Merge "Huawei: Fixed url range"
Jenkins [Tue, 23 Feb 2016 17:56:01 +0000 (17:56 +0000)]
Merge "3PAR get host by WWN now handles mixed cases"
Jenkins [Tue, 23 Feb 2016 17:55:41 +0000 (17:55 +0000)]
Merge "Fix invalid uuid warnings in object unit tests"
Jenkins [Tue, 23 Feb 2016 17:55:28 +0000 (17:55 +0000)]
Merge "Filtering type extra-spec support to ZFSSA drivers"
Jenkins [Tue, 23 Feb 2016 17:55:09 +0000 (17:55 +0000)]
Merge "Zfssaiscsi driver should not use 'default' initiator group"
Tom Barron [Tue, 23 Feb 2016 02:17:25 +0000 (21:17 -0500)]
Fix invalid uuid warnings in object unit tests
Currently 'tox -epy27 -- --regex cinder.tests.unit.objects' emits
74 FutureWarnings from oslo.versionedobjects about invalid uuids
as documented here[1].
This commit changes these tests to use valid uuids so that when
they are run these warnings are no longer emitted.
[1] http://docs.openstack.org/developer/oslo.versionedobjects/api/fields.html#oslo_versionedobjects.fields.UUIDField
Change-Id: I8c8ac25f695adec61b5e506ddf99780448ee224e
OpenStack Proposal Bot [Tue, 23 Feb 2016 06:42:04 +0000 (06:42 +0000)]
Imported Translations from Zanata
For more information about this automatic import see:
https://wiki.openstack.org/wiki/Translations/Infrastructure
Change-Id: Icf324033645737566a95eb363bfb337f66888d43
Jenkins [Tue, 23 Feb 2016 06:28:33 +0000 (06:28 +0000)]
Merge "Port test_emc_vnx to Python 3"
Jenkins [Mon, 22 Feb 2016 23:19:31 +0000 (23:19 +0000)]
Merge "Huawei: Ensure the port is online"
Jenkins [Mon, 22 Feb 2016 22:28:48 +0000 (22:28 +0000)]
Merge "Fix XtremIO multi cluster support"
Jenkins [Mon, 22 Feb 2016 13:13:48 +0000 (13:13 +0000)]
Merge "Add SIGHUP handlers to reset RPC version pins"
huananhuawei [Mon, 22 Feb 2016 06:14:04 +0000 (14:14 +0800)]
Huawei: Fixed url range
There is a large number of URL range fields
in the code that need to be rectified with
specifications referenced to the array .
Change-Id: Iad40907995aa4f1c651fcd3f7d4f3a58bfb00c11
Closes-Bug: #
1548167
Jenkins [Mon, 22 Feb 2016 02:59:09 +0000 (02:59 +0000)]
Merge "[LVM] Restore target config during ensure_export"
Jenkins [Mon, 22 Feb 2016 01:52:47 +0000 (01:52 +0000)]
Merge "Port hgst driver to Python 3"
OpenStack Proposal Bot [Sat, 20 Feb 2016 21:54:23 +0000 (21:54 +0000)]
Updated from global requirements
Change-Id: Ia50dcbe23d08edd1e4cbadf8e4c75684d0e0a1aa
Jenkins [Sat, 20 Feb 2016 06:50:00 +0000 (06:50 +0000)]
Merge "Filter & goodness functions in NetApp drivers"
Jenkins [Sat, 20 Feb 2016 04:48:47 +0000 (04:48 +0000)]
Merge "Wait for periodic tasks to stop on exit"
Jenkins [Sat, 20 Feb 2016 01:43:58 +0000 (01:43 +0000)]
Merge "Remove useless get_replication_updates driver call"
Jenkins [Fri, 19 Feb 2016 23:33:51 +0000 (23:33 +0000)]
Merge "Split out NestedQuotas into a separate driver"
John Griffith [Fri, 19 Feb 2016 21:16:54 +0000 (14:16 -0700)]
Remove useless get_replication_updates driver call
We had the call in the manager as part of a periodic,
it did nothing at all. Some drivers had comments "no idea
what to do with this", even better we had unit tests that
faked out a call that returned nothing and asserted it was
nothing. ?!?
Let's just remove it
Change-Id: I3c1ef6065e73d90912d7f765d581add9bc704c7b
Closes-Bug: #
1547666
Mitsuhiro Tanino [Fri, 22 Jan 2016 16:31:25 +0000 (11:31 -0500)]
[LVM] Restore target config during ensure_export
If server crash or reboot happened, LIO target configuration
will be initialized after boot up a server. Currently, Cinder
has a functionality to save LIO target configuration to save
file at several checkpoint.
If LIO target service is configured properly, LIO target
configuration is restored by this service during boot up
a server, but if not, existing in-use volumes would become
inconsistent status after c-vol service starts.
If there is no iSCSI target configuration during
ensure_export, LIO dirver should restore the saved
configuration file to avoid the problem.
Closes-Bug: #
1536248
Change-Id: I74d300ba26a08b6f423f5ed3e13495b73cfbbd52
Jenkins [Fri, 19 Feb 2016 16:53:25 +0000 (16:53 +0000)]
Merge "Test middleware test_faults to Python 3"
Jenkins [Fri, 19 Feb 2016 16:49:08 +0000 (16:49 +0000)]
Merge "Fix last Python 3 issues in zonemanager"
Jenkins [Fri, 19 Feb 2016 16:21:44 +0000 (16:21 +0000)]
Merge "Update quota when volume type renames"
Kurt Martin [Wed, 17 Feb 2016 21:58:41 +0000 (13:58 -0800)]
3PAR get host by WWN now handles mixed cases
The 3PAR driver comparison of WWNs will be able to handle
WWNs with upper/lower case differences. For example, the
driver code can now locate a 3PAR host with a WWN of
123abc6789012345 or
123ABD6789012345.
Change-Id: I571713f34ec3737123920acdbf20999baccd90b2
Closes-Bug:
1546453
Michael Price [Fri, 23 Oct 2015 20:52:12 +0000 (13:52 -0700)]
NetApp: E-Series remove snapshot limitations
The E-Series backend does not allow snapshots defined under a snapshot
group to be deleted out of order. Only the oldest snapshot image may
be deleted. In order to work around this behavior, we would only define
a single snapshot on each snapshot group. Unfortunately, this would
limit the total number of snapshots to a total of 4 per volume.
In order to remove this limitation without causing deletion errors
when a newer snapshot is deleted, a soft-delete was implemented that
will remove the snapshot from Cinder management and purge the
snapshot from the backend once other dependent snapshots have been
deleted.
In order to ensure that our clone operations have a snapshot group
available, one of the 4 snapshot groups that can be defined on a
volume will be reserved for clone operations and will not be
allowed to be utilized for snapshot creation. This will limit the
total number of snapshots supported per volume to a maximum of 96.
The new 1.4 version of the WebServices proxy is required in order
to support the full snapshot behavior. Since snapshots are such
an integral part of the driver, 1.4 is now required for running
the driver with this release.
Co-Authored-By: Erik Johannes <erik.johannes@netapp.com>
Change-Id: Ie097743b167c1086ecf0536ad696786bdcd241b2
Michał Dulko [Fri, 5 Feb 2016 14:41:01 +0000 (15:41 +0100)]
Add SIGHUP handlers to reset RPC version pins
Adding SIGHUP handlers (by implementing reset from oslo.service) to
cinder-scheduler, cinder-backup and cinder-volume that reset cached RPC
version pins. This is to avoid the need to restart all the services when
upgrade of the deployment is completed.
Some changes go a little deep into the stack, because to reload all the
pins we need to recreate <service>.rpcapi.<service>API objects that are
stored in the memory.
Please note that SIGHUP signal is handled by oslo.service only when
service runs in daemon mode (without tty attached). To test this commit
in DevStack you need to add "&" to the end of the command that starts
the service.
Situation is more complicated with the API service, so we're leaving it
with restart required for now. In the deployments with HA cinder-api is
typically behind a load balancer, so restarting individual nodes
one-by-one should be easy.
DocImpact: Add information on rolling upgrades procedures to the docs.
Implements: blueprint rpc-object-compatibility
Change-Id: I03ed74e17dc9a4b9aa2ddcfbeb36a106a0f035f8
Jenkins [Fri, 19 Feb 2016 04:06:35 +0000 (04:06 +0000)]
Merge "Coho volume stats update"
Jenkins [Fri, 19 Feb 2016 00:24:49 +0000 (00:24 +0000)]
Merge "Roll back reservations quota in RPC if necessary"
Jenkins [Fri, 19 Feb 2016 00:21:57 +0000 (00:21 +0000)]
Merge "Rtstool sets wrong exception message on save"
Jenkins [Thu, 18 Feb 2016 18:54:26 +0000 (18:54 +0000)]
Merge "Scaling backup service"
Wilson Liu [Sat, 23 Jan 2016 02:35:08 +0000 (10:35 +0800)]
Huawei: Ensure the port is online
There is a function whose purpose is get online port,
but in fact the port we get maybe not really online.
Closes-Bug: #
1536046
Change-Id: If8d6facf429fa8c90f090602d368f6d3657c8a25
Jenkins [Thu, 18 Feb 2016 14:24:31 +0000 (14:24 +0000)]
Merge "Delete unuseful code in Huawei driver"
Gorka Eguileor [Thu, 18 Feb 2016 12:51:40 +0000 (13:51 +0100)]
Rtstool sets wrong exception message on save
Rtstool does not properly set the message on the RtstoolError exception
on the save_to_file method (save operation) because it's passing
formatting arguments as if it were a LOG call instead of formatting
those same arguments with
%.
There are 2 cases where this can happen, when saving to the default
location on a system that has no target.service installed and the
creation of the default directory fails, and when saving the file
actually fails.
This patch properly formats the message before passing it to the
instantiation of RtstoolError exception.
Change-Id: I13492f695dc0a63a616325bcd0893b2f908cf9fe
Closes-Bug: #
1547008
Victor Stinner [Tue, 24 Nov 2015 16:49:21 +0000 (17:49 +0100)]
Test middleware test_faults to Python 3
* XMLDictSerializer: sort dictionary items to get a reliable XML
output. On Python 3, dictionary items are iterated in a random
order, because the hash function is randomized by default.
* Use byte strings for HTTP body
* On Python 3, decode serialized data to get Unicode
* Add a base TestCase class to factorize the _prepare_xml() method
* tests-py3.txt: add cinder.tests.unit.api.middleware.test_faults
Partial-Implements: blueprint cinder-python3
Change-Id: I81cd509230265f47f8c00ade14c71f66c717ca81
Jenkins [Thu, 18 Feb 2016 10:41:52 +0000 (10:41 +0000)]
Merge "Add restore_volume_id in backup"
Ryan McNair [Sat, 30 Jan 2016 16:24:32 +0000 (16:24 +0000)]
Split out NestedQuotas into a separate driver
Fixes the following issues with NestedQuotas:
* Requires conf setting change to use nested quota driver
* Enforces default child quota value with volume creation
* Disables the use of -1 to be set for child quotas
* Adds an admin only API command which can be used to validate
the current setup for nested quotas, and can update existing
allocated quotas in the DB which have been incorrectly set
by previous use of child limits with -1
There will be follow-up patches with the following improvements:
* make -1 limits functional for child projects
* cache the Keystone project heirarchies to improve efficiency
Note: ideally validation of nested quotas would occur in the setup
of the nested quota driver, but doing the validation requires a
view of ALL projects present in Keystone, so unless we require Keystone
change to allow "cinder" service user to be able to list/get projects,
we need the admin-only API for validation that should be called by
cloud-admin.
DocImpact
Change-Id: Ibbd6f47c370d8f10c08cba358574b55e3059dcd1
Closes-Bug: #
1531502
Partial-Bug: #
1537189
Related-Bug: #
1535878
Jenkins [Wed, 17 Feb 2016 20:03:12 +0000 (20:03 +0000)]
Merge "Profiler: make it possible to run without loading osprofiler"
Jenkins [Wed, 17 Feb 2016 18:20:20 +0000 (18:20 +0000)]
Merge "EMC VMAX - necessary updates for CG changes"
Jenkins [Wed, 17 Feb 2016 18:18:03 +0000 (18:18 +0000)]
Merge "Remove Cisco FC Zone Manager Driver"
Ivan Kolodyazhny [Wed, 17 Feb 2016 14:04:40 +0000 (16:04 +0200)]
Revert changes to use ostestr
ostestr has more user-friendly output including lists of all and failed
tests.
Change-Id: I1f715a5688d702aaf8489928a1b0a39093caa5da
Jenkins [Wed, 17 Feb 2016 01:58:45 +0000 (01:58 +0000)]
Merge "Cleanup unused conf variables"
Jenkins [Wed, 17 Feb 2016 01:39:41 +0000 (01:39 +0000)]
Merge "Storwize/SVC: Volume manage using source-name"
Jenkins [Wed, 17 Feb 2016 00:24:44 +0000 (00:24 +0000)]
Merge "Dell: Failed vol create could leave dead volumes"
Jenkins [Tue, 16 Feb 2016 19:24:21 +0000 (19:24 +0000)]
Merge "Port API v1 and v2 to Python 3"
Jenkins [Tue, 16 Feb 2016 19:22:33 +0000 (19:22 +0000)]
Merge "Port API contribs to Python 3"
Gorka Eguileor [Tue, 16 Feb 2016 18:03:49 +0000 (19:03 +0100)]
Wait for periodic tasks to stop on exit
When a Service in Cinder exits it stops all operations and waits for
them to complete, and it also stops all periodica tasks created with
FixedIntervalLoop, but it doesn't wait until these are completed.
This patch will wait for all periodic tasks that received the stop
request without raising an exception before exiting.
Change-Id: I984b8aebd40f9482f0cf8098146d1ccd635dc1d6
Closes-Bug: #
1546234
Tom Swanson [Mon, 15 Feb 2016 17:42:34 +0000 (11:42 -0600)]
Dell: Failed vol create could leave dead volumes
Added _cleanup_failed_create_volume which tries to delete any
partially created volumes.
Change-Id: I1f2f549b364a013b713e193591d08b9e9376569e
Closes-Bug:
1546161
Jenkins [Tue, 16 Feb 2016 14:39:48 +0000 (14:39 +0000)]
Merge "Disable Rally backup-related scenarios"
Nate Potter [Mon, 4 Jan 2016 23:10:19 +0000 (23:10 +0000)]
Roll back reservations quota in RPC if necessary
Currently the latest version of the volume rpcapi passes along
old_reservations in retype whereas older versions do not. In the
case where old_reservations aren't passed, they will be checked again
in c-vol. This patch rolls back the quotas that were checked for
old_reservations if the client can't send the latest version in
the RPCAPI so that they aren't reserved twice.
This is an amendment to this recently merged patch:
Iba24edd8ad824837028353b52c90742df55c9173
Closes-Bug:
1546089
Related-bug:
1508249
Change-Id: I54b39f367b8552ed5e932c71265432e7cf72c073
Jenkins [Tue, 16 Feb 2016 10:51:30 +0000 (10:51 +0000)]
Merge "Move integrated tests to 'functional' directory"
LisaLi [Wed, 30 Dec 2015 07:03:10 +0000 (15:03 +0800)]
Scaling backup service
Currently the cinder backup service is tightly coupled to the cinder
volume service in ways that prevent scaling out backup services
horizontally across multiple physical nodes.
This patch is to loosen this coupling to enable backup processes
to run on multiple nodes without having to be colocated with volume
services.
The following works are not included in this patch:
1. Remote attach snapshot.
2. Vendor specific work.
3. Remove current backup_volume in driver.
4. Rolling upgrades.
DocImpact
Change-Id: I743e676372703e74178c79683dd622d530981e04
Partial-Implements: bp scalable-backup-service
Co-Authored-By: Tom Barron <tpb@dyncloud.net>
huyang [Tue, 16 Feb 2016 01:04:19 +0000 (09:04 +0800)]
Delete unuseful code in Huawei driver
In Huawei driver, "get_remote_device_info" is
unused. So delete it.
Change-Id: Ia13405d1b62f022a8410e10bc07455d02085d3d0
Closes-Bug: #
1545894
Michael Still [Tue, 16 Feb 2016 00:24:43 +0000 (11:24 +1100)]
Cleanup unused conf variables
I noticed in nova that we had a lot of unused conf variables. I
wondered if this was a thing in other projects as well. Turns out
it is.
Change-Id: I2424e32dd4ad61881d9b6a0449e12937ea8151e0
Jenkins [Mon, 15 Feb 2016 23:52:05 +0000 (23:52 +0000)]
Merge "Profiler: don't call trace_cls if profiler is not enabled"
Jenkins [Mon, 15 Feb 2016 23:41:31 +0000 (23:41 +0000)]
Merge "py3: Fix usage of JSON in API contrib"
Jenkins [Mon, 15 Feb 2016 23:30:12 +0000 (23:30 +0000)]
Merge "Add missing requirements"
Victor Stinner [Tue, 9 Feb 2016 17:56:06 +0000 (18:56 +0100)]
Port infortrend driver to Python 3
* InfortrendCommon: sort dictionary items to get a reliable
behaviour. On Python 3, the hash function is randomized by default.
- _get_minimun_mapping_channel_id(): sort LUN mapping by keys
- _do_fc_connection(): sort initiator_target_map keys
* InfortrendCommon._create_partition_with_pool(): cast gi_to_mi()
result to int. On Python 3, gi_to_mi() returns a float (a/b always
return a float, even for int/int).
* test_retype_with_migrate(): build create_params using a dictionary
to create parameter in the same order than the driver.
* tests-py3.txt: cinder.tests.unit.test_infortrend_common
Change-Id: Idd849a9cd5dc0ad17c5d8d54da489346c018e778
Jenkins [Mon, 15 Feb 2016 19:56:22 +0000 (19:56 +0000)]
Merge "Tests: Set volume listen port to test_service_listen_port"
Jenkins [Mon, 15 Feb 2016 19:13:00 +0000 (19:13 +0000)]
Merge "Sheepdog: Fix malformed image url format"
Jenkins [Mon, 15 Feb 2016 19:05:22 +0000 (19:05 +0000)]
Merge "Port utils.safe_minidom_parse_string() to Python 3"
Jenkins [Mon, 15 Feb 2016 18:55:41 +0000 (18:55 +0000)]
Merge "Support for consistency groups in ScaleIO driver"
Ivan Kolodyazhny [Mon, 15 Feb 2016 18:44:52 +0000 (20:44 +0200)]
Disable Rally backup-related scenarios
Backup tests failed on gates due to the configuration
or Rally issue. Let's skip them until bug #
1543987 will
be fixed.
Change-Id: Ic99531dad4fab5e22e295e19bbfa94c782212d2c
Related-Bug: #
1543987
Jenkins [Mon, 15 Feb 2016 17:59:28 +0000 (17:59 +0000)]
Merge "Huawei: Implement v2 replication (managed)"
Victor Stinner [Mon, 15 Feb 2016 17:27:17 +0000 (18:27 +0100)]
Fix last Python 3 issues in zonemanager
* Replace auth_string.encode("base64", strict") with
oslo_serialization.base64.encode_as_text(auth_string).
* tests-py3.txt: add cinder.tests.unit.zonemanager, add zonemanager
unit tests now pass on Python 3
Partial-Implements: blueprint cinder-python3
Change-Id: I527637e182fc3b463bcf5657afbbd129149e7ecc
Jenkins [Mon, 15 Feb 2016 17:14:20 +0000 (17:14 +0000)]
Merge "RBD: use versioned objects"
Jenkins [Mon, 15 Feb 2016 17:00:24 +0000 (17:00 +0000)]
Merge "Updated from global requirements"
Jenkins [Mon, 15 Feb 2016 16:42:22 +0000 (16:42 +0000)]
Merge "Fix 'asert' typo in unit test"
Victor Stinner [Mon, 15 Feb 2016 10:15:13 +0000 (11:15 +0100)]
Port hgst driver to Python 3
* hgst: replace a/b with a//b to get integer on Python 3
* tests-py3.txt: add cinder.tests.unit.volume.drivers.test_hgst
Partial-Implements: blueprint cinder-python3
Change-Id: I5a5fcbc92101b8d928ac80c74698f6cc8f8723d2
Victor Stinner [Tue, 9 Feb 2016 13:36:45 +0000 (14:36 +0100)]
Port API v1 and v2 to Python 3
* Replace jsonutils.dumps() with jsonutils.dump_as_bytes() since
output is used for the HTTP body, and HTTP body type is bytes, not
Unicode. On Python 3, jsonutils.dumps() returns Unicode.
* FakeHttplibSocket: replace io.StringIO with io.BytesIO, HTTP body
type is bytes. Encode Unicode to UTF-8.
* Fix FakeHttplibSocket.makefile() API: only the first parameter is
mandatory. On Python 3, it's only called with the first 'mode'
parameter.
* Use bytes strings to test HTTP bodies (JSON or XML).
* Replace dict.values() with list(dict.values()) to get a list on
Python 3.
* Replace error.message with encodeutils.exception_to_unicode(error),
exceptions loose their message attribute in Python 3.
* Update JSON serializer test in test_wsgi.py to use bytes.
* tests-py3.txt: add cinder.tests.unit.api.v1 and
cinder.tests.unit.api.v2
Partial-Implements: blueprint cinder-python3
Change-Id: I0f0048f4a1344feaa3434cbf7ebd31e3f12d6ae4
Victor Stinner [Tue, 9 Feb 2016 17:40:21 +0000 (18:40 +0100)]
Port API contribs to Python 3
* Replace dict.iteritems() with dict.items(), dict.iteritems() was
removed in Python 3.
* Replace dict.values() with list(dict.values()) to get a list on
Python 3.
* HTTP body type must be bytes:
- Fix unit tests to use bytes strings for HTTP body
- Encode XML to UTF-8 on Python 3.
* Use "%r" instead of "%s" to format request and response in test to
avoid BytesWarning on Python 3.
* tests-py3.txt: add cinder.tests.unit.api.contrib
Partial-Implements: blueprint cinder-python3
Change-Id: I65e412b2897635db5c8dfe13d61e71c52e0603e7
Victor Stinner [Mon, 15 Feb 2016 13:43:32 +0000 (14:43 +0100)]
Port test_emc_vnx to Python 3
* Configuration.__getattr__(): replace self.local_conf with
object.__getattribute__(self, 'local_conf') to avoid reentrant call
to __getattr__() in copy.copy(conf) on Python 3.
* test_emc_vnx: Don't compare directly provider_location strings but
set of provider_location items to support hash randomization. On
Python 3, hash randomization is enabled by default and so
dictionary items are rendered in an random order.
* test_emc_vnx: use assertIn() to check if the provider_location
contains 'type^smp' substring. Before, the test failed if the
substring was a the beginning of the string (position 0).
* tests-py3.txt: add cinder.tests.unit.test_emc_vnx
Partial-Implements: blueprint cinder-python3
Related-Bug:
1348818
Change-Id: If3be17ca6a1d14d6f1a16ee9934221f77e161686
Yuriy Nesenenko [Mon, 4 Jan 2016 13:14:15 +0000 (15:14 +0200)]
Fix service-list filter
Currently cinder service list --host=<hostname> will not show any
results for the volume services. This is because the volume-services
append an internal pool name to the hostname and as a result there
won't be a match for the specific filter. This patch fixes the
incorrect work of service-list with '--host' argument. Also it filters
data on the DB side to improve performance.
APIImpact
Closes-Bug:
1530144
Change-Id: I21775106693176ca128dbfd9db0d43cfc58de00a
Depends-On: I4044ab15078ecf54447e1c6e67c27fc8d7c9d6f7
Bardia Keyoumarsi [Fri, 12 Feb 2016 20:06:25 +0000 (12:06 -0800)]
Coho volume stats update
Return better driver volume statistics.
Change-Id: I643922703f993d4a65ba01afa0b2680a23456e77
YAMADA Hideki [Mon, 15 Feb 2016 08:49:45 +0000 (08:49 +0000)]
Sheepdog: Fix malformed image url format
The image url format is defined in glance_store as
"sheepdog://addr:port:image".
Change-Id: I71f3e4bf75dd6fdfd77ab8bf2afcd43e0eba2d44
Closes-Bug:
1545603
Signed-off-by: YAMADA Hideki <yamada.hideki@lab.ntt.co.jp>
Jenkins [Mon, 15 Feb 2016 07:16:34 +0000 (07:16 +0000)]
Merge "Log stack trace for middleware faults"
Jenkins [Mon, 15 Feb 2016 07:15:11 +0000 (07:15 +0000)]
Merge "Don't use Mock.called_once_with that does not exist"
LisaLi [Fri, 15 Jan 2016 08:12:45 +0000 (16:12 +0800)]
Update quota when volume type renames
When customers rename volume type, the corresponding quota_usages
should be changed. Or else quota_usage shows incorrect data.
Meanwhile, it deletes quota_usages whose corresponding volume
types don't exist. These invalid data are left when renaming
volume types in old versions.
Closes-bug: #
1473183
Change-Id: I9071821f8c1a95fccef214868e5cea026fed9657
Co-Authored-By: wanghao <wanghao749@huawei.com>
LisaLi [Thu, 24 Dec 2015 03:16:26 +0000 (11:16 +0800)]
Add restore_volume_id in backup
This patch is to add restore_volume_id in backup object.
When restoring a volume from a backup, it saves the
volume in backup object.
Currently volume service and backup service are in same host.
When backup service starts, it does cleanup tasks on both
backups and volumes on current host.
But with bp scalable-backup-service, backup service and
volume services can run on different hosts. When doing cleanup
tasks, we need to find out backing-up and restoring volumes
related to the backups on current host. Backing-up volumes can
be found with field backup.volume_id. Restoring volumes are found
by new field backup.restore_volume_id.
Change-Id: I757be7a5e47fc366c181400587b5a61fe3709a0b
Partial-Implements: bp scalable-backup-service
Co-Authored-By: Tom Barron <tpb@dyncloud.net>
OpenStack Proposal Bot [Sun, 14 Feb 2016 23:06:38 +0000 (23:06 +0000)]
Updated from global requirements
Change-Id: I55bcdd350571a96e5bdefb5a820fe84a633f63cf
Jenkins [Sun, 14 Feb 2016 16:51:08 +0000 (16:51 +0000)]
Merge "Fix dynamic import of CONF.volume_api_class"
Jenkins [Sun, 14 Feb 2016 16:50:24 +0000 (16:50 +0000)]
Merge "Update db in CGSnapshot create"
Matan Sabag [Mon, 18 Jan 2016 14:35:25 +0000 (06:35 -0800)]
Support for consistency groups in ScaleIO driver
Add support for all consistency groups functionalities
in ScaleIO driver.
Also fixed a small mistake in a test regarding deleting a snapshot.
DocImpact
Implements: blueprint scaleio-consistency-groups
Change-Id: Id8b52aeb546f9f5fa68b98a4e59bd3f12e78bbef
Tom Barron [Fri, 12 Feb 2016 16:48:16 +0000 (11:48 -0500)]
Fix 'asert' typo in unit test
The dellscapi unit tests contain two occurences of an
apparent typo, 'mock_get_volume_list.asert_called_once_with'.
Because mock will magically create an 'asert_called_once_with'
method, this typo masks a problem with the test_manage_unmanage
test where the wrong set of arguments is expected.
This commit substitutes 'assert' for 'asert' in these occurences
and fixes up the test_manage_unmanage test.
Change-Id: I0f1b370ef61b28a46ab48d40595c79ec13e359f8
Cory Stone [Mon, 8 Feb 2016 17:22:59 +0000 (11:22 -0600)]
Fix dynamic import of CONF.volume_api_class
Modifies the import to actually happen when API() is called instead of
when the module is loaded.
This is necessary because CONF.volume_api_class is always evaluated as
the default value since the config file hadn't been parsed yet when the
module is loaded.
Nova fixed this problem a while ago for the compute driver in
https://review.openstack.org/#/c/14353/.
Change-Id: I4c3d6b4300298ad0ac4e40a7a1a815cbf88bb151
Closes-Bug: #
1543219
Clinton Knight [Sat, 23 Jan 2016 00:02:00 +0000 (19:02 -0500)]
Filter & goodness functions in NetApp drivers
This commit adds a performance module that utilizes various
performance APIs to measure storage controller node utilization
for each pool, and to report those metrics to the Cinder scheduler
via the standard filter & goodness functions. Both Clustered and
7-mode Data ONTAP driver flavors are supported across NFS and
iSCSI/FC protocols.
Implements: blueprint netapp-data-ontap-goodness-functions
Change-Id: I1a550edb5f6e94854d1adc7f750a904deed0002c
Xing Yang [Sun, 22 Nov 2015 03:19:12 +0000 (22:19 -0500)]
Manage/unmanage volume in ScaleIO driver
Add support for manage/unmanage volume in the ScaleIO driver.
Also fixed an error code for volume not found.
DocImpact
Implements: blueprint scaleio-manage-existing
Closes-Bug: #
1545023
Change-Id: I14ad94905aaa7ea2bef7c75011a40c5d057e1cc0
Adriano Rosso [Fri, 5 Feb 2016 17:41:01 +0000 (15:41 -0200)]
HNAS driver: Fix SSH and cluster_admin_ip0 bug
HNAS driver has 2 configuration options:
- SSC (ssh_enabled: False ): requires a local utility package
installed to run the commands
- SSH (ssh_enabled: True): Runs the commands using the utility
package installed on HNAS
Currently, the HNAS driver is considering the "ssh_enabled" and the
"cluster_admin_ip0" tags to decide if the command to get the utility
package version should be ran locally or not. This is not correct
because the "cluster_admin_ip0" tag is not mandatory even if the SSH
mode is enabled.
So, if we have a situation that SSH is enabled and the
"cluster_admin_ip0" does not exist in the configuration, the driver
tries to run the command to get the utility package version locally
and its initialization breaks.
This patch makes the driver consider only the "ssh_enabled" tag
value to decide if the command to get the utility package version
is necessary.
Change-Id: I29fb5d7199e10eafee329dbd4ccef524245fbc28
Closes-Bug:
1543208