forked from openstack/cinder
-
Notifications
You must be signed in to change notification settings - Fork 0
Synchronise 2023.1 with upstream #89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Pure iSCSI and FC drivers use SCSI SAM-2 addressing mode, which means that LUNs < 256 use peripheral mode (unmodified values) and LUNs >= 256 use flat mode (2 higher bits of the MSB must be 01b). This is not the standard behavior of os-brick, which defaults to SAM/transparent mode. In this patch the Pure storage driver reports it's addressing mode so that LUNs with value greater than 255 can be connected by os-brick. Depends-On: If32d054e8f944f162bdc8700d842134a80049877 Closes-Bug: #2006960 Change-Id: I4abfb6de58340c5ea70e7a796326f5d2089c80eb (cherry picked from commit dad485e) (cherry picked from commit 4373aa1)
This patch adds two new FIPS enabled jobs to determine if there are any issues when FIPS is enabled. Because the FIPS jobs currently run on centos, code is added to the test setup script to set up the databases correctly. Also had to increase the swap space on the nodes; see [0] for an explanation. [0] https://review.opendev.org/c/openstack/devstack/+/803706 Change-Id: Ib85b6ecc6f1b12eb8afa866e56afbfb13aad0cba (cherry picked from commit 933a7b7)
Volume image metadata values were limited to 255 characters but Glance allows up to 65535 (considering it uses a TEXT field in MySQL). Cinder database also uses a TEXT field for those values so it made no sense to limit them to 255. The actual values could already be longer when they were copied from the image at volume creation time. Closes-Bug: #1988942 Change-Id: Id200ae93384a452b34bdd20dd1f3fc656ec5650f (cherry picked from commit 0bd1bd6) (cherry picked from commit 2fb2ff9)
This patch fixes to use correct pool number for a secondary storage on GAD environment[*1]. Even though the option ``hitachi_mirror_pool`` is to set pool number for secondary storage, the option does not work and a pool number for primary storage would be used on secondary storage. The bug should be fixed and delete the risk to be used unexpected pool number. [1] GAD is the storage mirroring product on Hitachi storage. The feature was implied as the patch https://review.opendev.org/c/openstack/cinder/+/796170 and was merged into Antelope. Closes-Bug: #2011810 Change-Id: I9c37ada5e6af1f3c28ebd5c3c2a8baf2d88d0a96 (cherry picked from commit 2270611) (cherry picked from commit 19540c1)
Host group[1] name formats, which is managed by cinder driver, for each storage models must be: ``HBSD-xxx`` for Hitachi storage(``xxx`` is WWPN of target host on FC, or IP address of target host) ``HPEXP-xxx`` for HPE-XP storage ``NEC-xxx`` for NEC V storage , but the format `HBSD-xxx` is used for OEM storage models because a bug in the merged patch https://review.opendev.org/c/openstack/cinder/+/866526 overwrites the prefix for Hitachi storage. It should be fixed to use original prefixes. [1] ``Host group``(or ``iSCSI target``), which is one of Hitachi and OEM storage parameter, is a group of multiple server hosts connecting to same storage port. Following site would be help to know what host group is: https://knowledge.hitachivantara.com/Documents/Management_Software/SVOS/9.1.x/Volume_Management_-_VSP_G130%2C_G%2F%2FF350%2C_G%2F%2FF370%2C_G%2F%2FF700%2C_G%2F%2FF900/Provisioning/11_About_LUN_Manager%2C_logical_units_(LUs)%2C_and_host_groups Closes-Bug: #2012515 Change-Id: I1c9677112caa0808dff17cbde2db6afbe25a2129 (cherry picked from commit 61e7d1f) (cherry picked from commit e8e24a2)
This patch is to fix an exception name when deleted volume is busy in delete_volume(). Although exception ``VolumeIsBusy`` should be issued in that case, ``VolumeDriverException`` is issued. It should be fixed. Closes-Bug: #2024418 Change-Id: I5405790c7cd4ca513ceea70380be723a54c3fe3c (cherry picked from commit a0d0752) (cherry picked from commit 8f497c1)
This patch stops submitting frequently REST API request in test scripts, to avoid a risk of failing the scripts by unexpected REST API response from a psuedo REST API in the scripts. Hitachi driver submits a REST API request frequently, to avoid REST API session timeout. it should be stopped while running test scripts, or the request bothers REST APIs which is for cinder features, like creating volume and delete snapshots. The test scripts have codes to stop submitting, but one of the code does not work by using incorrect variable. The patch fix the variable name to stop that correctoly. Closes-Bug: #2063317 Change-Id: I81090aee4ed6c288f7d9bbdb45d7cc849663e393 (cherry picked from commit 60b7062) (cherry picked from commit 070ca24)
This patch prevents to delete a LDEV that is unexpectedly assigned to two or more objects(volumes or snapshots). In the unexpected situation, if ``delete`` command for one of objects is run again, the data which is used by other objects is lost. In order to prevent the data-loss, when creating an object, the driver creates a LDEV and stores a value obtained by omitting the hyphen from the object ID(*1) to ``LDEV nickname``. When deleting an object, the driver compares the own object ID and the object ID in ``LDEV nickname``, then, the object and the LDEV is deleted only if both object IDs are same. On the other hand, if both object IDs are not same, only the object is deleted and the LDEV is kept, to prevent data-loss. If format of ``LDEV nickname`` is not object ID(*2), both the object and the LDEV is deleted without comparison, because it avoids disk full risk, due to not deleting any LDEVs. This patch implements only the object ID storing while creating a snapshot and comparing IDs while deleting, because the feature to store the object ID while creating a volume has already been implemented. (*1) Max length of ``LDEV nickname`` is 32 digits characters on Hitachi storage. (*2) 32 digits hexadecimal Closes-Bug: #2072317 Change-Id: I7c6bd9a75dd1d7165d4f8614abb3d59fa642212d (cherry picked from commit d04db6f) Conflicts: doc/source/configuration/block-storage/drivers/hitachi-vsp-driver.rst (cherry picked from commit 06f367c)
This fixes issues for volume backups with the Ceph driver
where failures of the first process ("rbd export-diff") were
not caught. Instead, only the return code of the second
process ("rbd import-diff") was recognized.
This change also preserves the stderr that was lost previously
in order to ease debugging.
Closes-Bug: 2031897
Co-Authored-By: Pete Zaitcev <[email protected]>
Change-Id: I53b573bfff64e7460ef34f1355d3a9d52a8879f9
Signed-off-by: Jan Hartkopf <[email protected]>
(cherry picked from commit f8e13a8)
(cherry picked from commit 52f885b)
(cherry picked from commit 7e67fcd)
Fix the missing session argument so that swift backup driver to resolve the TypeError raised in swift object access. The error makes the swift back driver consistently fail during backup/restore operation. Closes-Bug: #2058596 Change-Id: I80f2cd614ba7277a28fa8a4a429fef983113f0fb (cherry picked from commit 9ff29a6) (cherry picked from commit 966bc53) (cherry picked from commit a466141)
Earlier the call to getWsApiVersion() worked without login. Now with new wsapi of 2024, login is required. This patch makes call to client_login() before getWsApiVersion(). Closes-Bug: #2068795 Change-Id: I30f105ee619386f52bc907f5115c08e0fafb9e42 (cherry picked from commit 1b07bee) (cherry picked from commit 7ab8848) (cherry picked from commit e8b57df)
…nto stable/2023.1
In some deployments, after an upgrade, we remove the old service records and create new ones. This leaves the volumes with the service_uuid pointing to the old (deleted) service and causes an issue while purging out the deleted service records. This patch adds a cinder-manage command to update the service_uuid field of volumes with the following command: ``cinder-manage volume update_service`` The service_uuid of volumes associated with old service_uuid also gets updated when cinder creates a new service. Change-Id: I0b13c6351733b8163bcf6e73c939c375493dcba5 (cherry picked from commit edeac13) (cherry picked from commit 530376b) (cherry picked from commit 5b3717f)
In microversion 3.67, we made project_id optional in the URL for all Cinder APIs. However, the default-types APIs (set, unset, get, list) were implemented without the project_id in the URL to make it ready for SRBAC and anticipating the new endpoint for cinder without project_id. This is causing issues while implementing the SDK support for default-types APIs since we fetch the endpoint containing project_id (http://127.0.0.1/volume/v3/<project_id>/default-types) but the default-types API doesn't expect it (http://127.0.0.1/volume/v3/default-types) resulting in 404 resource not found error. ResourceNotFound: 404: Client Error for url: http://127.0.0.1/volume/v3/default_types/12a1b5e507e7497db79707b0ddedf1a4, : 404 Not Found: The resource could not be found. This patch makes the default-types APIs consistent with the other cinder APIs that accept URL with/without project_id. NOTE: This patch doesn't require a microversion bump or releasenote since the expectation with MV3.67 is that all APIs support request irrespective of project_id in the URL and this change is making default-types APIs consisitent with MV3.67. Also MV3.67 is just an indication of the behavior change otherwise supplying URLs without project ID with MV < 3.67 also works. Change-Id: I63efc0598d501d77474588a02582f5338bb8d345 (cherry picked from commit 9afa19e) (cherry picked from commit 2bb2f13) (cherry picked from commit ec37acc)
This patch allows delete_volume and delete_snapshot calls
to fail less often when using RBD volume clones and snapshots.
RBD clone v2 support allows remove() to pass in situations
where it would previously fail, but it still fails with an
ImageBusy error in some situations. For example:
volume1
-> snapshot s1 of volume 1
-> volume2 cloned from snapshot 1
Deleting snapshot s1 would fail with ImageBusy.
This is fixed by using RBD flatten operations to break
dependencies between volumes/snapshots and other RBD volumes
or snapshots.
Delete now works as follows:
1. Attempt RBD remove()
This is the "fast path" for removing a simple volume
that involves no extra overhead.
2. If busy and the volume has child dependencies,
flatten those dependencies with RBD flatten()
3. Attempt RBD remove() again
This will succeed in more cases than (1) would have.
4. If remove() failed, use trash_move() instead to move
the image to the trash instead.
This allows Cinder deletion of a volume (volume1) to proceed
in the scenario where volume2 was cloned from snapshot s1 of
volume1, and snapshot s1 has been trashed and not fully
deleted from the RBD backend. (Snapshots in the trash
namespace are no longer visible but are still in the
dependency chain.)
This allows Cinder deletions to succeed in most scenarios where
they would previously fail.
In cases where a .clone_snap snapshot is present, we still do a
rename to .deleted instead of deleting/trashing the volume. This
should be worked on further in a follow-up as it is likely not
necessary most of the time.
A new configuration option, rbd_concurrent_flatten_operations, was
introduced to limit how many flatten calls can be made at the same time.
This is to prevent overloading the backend. The default value is 3.
Co-Authored-By: Eric Harney <[email protected]>
Co-Authored-By: Sofia Enriquez <[email protected]>
Closes-Bug: #1969643
Change-Id: I009d0748fdc829ca0b4f99bc9b70dadd19717d04
(cherry picked from commit 1a675c9)
(cherry picked from commit ab92378)
Change-Id: Ia35eb28e02840fa188e3e2dad8d188164ca1738a
The property "signature_verified" is added by cinder to volumes created from images. That property is propagated to glance when images are created from such volumes. Later, when creating volumes from such images again, the image property conflicts with cinder trying to add the property again. The solution is to never propagate such cinder property in the first place. Closes-bug: #1823445 Change-Id: Id46877e490b17c00ba1cf8cf312dd2f456760a23 (cherry picked from commit c65f43c) (cherry picked from commit 9dbf296) (cherry picked from commit 9d1b6b8) (cherry picked from commit a770f72)
Online data migrations have been ignoring deleted volumes and snapshots which causes upgrade failures during a DB sync when upgrading to 2024.1 This patches the query to include deleted resources so that these records can be fixed ahead of an upgrade. Note for unmaintained/2023.1: This patch was earlier merged only to the non-SLURP 2023.2 branch, which was EOL-ed since, therefore when upgrading from 2023.1 to 2024.1 the bug reappears. Related-Bug: #2070475 Change-Id: I879cda84d78957a1065bdcf6619fefe88596809e Signed-off-by: Bence Romsics <[email protected]> (cherry picked from commit 0a0c534)
flake8-import-order has a new release[1] on June 20th that breaks Cinder in a different way. ./cinder/api/api_utils.py:28:1: I300 TYPE_CHECKING block should have one newline above. ./cinder/api/common.py:32:1: I300 TYPE_CHECKING block should have one newline above. ./cinder/cmd/backup.py:48:1: I300 TYPE_CHECKING block should have one newline above. ./cinder/cmd/volume.py:52:1: I300 TYPE_CHECKING block should have one newline above. It would be good to fix the changes but for now, it's best to pin the flake8-import-order to <0.19.X where the jobs were stable. We can pin it to a higher version when needed but we want to unblock the gate as a priority for now. [1] https://pypi.org/project/flake8-import-order/0.19.1/ Change-Id: Ic99814a61c93a9249ae9fbe5ecd5c510cb6e31ed (cherry picked from commit 4b96a9a) Conflicts: test-requirements.txt (cherry picked from commit 2da9df9) Conflicts: test-requirements.txt (cherry picked from commit 73f25c6) Conflicts: test-requirements.txt Signed-off-by: Eric Harney <[email protected]> (cherry picked from commit 0b50390) Signed-off-by: Elod Illes <[email protected]>
priteau
previously approved these changes
Jan 16, 2026
A test in datera was failing locally due to the fact the the version checking could be wrong in the egg-info local folder if you switch from a branch to another. It's not necessary to test this anymore as Cinder version 15 (train) is EOL anyway. Signed-off-by: Arnaud Morin <[email protected]> Change-Id: I0d17899c0b239ec969ff51238dcbd4402a567f6c (cherry picked from commit 7ee7ac5)
priteau
approved these changes
Jan 16, 2026
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains a snapshot of 2023.1 from upstream unmaintained/2023.1.