[release-announce] cinder 15.4.0 (train)
no-reply at openstack.org
no-reply at openstack.org
Thu Oct 1 17:32:09 UTC 2020
We exuberantly announce the release of:
cinder 15.4.0: OpenStack Block Storage
This release is part of the train stable release series.
The source is available from:
https://opendev.org/openstack/cinder
Download the package from:
https://tarballs.openstack.org/cinder/
Please report issues through:
https://bugs.launchpad.net/cinder/+bugs
For more details, please see below.
15.4.0
^^^^^^
Prelude
*******
The Cinder project team would like to point out some issues addressed
by this release:
* The online data migrations for Train have been updated to address
an upgrade issue (Bug #1893107
(https://bugs.launchpad.net/cinder/+bug/1893107)). The issue does
not manifest itself in the Train release of cinder, but under
specific circumstances it can prevent a cinder database upgrade from
Train to Ussuri. See the "Upgrade Notes" and "Bug Fixes" sections
below for more information.
* This release improves the handling of the "__DEFAULT__" volume-
type (see "Other Notes", below) and fixes Bug #1879578
(https://bugs.launchpad.net/cinder/+bug/1879578), in which the
default type was applied too aggressively (see the discussion of
this issue in "Bug Fixes", below).
* Operators affected by OSSN-0086
(https://wiki.openstack.org/wiki/OSSN/OSSN-0086) should note that
this release updates the os-brick library used by cinder to version
2.10.5 in order to address an issue associated with the previous
fixes for Bug #1823200
(https://bugs.launchpad.net/cinder/+bug/1823200).
Known Issues
************
* HPE 3PAR driver now supports networks with duplicated FQDNs via
configuration option *unique_fqdn_network* so attaching in these
networks will work (bug #1834695).
Upgrade Notes
*************
* The "default_volume_type" configuration option is now required to
have a value. The default value is "__DEFAULT__", so you should see
no change in behavior whether or not you have set a value for
"default_volume_type". See Bug #1886632
(https://bugs.launchpad.net/cinder/+bug/1886632) for more
information about this change.
* This release modifies the online database migrations to address an
an upgrade issue (Bug #1893107
(https://bugs.launchpad.net/cinder/+bug/1893107)). The issue does
not manifest itself in the Train release of cinder, but under
specific circumstances it can prevent a cinder database upgrade from
Train to Ussuri.
This upgrade notice applies to you only if **all** of the following
conditions are met:
1. You upgraded to Train from Stein
2. Before upgrading from Stein, you did **not** purge the cinder
database
3. Your original upgrade from Stein was to cinder version 15.3.0
or earlier.
Note: If you are upgrading a Stein installation directly to
this release (cinder 15.4.0) or later, this notice does *not*
apply to you.
If all the above three items apply to you, as part of your upgrade
to cinder 15.4.0 you should re-run the online database migrations
contained in this release. This will prepare your cinder database
for an eventual upgrade to the Ussuri release.
Note: The online database migrations in this release require the
existence of a volume type named "__DEFAULT__". A "__DEFAULT__"
volume type was created as part of your original installation
of/upgrade to a Train release of cinder. If you have renamed (or
renamed and deleted) the "__DEFAULT__" volume type, you must re-
create it before running the online migrations. (If you renamed
it, you don't have to un-rename it; you can create a new one just
for the purposes of the online database migration.)If necessary,
you can create a new "__DEFAULT__" volume type as follows using
the Block Storage API, or by using the python-cinderclient or
python-openstackclient to do the equivalent:API request: "POST
/v3/{project_id}/types"Request body:
{
"volume_type": {
"name": "__DEFAULT__",
"description": "Default Volume Type",
"os-volume-type-access:is_public": true
}
}
The "__DEFAULT__" volume type may safely be renamed (or renamed
and deleted) after you have run the online migrations as long as
the "default_volume_type" configuration option is set to a valid
existing volume type.
* This release updates the os-brick library used by Cinder to
version 2.10.5 to correct hopefully the final problem with the fix
for Bug #1823200 (https://bugs.launchpad.net/cinder/+bug/1823200) in
the previous os-brick release.
See the os-brick 2.10.5 release notes
(https://docs.openstack.org/releasenotes/os-
brick/train.html#relnotes-2-10-5-stable-train) for more information.
Bug Fixes
*********
* Bug #1886632 (https://bugs.launchpad.net/cinder/+bug/1886632): The
system defined "__DEFAULT__" volume type is now treated as a regular
volume-type and may be updated or deleted. Since the configured
"default_volume_type" cannot be deleted, however, the "__DEFAULT__"
volume type may not be deleted if it is the value of that
configuration option.
* Fix *UnboundLocalError* on the Brocade lookup driver on southbound
client creation failure during the device mapping retrieval (Bug
#1888550).
* Add Python 3 support to the Brocade Zone Manager driver. (bug
#1888548).
* Fix *AttributeError* on the Brocade ZM driver when using setting
REST_HTTP or REST_HTTPS as the fc_southbound_protocol option and an
exception is raised by the client (Bug #1866860).
* NetApp SolidFire driver: Fixed an issue that causes failback to
fail after a volume service restart. This change fixes bug 1859653
(https://bugs.launchpad.net/cinder/+bug/1859653).
* Cinder no longer allows an incremental backup to be created while
having the parent backup in another project.
* Fix volume migration fails in the same ceph RBD pool. Bug 1871524.
* Fix bug #1874134 (https://bugs.launchpad.net/cinder/+bug/1874134),
allowing an iSCSI or FCP volume to be extended to a size up to 16TB
regardless of its original size, even if it's attached to an
instance.
* Bug #1875570 (https://bugs.launchpad.net/cinder/+bug/1875570):
Fixed issue with NFS backend where the image-volume cache was never
used to create a volume, even when the cache was enabled.
* Bug #1879578 (https://bugs.launchpad.net/cinder/+bug/1879578): A
regression in the Train release caused Cinder to assign the default
volume type too aggressively when a volume type was not specified in
a volume-create request. As a result, some alternative methods of
specifying the volume type were ignored and the default type (either
configured by the operator or the system default) would be assigned.
This release restores the intended behavior, which is described as
follows:
If a "volume_type" is not specified when a volume is created, Cinder
tries to infer the volume type from other information in the volume-
create request:
* if a "source_volid" is supplied in the request, the volume type
is inferred from the source volume's volume type
* if a "snapshot_id" is supplied in the request, the volume type
is inferred from the volume type associated with the snapshot
* if an "imageRef" is supplied in the request, and the image has a
"cinder_img_volume_type" image property, the volume type is
inferred from the value of that image property
Otherwise, the volume type is the default volume type configured by
the operator, and if no volume type is so configured, the volume
type is the system default volume type, namely, "__DEFAULT__".
When a volume type is specified explicitly in a volume-create call,
Cinder will use the specified type. If the specified type cannot be
assigned due to a conflict with other parameters in the volume-
create call, however, the call will result in a 400 (Bad Request)
response.
* Bug #1893107 (https://bugs.launchpad.net/cinder/+bug/1893107): The
Ussuri release changes the cinder database schema to make the
"volume_type_id" column in the "volumes" and "snapshots" tables non-
nullable because all volumes have been required to have a volume
type since the Train release. The online database migration in the
cinder Train series (release 15.3.0 or earlier), however, did not
process soft-deleted rows, leaving the possibility that there could
be a deleted volume or snapshot with a null "volume_type_id", which
in turn will make the database upgrade fail when the non-nullability
constraint cannot be applied when a Train installation is upgraded
to Ussuri.
If you are upgrading to this release from an earlier release in the
Train series (that is, you are upgrading from
cinder>=15.0.0,<=15.3.0), under specific circumstances you should
re-run the online database migrations so that your database will be
in the correct state when you eventually upgrade to a Ussuri
release. See the "Upgrade Notes" for more information.
* Bug #1873738 (https://bugs.launchpad.net/cinder/+bug/1873738): RBD
Driver: Added cleanup for residue destination file if the copy image
to encrypted volume operation fails.
* Fix HPE 3PAR driver issue where volumes that were live migrated to
it would end up being inaccessible. We would no longer be able to
use the volume for any operation, such as attach, detach, delete,
snapshot, etc. (bug 1697422)
* Fix "unique_fqdn_network" configuration option for the Kaminario
driver, as it was being ignored when defined in the driver section,
which used to work. (Bug #1886042).
* NetApp ONTAP: Fixes bug 1839384 Detaching any instance from
multiattached volume terminates connection. Now the connection is
terminated only if there're no other instances using the same
initiator.
* Fix revert to snapshot not working for non admin users when using
the snapshot's name (bug #1889758).
Other Notes
***********
* Beginning with the Train release, untyped volumes (that is,
volumes with no volume-type) have been disallowed. To facilitate
this, a "__DEFAULT__" volume-type was included as part of the Train
database migration. In this release, handling of the default
volume-type has been improved:
* The "default_volume_type" configuration option is required to
have a value. The default value is "__DEFAULT__".
* A request to delete the currently configured
"default_volume_type" will fail. (You can delete that volume-
type, but you cannot do it while it is the value of the
configuration option.)
* There must always be at least one volume-type defined in a
Cinder installation. This is enforced by the type-delete call.
* If the "default_volume_type" is misconfigured (that is, if the
value refers to a non-existent volume-type), requests that rely on
the default volume-type (for example, a volume-create request that
does not specify a volume-type) will result in a HTTP 500
response.
Changes in cinder 15.3.0..15.4.0
--------------------------------
58f0e7379 Add general release note for 15.4.0
e62ac1808 Modify default/delete volume type logic
54433cb8c Fix revert to snapshot for non admins
9e3e2ab25 Require os-brick >= 2.10.5
00ac80bba Include deleted volumes for online data migrations
49b0c5ec6 Fix rekeying volume with legacy encryption provider
9c13d7706 Brocade: Fix lookup UnboundLocalError
b70e6a337 Brocade: Fix AttributeError when raising exception
7a9bc8434 Brocade: Python 3 support
193f3e97c Creating image-volume cache on NFS backend fails
48774c89a RBD: Cleanup temporary file during exception
b8138986a zuul: collect cinderlib logs from tempest node(s) only
039b2bfd6 Kaminario: Fix unique_fqdn_network option
5122b1465 Default volume_type set too early
d77377c23 Disable siblings for the cinderlib functional tests
f3cdc2756 Fix cross-project incremental backups
4cf0d1124 HPE 3PAR: Support duplicated FQDN in network
f13475f71 NetApp ONTAP: Fix extend volume for iSCSI/FCP
d10df8c00 Native Zuul v3 cinder-grenade jobs
fc59ea9e6 Port several legacy tempest jobs to Zuul v3
cfde6bd1c 3PAR: Fix live migration
eec1b9217 NetApp SolidFire: Fix failback failing after service restart
a11460f36 Fix volume migration fails in the same ceph RBD pool
b9c6d4a7f NetApp ONTAP: Fix iSCSI multiattach volume terminates connection
257c1c16f Fix revert snapshot issue
20a55fc0c PowerMax Driver - PowerMax Pools Fix
Diffstat (except docs and test files)
-------------------------------------
.zuul.yaml | 141 ++++--
cinder/api/contrib/types_manage.py | 10 +-
cinder/api/v2/volumes.py | 17 +-
cinder/api/v3/volumes.py | 19 +-
cinder/backup/api.py | 5 +-
cinder/common/config.py | 2 +
cinder/db/api.py | 4 +-
cinder/db/sqlalchemy/api.py | 15 +-
cinder/exception.py | 16 +-
cinder/image/image_utils.py | 4 +
cinder/objects/backup.py | 6 +-
cinder/opts.py | 1 +
cinder/test.py | 22 +
.../drivers/dell_emc/powermax/powermax_data.py | 4 +
.../dell_emc/powermax/test_powermax_common.py | 68 +--
.../dell_emc/powermax/test_powermax_masking.py | 21 +
.../unit/volume/drivers/ibm/test_storwize_svc.py | 63 +++
.../netapp/dataontap/client/test_client_base.py | 157 ++++++-
.../netapp/dataontap/client/test_client_cmode.py | 2 +
.../unit/volume/drivers/netapp/dataontap/fakes.py | 26 ++
.../drivers/netapp/dataontap/test_block_base.py | 188 ++++++--
.../drivers/netapp/dataontap/test_block_cmode.py | 4 +-
.../volume/drivers/solidfire/test_solidfire.py | 48 +-
.../unit/volume/flows/api/test_create_volume.py | 207 +++++++++
.../unit/volume/flows/test_create_volume_flow.py | 144 +++---
.../zonemanager/test_brcd_fc_san_lookup_service.py | 10 +
.../unit/zonemanager/test_brcd_fc_zone_driver.py | 137 +++---
.../zonemanager/test_brcd_http_fc_zone_client.py | 7 +
.../zonemanager/test_brcd_rest_fc_zone_client.py | 297 +++++++++++++
cinder/volume/api.py | 7 +-
cinder/volume/driver.py | 12 +
cinder/volume/drivers/dell_emc/powermax/common.py | 116 ++---
cinder/volume/drivers/dell_emc/powermax/fc.py | 3 +-
cinder/volume/drivers/dell_emc/powermax/iscsi.py | 3 +-
cinder/volume/drivers/dell_emc/powermax/masking.py | 2 +-
cinder/volume/drivers/dell_emc/powermax/utils.py | 17 +-
cinder/volume/drivers/hpe/hpe_3par_common.py | 337 +++++++++-----
cinder/volume/drivers/hpe/hpe_3par_fc.py | 4 +-
cinder/volume/drivers/hpe/hpe_3par_iscsi.py | 12 +-
.../ibm/storwize_svc/storwize_svc_common.py | 39 +-
.../volume/drivers/kaminario/kaminario_common.py | 11 +-
.../volume/drivers/netapp/dataontap/block_base.py | 41 +-
.../volume/drivers/netapp/dataontap/block_cmode.py | 2 +-
.../volume/drivers/netapp/dataontap/client/api.py | 6 +
.../drivers/netapp/dataontap/client/client_base.py | 55 ++-
.../netapp/dataontap/client/client_cmode.py | 2 +
cinder/volume/drivers/rbd.py | 33 +-
cinder/volume/drivers/remotefs.py | 3 +-
cinder/volume/drivers/solidfire.py | 84 ++--
cinder/volume/flows/api/create_volume.py | 49 ++-
cinder/volume/volume_types.py | 54 ++-
cinder/volume/volume_utils.py | 1 +
.../drivers/brocade/brcd_fc_san_lookup_service.py | 1 +
.../drivers/brocade/brcd_fc_zone_driver.py | 13 +-
.../drivers/brocade/brcd_http_fc_zone_client.py | 2 +-
.../drivers/brocade/brcd_rest_fc_zone_client.py | 2 +-
.../block-storage/drivers/hpe-3par-driver.rst | 28 ++
lower-constraints.txt | 2 +-
playbooks/cinderlib-run.yaml | 49 ---
.../cinder-tempest-dsvm-lvm-lio-barbican/post.yaml | 15 -
.../cinder-tempest-dsvm-lvm-lio-barbican/run.yaml | 88 ----
playbooks/post-cinderlib.yaml | 6 +
playbooks/tempest-and-cinderlib-run.yaml | 14 +-
...deleting-__DEFAULT__-type-d35dfb5d89760b9b.yaml | 38 ++
...ade_looup_fail_get_client-179151d449a34aa4.yaml | 5 +
.../notes/brocade_py3-15647dbe3981d44b.yaml | 5 +
.../brocade_rest_client-202cfd474c96d3fe.yaml | 6 +
...ver-after-service-restart-77e5e4da45c9c1aa.yaml | 6 +
...746-cross-project-incremental-backup-error.yaml | 6 +
.../notes/bug-1871524-5f6df9a61bf6b775.yaml | 5 +
...ONTAP-fix-max-resize-size-ad2d88da8721560e.yaml | 6 +
...70-nfs-image-volume-cache-c45e840a6ec2a702.yaml | 6 +
...78-volume_type-regression-de82f4152c7b2f77.yaml | 33 ++
.../notes/bug-1893107-train-45bb91952c3170e1.yaml | 78 ++++
...-file-during-convert-fail-3848e9dbe7e15fc6.yaml | 6 +
.../fix-3par-live-migration-0065bd2626fdb4a1.yaml | 7 +
...nario-unique_fqdn_network-ecde36f614c30733.yaml | 7 +
...r-support-duplicated-fqdn-751ad1dbcd137fbb.yaml | 7 +
...ap-fix-detach-multiattach-d99d33dff2fefb4c.yaml | 7 +
.../notes-for-15.4.0-release-98b7a0f6834ae2ba.yaml | 37 ++
...revert-snapshot-non-admin-8485be55060eab0d.yaml | 5 +
requirements.txt | 2 +-
101 files changed, 3090 insertions(+), 996 deletions(-)
Requirements updates
--------------------
diff --git a/requirements.txt b/requirements.txt
index 3f8c9bac9..3bd2ee40e 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -61 +61 @@ oslo.vmware>=2.17.0 # Apache-2.0
-os-brick>=2.10.4 # Apache-2.0
+os-brick>=2.10.5 # Apache-2.0
More information about the Release-announce
mailing list