[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