summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Remove multiatttach request parameter20.2.0whoami-rajat2023-04-1314-121/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The initial cinder design[1][2][3] allowed users to create mutliattach volumes by spcifying the ``multiattach`` parameter in the request body of volume create operation (``--allow-multiattach`` option in cinderclient). This functionality changed in Queens with the introduction of microversion 3.50[4] where we used volume types to store the multiattach capabilities. Any volume created with a multiattach volume type will be a multiattach volume[5]. While implementing the new functionality, we had to keep backward compatibility with the *old way* of creating multiattach volumes. We deprecated the ``multiattach`` (``--allow-multiattach`` on cinderclient side) parameter in the queens release[6][7]. We also removed the support of the ``--allow-multiattach`` optional parameter from cinderclient in the train release[8] but the API side never removed the compatibility code to disallow functionality of creating multiattach volumes by using the ``multiattach`` parameter (instead of a multiattach volume type). This patch removes the support of providing the ``multiattach`` parameter in the request body of a volume create operation and will fail with a BadRequest exception stating the reason of failure and how it can be fixed. [1] https://blueprints.launchpad.net/cinder/+spec/multi-attach-volume [2] https://review.opendev.org/c/openstack/cinder/+/85847/ [3] https://review.opendev.org/c/openstack/python-cinderclient/+/85856 [4] https://github.com/openstack/cinder/commit/f1bfd9790d2a7cac9a3e66417b11dc8e3edd8109 [5] https://docs.openstack.org/cinder/latest/admin/volume-multiattach.html#how-to-create-a-multiattach-volume [6] https://github.com/openstack/cinder/commit/94dbf5cce2caff484460a1330feb6cbf7f3dd56a [7] https://github.com/openstack/python-cinderclient/commit/adb141a2626192e8f45a911291895716d7c1c8a4 [8] https://github.com/openstack/python-cinderclient/commit/3c1b417959689c85a2f54505057ca995fedca075 Depends-On: https://review.opendev.org/c/openstack/tempest/+/875372 Closes-Bug: 2008259 Change-Id: I0ece6e279048abcc04b3674108290a80eca6bd62 (cherry picked from commit 32f1145b7ddf9a9a359e2359e7db63dbdd00b899) (cherry picked from commit e2c3bcc6e380921bbe283b4a1b173216193c753d) Conflicts: api-ref/source/v3/parameters.yaml (cherry picked from commit a8a4cdcb2e099456d435028c924e51dcbdee33e9) Conflicts: cinder/volume/flows/api/create_volume.py
* Merge "Filter reserved image properties" into stable/yogaZuul2023-02-234-0/+144
|\
| * Filter reserved image propertiesRafael Weingärtner2023-02-204-0/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cinder is currently not able to upload a volume that is based on an image back to glance. This bug is triggered if glance multistore is enabled (devstack in this example). When enabling multistore, the following properties will be stored in Cinder: * os_glance_failed_import='' * os_glance_importing_to_stores='' Those properties will cause problems when Cinder tries to perform some actions with Glance. Error msg: ``` cinderclient.exceptions.BadRequest: HTTP 403 Forbidden: Access was denied to this resource.: Attribute &#x27;os_glance_failed_import&#x27; is reserved. (HTTP 400) ``` Nova had the same issue and solved it with: https://github.com/openstack/nova/blob/50fdbc752a9ca9c31488140ef2997ed59d861a41/releasenotes/notes/absolutely-non-inheritable-image-properties-85f7f304fdc20b61.yaml and https://github.com/openstack/nova/commit/dda179d3f901e4f23091f3095f1af58bc26e222e Therefore, this patch is intended to apply a similar solution in Cinder. Change-Id: I79d70543856c01a45e2d8c083ab8df6b9c047ebc Closes-Bug: #1945500 (cherry picked from commit c43fb490b204aadf41a32bcb5eb075b1656e2af4) (cherry picked from commit 826b40281123d700b3aeba5dcf076544982973a3) Conflicts: cinder/image/image_utils.py - Changed syntax from "dict[str, str]" to "Dict[str, str]" for Python <3.8 compatibility
* | Merge "DEMC: Add support for trim/discard" into stable/yogaZuul2023-02-179-5/+39
|\ \
| * | DEMC: Add support for trim/discardGorka Eguileor2022-08-119-5/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for trim/discard to 3 Dell EMC drivers: - PowerStore - PowerMax - PowerFlex Support is added to report this capability to both Nova, via the 'discard' value in connection properties, as well as internally to Cinder, via the 'sparse_copy_volume' driver capability. PowerStore and PowerMax only support thin volumes, so they will always report the trimming capability, but the PowerFlex also supports thick volumes, so it will only be returned for thin volumes, and following vendor's recommendation [1] it will not be returned for volumes that have snapshots. SysAdmins can force all volumes to return discard capabilities for Nova with the ``report_discard_supported`` configuration option. [1]: https://docs.delltechnologies.com/bundle/READY_NODE_AMS_DG/page/GUID-8E6676C1-425A-4D51-8F59-1A92DE4F6638.html Change-Id: Ib119fd689545bdb636a4844c6125aec7c3c24b96 (cherry picked from commit 43d851abbabfe6968707cb151157ac9b1dd52faa) Conflicts: cinder/volume/drivers/dell_emc/powerstore/adapter.py cinder/volume/drivers/dell_emc/powerstore/driver.py
* | | Merge "Bugfix: Account for consumed space better" into stable/yogaZuul2023-02-172-2/+9
|\ \ \
| * | | Bugfix: Account for consumed space betterHemna2022-11-022-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the volume service starts up, it goes through all volumes for a host in the db and adds up the volume size as a mechanism to account for that allocate space against the backend. The problem was that the volume manager was only counting volumes with a state of 'in-use' or 'available'. If a volume has a host set on it, then we account for it's allocated space. This patch adds other volume states to use to account for allocated space at volume service startup. Closes-Bug: 1910767 Change-Id: I90d5dfbe62e630dc8042e725d411cadc2762db56 (cherry picked from commit 72da8249d910a307141bb9fec663d41cc28878bd)
* | | | [stable-only] Pin tox <4Brian Rosmaita2023-02-092-1/+5
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Continue to use tox 3 until we decide how to do the transition to tox 4 in the stable branches. Two changes: - .zuul.yaml: set the ensure_tox_version to use <4, which will tell the host to install a tox 3 package ... but: - tox.ini: from experimentation, it looks like if tox needs to install anything from the 'requires' key in the core section, it will also upgrade itself (in the .tox/.tox directory) to the latest tox version, so add a cap on tox to the 'requires' list Change-Id: I3c22ff2d6e2951c6a8ba110d4393a399480e0f3f (cherry picked from commit 426f6337b62a0b7e3307d89facb03f785c360e40)
* | | Merge "Check VMDK subformat against an allowed list" into stable/yoga20.1.0Zuul2023-01-253-47/+565
|\ \ \
| * | | Check VMDK subformat against an allowed listBrian Rosmaita2022-12-123-47/+565
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also add a more general check to convert_image that the image format reported by qemu-img matches what the caller says it is. Change-Id: I3c60ee4c0795aadf03108ed9b5a46ecd116894af Partial-bug: #1996188 (cherry picked from commit 930fc93e9fda82a4aa4568ae149c3c80af7379d0) (cherry picked from commit ba37dc2ead69c08d7ede242295ff997086e6121d) Conflicts: cinder/image/image_utils.py - changed type annotations to use implicit Optional to be consistent with cinder yoga mypy usage - removed refs to image_conversion_disable in tests
* | | | Merge "Fix and unify capacity calculations" into stable/yogaZuul2023-01-187-38/+260
|\ \ \ \
| * | | | Fix and unify capacity calculationsHemna2022-12-167-38/+260
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch updates how cinder calculates it's free capacity. The new calculations are based off of the queens cinder specs that describes each of the capacity factors here: https://specs.openstack.org/openstack/cinder-specs/specs/queens/provisioning-improvements.html This patch updates the capacity filter to use the new capacity factors calculations, which is also used by the capacity weigher. The new calculate_capacity_factors describes each of the factors and returns a dictionary of each of the factors as calculated. Change-Id: Ic1b5737281e542d2782089a369e4b7941fc3d921 (cherry picked from commit 856d3e108035ac1ed9c6a3cec4de47b1eb6ad18b)
* | | | Merge "Serialize message_* properties of RequestContext" into stable/yogaZuul2023-01-182-3/+20
|\ \ \ \
| * | | | Serialize message_* properties of RequestContextJesper Schmitz Mouridsen2022-12-092-3/+20
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change Idc00b125b33b added the ability to store and retrieve user message data in the request context, but it neglected to add code to make sure they would persist across serialization and deserialization of the request context object, as happens in the create-backup workflow. As a result, when a user message needed to be created to describe an error condition in the backup driver, instead we'd get an exception raised: "TypeError: 'NoneType' object is not subscriptable". This patch fixes the issue by making sure the message_* properties persist across serialization/deserialization of RequestContext objects. Closes-Bug: 1978729 Change-Id: Ibdaaf39abafbae6bfcb9fdf9fb7a55d968ad9f11 Signed-off-by: Jesper Schmitz Mouridsen <jesper@schmitz.computer> (cherry picked from commit c46d41719e0c8199dc17ef566413889692644ef5)
* | | | Use the json format output of qemu-img infoTakashi Kajinami2023-01-125-171/+197
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support for the human format by oslo_utils.imageutils.QemuImgInfo was deprecated since oslo.utils 4.9.1 [1]. This change replaces the human format with the json format which will be used by default. [1] 73eb0673f627aad382e08a816191b637af436465 Backport note: The json format is preferable because it allows access to format specific details (since oslo.utils 4.1.0). These details are not present when the default 'human' format is used. See change I133da07a5a9628b8a9 for details. Closes-Bug: #1940540 Change-Id: Ia0353204abf849467106ee08982d1271de23101a (cherry picked from commit c0d2e7ebd8b992d61a5f486baad3016d79e6a5d9) (cherry picked from commit 11b0f97a013189fe985deec4f776a7719a6ad089)
* | | | Merge "[SVf] : Fix the SVC code level for lsfcportsetmember call" into ↵Zuul2022-12-172-1/+8
|\ \ \ \ | | | | | | | | | | | | | | | stable/yoga
| * | | | [SVf] : Fix the SVC code level for lsfcportsetmember callhaailani2022-09-012-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [Spectrum Virtualize family] lsfcportsetmember call was introduced in SVC code level 8.5.x. But during portset implementation, lsfcportsetmember was included in 8.4.2.0 which is incorrect as SVC 8.4.2.0 doesn't recognise this command. Correcting the SVC code level for lsfcportsetmember call. Closes-Bug: #1976499 Change-Id: Ia9f22d630ff9d9541bb36e5506679dd15c27d5d5 (cherry picked from commit 0df29396bfa4eca306b5e4700defbfa5d5637b24)
* | | | | Merge "Tests: Fix test runner never finishing" into stable/yogaZuul2022-12-165-5/+106
|\ \ \ \ \
| * | | | | Tests: Fix test runner never finishingGorka Eguileor2022-09-215-5/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The tpool.killall method seems to block in some cases when running unit tests, as observed with the Guru Meditation Reports. This has been happening primarily on Python 3.9 and 3.10. Moving the call from the test setUp to the cleanup after stopping existing looping calls seems to resolve the issue. At least we've been unable to reproduce the issue again even when running tests with '--random'. We need a way to identify existing looping calls that must be stopped, tracking them with a decorator on the LoopingCallBase class __init__ method or looking for its instances in the objects tracked by the Garbage Collector. Using the GC mechanisms makes tests take 12 times longer to complete, so this patch creates a new test utils class called InstanceTracker that allows tracking any class. We haven't been able to reproduce the test runner freeze situation with this patch, even when running tests with '--random', but just in case this happens again a TPOOL_KILLALL_ISSUE flag has been created to allow easily disabling things if this were to happen again. Because the tests use greenthreads, debugging blocked tests with GDB is a nightmare, so the patch also adds the Guru Meditation Reports feature to the test runner, that way we can do: $ kill -USR2 <child_runner_pid> And see the greenthreads, where in this case we would see one of them stuck in the tpool.killall() call. Change-Id: Idb5c428adcc1112046cc81a441c572a2e6bfa80c (cherry picked from commit eb8409b3a8af41e2203e3b84bc6f02167ceef6a4)
* | | | | | Merge "Fix Infinidat driver to return all iSCSI portals" into stable/yogaZuul2022-12-163-53/+198
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | |
| * | | | | Fix Infinidat driver to return all iSCSI portalsAlon Zeltser2022-09-193-53/+198
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Infinidat Cinder driver truncates the list of configured iSCSI portals and returns only the first IP for a given network space. And in case of network path failure we lose access to the data. To fix this issue, we need to return all configured and enabled iSCSI portals for a given configured network space. Closes-bug: #1981354 Change-Id: Ie2b7a163ee3a83121c04a21808ef437d740426d5 Co-authored-by: Alexander Deiter <adeiter@infinidat.com> Signed-off-by: Alexander Deiter <adeiter@infinidat.com> (cherry picked from commit a25dcc85180124f3f8db836ec49c0ee5b5741b62)
* | | | | | Merge "Tests: Monkey patch before logs are loaded" into stable/yogaZuul2022-11-181-2/+17
|\ \ \ \ \ \ | | |/ / / / | |/| | | |
| * | | | | Tests: Monkey patch before logs are loadedGorka Eguileor2022-09-211-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our tests don't do the eventlet monkey patching in the same way that the Cinder services -backup, scheduler, volume- do. This patch changes this by doing the monkey patching as soon as possible, before cinder OVOs are loaded and bring in a number of oslo libraries. When copying the initialization part from the Cinder commands a fix for 'current_thread' is also copied. Change-Id: I6c44d557466dfcb1f6507917eb88959e2ff388df (cherry picked from commit 81f117c55d8327df6cbea993be087a6de17641e3)
* | | | | | Merge "Tests: Fix service stopping on cleanup" into stable/yogaZuul2022-11-181-2/+2
|\ \ \ \ \ \ | |/ / / / /
| * | | | | Tests: Fix service stopping on cleanupGorka Eguileor2022-09-211-2/+2
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our services don't have a 'kill' method, they have a 'stop' method, so it doesn't make any sense to call the 'kill' method on them during test cleanup. This patch changes the 'kill' call with the right 'stop' call. Change-Id: Ib1bae260b8b5289e9a6c80baf2de9e908f977d09 (cherry picked from commit 1ef8e3ddc270ce87da4bac507b8760e19f4d43f2)
* | | | | Merge "Hitachi: fix to output resource lock message correctly" into stable/yogaZuul2022-11-182-1/+7
|\ \ \ \ \
| * | | | | Hitachi: fix to output resource lock message correctlyAtsushi Kawai2022-11-022-1/+7
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fix to output a warning message for resource lock correctly. The message can help to analyze in some trouble. Closes-Bug: #1989176 Change-Id: Iaeee0496987ffe4777c34fe8056f56985273a5d0 (cherry picked from commit d2b302885e8306f9d363a818ca4eb2c2c31f4bdd)
* | | | | Merge "PowerStore driver - Request data validation fix" into stable/yogaZuul2022-11-182-3/+7
|\ \ \ \ \
| * | | | | PowerStore driver - Request data validation fixolegnest2022-11-032-3/+7
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to json.dumps({}) method returns {}, an error occurs in some client's methods, such as when deleting volumes. This fix validate if any payload was provided for the request. Closes-Bug: #1981068 Change-Id: I0b389f4f53d3b34eddc23a7aebc85a5b42f3a09f (cherry picked from commit a4ab9220fcfd4afd3019a0f3bd4f4b452296166f)
* | | | | Merge "rbd: Fix snapshot delete when the source volume doesn't exist" into ↵Zuul2022-11-093-30/+56
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | stable/yoga
| * | | | rbd: Fix snapshot delete when the source volume doesn't existTakashi Kajinami2022-10-173-30/+56
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently snapshot delete requires access to the source volume and the operation fails if the source volume doesn't exist in the backend. This prevents some snapshots from being deleted when the source volume image is deleted from the backend for some reason (for example, after cluster format). This change makes the rbd driver to skip updating the source volume if it doesn't exist. A warning log is left so that operators can be aware of any skip event. This commit also includes a squash to add a releasenote from I40f6eb1f104da4410d32410940824a88f7d1ec62 to reduce backporting workload. Closes-Bug: #1957073 Change-Id: Icd9dad9ad7b3ad71b3962b078e5b94670ac41c87 (cherry picked from commit 3ddf7ca9ea9587318b8c903e2c43b1879846d1c2) (cherry picked from commit cf108981432d35049bf28010d3191fd9f4b82ccc)
* | | | NFS: Fix generic revert to snapshot flowwhoami-rajat2022-10-283-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While reverting to a snapshot with generic flow, we create a temporary volume from snapshot and copy data from temporary to the original volume. While creating this temporary volume, the snapshot is in 'restoring' state whereas the remotefs driver only accepts 'available' and 'backing-up' states for this operation. This patch adds the 'restoring' state to the list of acceptable states. Closes-Bug: 1946059 Change-Id: Id1e40fd42b88c63dbbba2aaae77c40660ddac4c7 (cherry picked from commit 862edca0deb366ea980485359216fea020a03c9e)
* | | | Increase swap size to 4GBBrian Rosmaita2022-10-281-0/+2
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is to address issues in the cinder-plugin-ceph-tempest* jobs where a significant number of builds are failing. Symptoms are a lot of server fault errors, identity error: unexpected status code 500, and db connection errors in the tempest log. On these jobs, syslog shows multiple oom_reaper: reaped process xxxxxxx (mysqld) lines. Occasionally ceph-osd or ceph-mons are also reaped, but it's pretty consistently mysqld. Default swap size is currently 1G. Increase to 4GB was determined experimentally. (See other patches on topic: increase-swap.) Change-Id: I3c08f363f5b74e1fe7900f4398bd2cb6df3a80d7 (cherry picked from commit d41abbf538b439ce8ba18ac5720dacc4cf2ac3f7)
* | | Merge "PowerMax Driver - Add a release note for 784603" into stable/yogaZuul2022-09-061-0/+6
|\ \ \ | |/ / |/| |
| * | PowerMax Driver - Add a release note for 784603olegnest2022-08-021-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Forgot to add a release note for issue [1]. Since we are going to backport it, need to have a release note, as was mentioned in [2]. [1] https://review.opendev.org/c/openstack/cinder/+/784603 [2] https://review.opendev.org/c/openstack/cinder/+/821739 Closes-Bug: #1979668 Change-Id: I75cd359269fc26783b069aaaa3ab92528c3bb500
* | | Merge "Doc: To update the portset feature details in IBM Spectrum Virtualize ↵Zuul2022-08-291-0/+2
|\ \ \ | | | | | | | | | | | | user guide" into stable/yoga
| * | | Doc: To update the portset feature details inprajaktab2022-08-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IBM Spectrum Virtualize user guide This change is in order to update portset feature details in IBM Spectrum Virtualize user guide Change-Id: I844fde26ffa69a2140cd36e3cdc9e943db0432c5 (cherry picked from commit 2b752938e9dc7b62418fad335b5e429c20c05984)
* | | | Merge "NetApp SolidFire: Fix request errors while Element OS upgrade" into ↵Zuul2022-08-222-2/+21
|\ \ \ \ | |/ / / |/| | | | | | | stable/yoga
| * | | NetApp SolidFire: Fix request errors while Element OS upgradeFabio Oliveira2022-08-152-2/+21
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When Element OS is being upgraded, the requests received will get exceptions as result, but the operation will normally succeed a few attempts after. This patch fixes this issue by adding the following exceptions to our list of retryable exceptions in SolidFire driver: - xDBOperationTimeout. - xDBConnectionLoss. - xNoHandler. - xSnapshotFailed. - xRecvTimeout. - xDBNoSuchPath. - xPermissionDenied. Change-Id: Idef086c55885687684875603481582f763355885 Closes-Bug: #1934435 (cherry picked from commit b7b830e9ac1e58ef432edf892eb972c98817ffdf)
* | | Merge "RBD: Don't flatten temporary resources" into stable/yogaZuul2022-08-183-19/+92
|\ \ \
| * | | RBD: Don't flatten temporary resourcesGorka Eguileor2022-06-083-19/+92
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are instances where cinder needs to create a temporary volume and this can trigger a flatten of the new temporary volume, which will make the operation take a lot longer. In some cases this means slower operations, but in others it leads to rpc timeout failures. A case where we see timeout failures is when doing a backup of a snapshot and we have rbd_flatten_volume_from_snapshot=true. This patch ensures that we don't flatten temporary volumes. Closes-Bug: #1916843 Change-Id: I8f55c3beb2f8df5b2227506f82ddf6ee57c951ae (cherry picked from commit e726c07948138f514706cc69440971a2105c2bc0)
* | | Merge "Log when waiting to acquire coordinator lock" into stable/yogaZuul2022-08-171-10/+12
|\ \ \ | |_|/ |/| |
| * | Log when waiting to acquire coordinator lockGorka Eguileor2022-08-081-10/+12
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We currently have no log entry when we start trying to acquire a lock. In general this is ok, but there are cases where it can be problematic for example if we have a deadlock situation or if a lock takes a very long time to be acquired. In those scenarios looking at the logs we would see the operation proceed normally and suddenly go completely silent without knowing that is waiting for a lock to be freed. This patch adds a debug log message right before trying to acquire the lock so we can detect those situations. The original patch was using f-strings in debug logs, which we should avoid and newer flake8 versions is raised as error G004, so this patch also includes Change-Id: Ia87a0114738c82b2af2391bd5b4c2acb25db71fd that fixes this issue. Change-Id: Ida70e9b6098b2e0426cc479811e08a164ed24899 (cherry picked from commit a423d9f9d5672fc92de2c6aae35f0c99140c408d)
* | SF: Remove compat clone image codewhoami-rajat2022-06-302-65/+0
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | SolidFire driver introduced a clone image feature in Kilo release[1] where we would create a cache volume with volume ID same as of image ID to create volume from image efficiently by cloning from that cached volume. This feature worked same as the image cache feature we have in cinder so it was deprecated in queens[2] and removed in train[3] in favor of image cache feature provided by cinder. However, we still kept compatibility code if users had solidfire cached volumes to still take advantage of those to create efficient volume from images. In the current master (Yoga), we can safely assume that people have moved to using the image cache feature of cinder since the solidfire options to enable efficient cloning doesn't exist since train release. This patch removes the remaining code around this feature as it doesn't provide any additional benefit and we also log an ERROR message unnecessarily confusing the operators for every create volume from image request (details are in the linked launchpad bug). Closes-Bug: #1959178 [1] https://review.opendev.org/c/openstack/cinder/+/142859 [2] https://review.opendev.org/c/openstack/cinder/+/511623 [3] https://review.opendev.org/c/openstack/cinder/+/664739 Change-Id: I8fe00b06ebb439f83f8cad0f592064c540c54b77 (cherry picked from commit 6b97abc4e4f364e95e09b1738798fa2b6ebd90d6)
* Merge "HPE 3PAR: In multi host env, fix multi-detach operation" into stable/yoga20.0.1Zuul2022-06-013-11/+121
|\
| * HPE 3PAR: In multi host env, fix multi-detach operationraghavendrat2022-05-243-11/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In multi host environment, if volume is attached to instances present on different hosts, detach operation works partially. As a result, at later time the volume cannot be deleted. Details are explained in launchpad bug. This patch performs following: During detach volume from instance, both possibilities are considered: the instances can reside: [1] either on same host. [2] or on different hosts. case [1]: In such case, behaviour is same as earlier i.e vlun is not deleted upon each detach operation i.e skip remainder of terminate volume connection. The vluns are deleted only on last detach operation. case [2]: In such case, vlun of that host on 3par array is deleted separately upon each detach operation. Closes-Bug: #1958122 Change-Id: I47e8e86a495802a21570e23ecf7428fccc8b3d60 (cherry picked from commit 3ed2f38e54b84073f03ce1148c6dfcbbd37fc032)
* | Don't destroy existing backup by mistake on importBrian Rosmaita2022-05-144-23/+111
|/ | | | | | | | | | | | | | | | We're supposed to fail an import request for an already existing backup, but the current code confuses an existing backup record with one we created for the import, and during quota rollback, will destroy either one. Simplify the logic so that we check whether there's an already existing backup first and bail without even bothering to make an unnecessary reservation, hence leaving us nothing to roll back or delete by mistake. Also revise and add tests. Closes-bug: #1965847 Change-Id: I3c0e365f5dc3c32975343f538c6029f02ac7c2b5 (cherry picked from commit 6386cbb0a0b6cbf05ce625c5b1b680f4259bde2e)
* Merge "Prevent temporary volume from being deleted accidentally" into ↵Zuul2022-05-116-19/+32
|\ | | | | | | stable/yoga
| * Prevent temporary volume from being deleted accidentallyHironori Shiina2022-05-056-19/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | A temporary volume can be deleted while it is in use by DELETE API accidentally because its status is `available`. To avoid this deletion, this fix sets a value which doesn't accept deletion to volume status of a temporary volume. When a temporary volume is used for backing up, `backing-up` is set. When a temporary volume is used for reverting a snapshot, `in-use` is set because the volume is attached by a host. Closes-Bug: #1970768 Change-Id: Ib6a2e4d68e532b91161df5245c17ce815f12f935 (cherry picked from commit 53c13891b313d58923b223f6fbb1882e991f2785)
* | Merge "NetApp ONTAP: Fix check QoS min support for SVM account" into stable/yogaZuul2022-05-113-0/+15
|\ \ | |/ |/|