170 Commits

Author SHA1 Message Date
Zuul
d7994a9912 Merge "[docs] Add recheck advice" 2024-04-19 16:36:12 +00:00
Brian Rosmaita
f3a63ed6fa [docs] update gerrit group info
The cinder-core gerrit group is configured directly in project-config
to act as openstackclient/openstackSDK "service cores".  Add info to
the cinder-groups document so that we know where to look if this needs
to be changed or adjusted in the future.

Change-Id: I6b626604f9ff573ab59fd4867fdee7a0178ed7f0
2024-04-11 08:43:01 -04:00
Brian Rosmaita
a7c2df7acc [docs] Add recheck advice
Add some general info about gate tests and a link to the recheck
section of the project team guide.

Change-Id: Iedd11fa49489c9c855cf33ebc221fcbf218fa2a7
2024-03-20 10:12:31 -04:00
Gorka Eguileor
1c9aac8f5d Prevent table and column alter and drop
Due to Cinder's rolling upgrade support we have to be very careful with
table drops and column alterations and drops.

In our Unit Tests legacy migrations walk, where we go through the
migrations to confirm they are properly applied, we raise an error on
those 3 operations to prevent them from being casually added in new
migrations.

Those checks are missing for the Alembic migrations, so this patch adds
them there as well while consolidating the check code for both types of
migrations into a single decorator called `prevent_drop_alter`.

Change-Id: I577f65968feb9c10488a19c6f99e8c0b720a433d
2024-01-12 11:23:58 +01:00
Zuul
3c0aea5feb Merge "Deadlock prevention support in synchronize" 2023-07-03 19:09:39 +00:00
Zuul
753b1cd318 Merge "doc: Trivial typo fix" 2023-05-23 10:50:56 +00:00
Zuul
779e7cf84e Merge "db: Remove legacy migrations" 2023-05-23 10:50:52 +00:00
Stephen Finucane
60832ed4b8 doc: Trivial typo fix
Change-Id: I315c2cc1eba4e5cc21e752c4869686c636424afb
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2023-04-17 17:14:08 +01:00
Eric Harney
c8305f44d2 Fix typo in HA contributor doc
"targest" -> "targets"

Change-Id: Ife69605de9692bd87c6173bac3d0b458d047571f
2023-04-12 07:57:06 -04:00
Stephen Finucane
e9dccb93be db: Remove legacy migrations
sqlalchemy-migrate does not (and will not) support sqlalchemy 2.0. We
need to drop these migrations to ensure we can upgrade our sqlalchemy
version.

Change-Id: I39448af0eb8f4c557d591057760c27b1d40d3593
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2023-03-23 12:23:47 +00:00
Brian Rosmaita
c16f4a5069 doc: update setup.cfg file
Add updating the setup.cfg to reflect the current cycle's supported
Python versions to the release cycle tasks list.

Change-Id: I3e309edaa8d4ed9251e91398ff956323f11b1b31
2023-03-09 11:34:19 -05:00
Gorka Eguileor
749772a6fb Deadlock prevention support in synchronize
Some drivers may require multiple locks for a critical section, which
could potentially create deadlocks.  Like in the following example,
where `PowerMax` method `move_volume_between_storage_groups` creates 2
locks:

    @coordination.synchronized(
        "emc-sg-{source_storagegroup_name}-{serial_number}")
    @coordination.synchronized(
        "emc-sg-{target_storagegroup_name}-{serial_number}")
    def move_volume_between_storage_groups(
            self, serial_number, device_id, source_storagegroup_name,
            target_storagegroup_name, extra_specs, force=False,
            parent_sg=None):

That code can result in a deadlock if 2 opposite requests come in
concurrently and their first lock acquisition interleaves.

To make it easier for drivers to request multiple locks ensuring that no
deadlock happens the "synchronize" decorator in cinder.coordination
accepts multiple lock templates and acquires them sorted by rendered
name removing duplicates.

This helps prevent deadlocks because the same lock names will always be
acquired in the same order even if they are received in different order.

Change-Id: I820dd137892e032d076762608d746be187ba5019
2023-01-20 14:59:14 +00:00
Lukáš Piwowarski
99872c0b9d Remove reference to 'all-plugin' tox environment
The 'all-plugin' tox environment was deprecated by this patch [1].
Instead of the 'all-plugin' it is recommended to use the 'all' tox
environment.

This patch removes any reference to 'all-plugin' tox environment and
updates the documentation so that the installation steps work with
the 'all' venv.

[1] https://review.opendev.org/c/openstack/tempest/+/543974

Change-Id: I3150749ddfa8f731f4b17b40df23ebae75197296
2022-10-07 15:37:35 +02:00
Brian Rosmaita
2b731c8206 [docs] Add info about releases
Change-Id: Ic2e93d7181224d4a000a509b29c31463629e6550
2022-08-17 14:24:46 -04:00
Stephen Finucane
58f97d0525 db: Don't use legacy calling style of select()
Resolve the following RemovedIn20Warning warning:

  The legacy calling style of select() is deprecated and will be removed
  in SQLAlchemy 2.0.  Please use the new calling style described at
  select().

Change-Id: I3a944dedc43502183726797279e1db3b1d5cb98d
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2022-06-16 13:04:50 +01:00
Zuul
218c1f92dc Merge "[docs] Update PTL info in contributor guide" 2022-06-10 13:42:49 +00:00
Zuul
0ebdca01f0 Merge "Add info about code coverage job" 2022-06-06 13:49:33 +00:00
Brian Rosmaita
13d2d0e3c2 [docs] Update PTL info in contributor guide
Some recent emails have made me realize that the basic contributor
doc doesn't have info about where you can find out who the current
PTL is.  This patch moves the PTL info from the bottom of the doc
to a more visible place, and adds a brief description of what the
PTL does and who the electorate is.

Change-Id: Ib1fe4fba3d4911222b2c9393700c411d08fe2805
2022-05-28 12:30:10 -04:00
Brian Rosmaita
cc160815bf docs: update release cycle tasks
Add an item about supported python runtimes and making sure we're
running the correct CI jobs.

Change-Id: I7b3ff2561cd400bd3f9fdfa9922fe77b63be03c4
2022-05-19 17:05:05 -04:00
Gorka Eguileor
2707632147 Doc: Improve name_id documentation
Currently our code and contributor documentation doesn't mention the
difference between the two different UUIDs we can have and how drivers
should use them.

This patch tries to provide a brief description about it in multiple
places to reduce the number of bugs that happen around it.

Change-Id: I946ead7547571ccd1b2df55ac1f3d4689d1f8089
2022-05-12 19:54:03 +02:00
Zuul
6fb89b0c08 Merge "Add review best practices section" 2022-04-29 20:27:40 +00:00
Zuul
51f310ce3b Merge "Fix reported storage_protocol" 2022-04-29 19:50:29 +00:00
Zuul
519d3d571a Merge "Fix example of failed migrarion for LVM->RBD" 2022-04-29 19:50:20 +00:00
Zuul
d6a14cff8f Merge "[doc] update releasecycle tasks" 2022-04-29 16:47:39 +00:00
Zuul
1ab044a22d Merge "Rename Dell EMC to Dell" 2022-04-29 16:47:33 +00:00
Zuul
879ee17d9b Merge "[docs] Update cinder-stable-maint description" 2022-04-29 16:47:16 +00:00
Vladislav Belogrudov
7ee223837e Fix example of failed migrarion for LVM->RBD
Migration from and to RBD devices works for in-use volumes since
Ussuri release. Also as of now a migration of in-use volumes for
non-active VMs is prohibited for any backends.

Related-Bug: #1673090
Related-Bug: #1868996
Closes-Bug: #1969913
Change-Id: Id639c412a6f5ad24ab9c80416c56c1d99b3f104c
2022-04-29 17:47:24 +03:00
Zuul
f34eb4928a Merge "Add statement about CI for backports" 2022-04-28 05:04:30 +00:00
Alexander Malashenko
5cb4e21d93 Rename Dell EMC to Dell
cinder/docs directory has a references to the Dell EMC company name.
Rename all Dell EMC references to Dell, except for those references where there are paths.
When the user will read the documentation he will see the new company name.
These changes are due to the company’s rebranding.

Closes-Bug: #1970208
Change-Id: I60e06b1b42974ce7ef4d790f050d706dc1a8a7a3
2022-04-25 07:28:45 -07:00
Brian Rosmaita
ddc0d39b38 [doc] update releasecycle tasks
Add reminder to update meeting info at meetings.opendev.org

Change-Id: Id903012774df596e9a8b200abd39947b99325157
2022-04-22 08:54:38 -04:00
whoami-rajat
cf6e53b2ee Add review best practices section
This doc change aims at creating a checklist of points which would
help reviewers provide useful feedback while reviewing patches.

Change-Id: I1af1ea6b1dab2bc2e5420076ffe7977f11a4aa75
2022-04-22 16:57:32 +05:30
Brian Rosmaita
9cb338b821 [doc] update driver review checklist
Add info about using well-respected cryptographic libraries.

Change-Id: If50a8f18ceab920bb5c82fb1f79b5f63e6399497
2022-04-20 15:18:32 -04:00
Brian Rosmaita
b45379de37 Add statement about CI for backports
Back in February, the cinder project announced a policy that we'd
like to see CI results documented on driver backports:
http://lists.openstack.org/pipermail/openstack-discuss/2022-February/027021.html

Bring this info into the contributor documentation.

Change-Id: Ide112de44887c031cf160e30dbdfe083c1998bda
2022-04-20 12:50:24 -04:00
Gorka Eguileor
39e518456c Fix reported storage_protocol
Cinder has multiple drivers reporting the same storage_protocol in their
stats but with different strings:

For example we have the following variants:
- nfs and NFS
- nveof, NVMe-oF, NVMeOF
- iSCSI, iscsi
- FC, fc, fibre_channel

This patch documents the right values (to use existing constants) and
makes the scheduler treat all variants as if they were equal.

This is done by changing the storage_protocol into a list in the
scheduler upon reception of the stats from the volume.  Most of the code
in the scheduler is already able to handle this, the only changes
necessary are on the filter and goodness function code, which will now
run the respective functions for all the different protocol alternatives
and select the right one, but only when the function actually uses the
storage_protocol.

The API will now report the preferred protocol name in operations like
"cinder get-pools --detail".

Closes-Bug: #1966103
Change-Id: I07d74078dbb102490dd722029e32c74cec3aa44c
2022-04-20 18:48:24 +02:00
Brian Rosmaita
71a2b4fc2e Add info about code coverage job
Explicitly state how to generate the code coverage report locally and
where to find it in Gerrit.

Change-Id: I38fe7675928c9fbfaeb832dab2923a0fce923cc1
2022-04-07 07:05:33 -04:00
Brian Rosmaita
61fa40b2ba [docs] Update cinder-stable-maint description
The OpenStack stable-maint-core team has changed from having approval
over project stable core teams to having a consulting role by this
resolution:
https://governance.openstack.org/tc/resolutions/20210923-stable-core-team.html

Change-Id: I8963dbd9e7890804ad50315e8295ae007590b939
2022-04-01 16:19:45 -04:00
Zuul
7d5270dc0e Merge "Update new driver review checklist" 2022-04-01 13:40:30 +00:00
Brian Rosmaita
3ab151cdba [doc] Add info about backport policies
Change-Id: Ic2ac2a2b3356f7d98cc5c17da925f90739b4c061
2022-03-23 09:10:02 -04:00
Gorka Eguileor
ce4cae9bf7 Docs: fix small typo on contributor gerrit
Fix a typo where it said locking instead of looking.

Change-Id: I81a6957bba82775712350ca841db6dd83016eaf0
2022-03-16 15:40:17 +01:00
Stephen Finucane
52370e58fe docs: Remove unnecessary 'blockstorage-' prefix
These are in the cinder doc tree so of course they're block
storage-related.

Change-Id: Ic1950ff89021a89de397619eef17f8100eb3d847
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2022-02-20 19:06:32 +00:00
Stephen Finucane
31f8ad4eb4 db: Enable auto-generation of database migrations
Alembic does lots of new things. Provide docs for how to use this. This
doesn't actually work that well at the moment because it appears our
database migrations are not in sync with the models. Those issues will
have to be resolved separately.

Change-Id: I6645ca951114b94ce9ed5a83e5e11d53879a7cd5
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2022-02-20 19:06:01 +00:00
Brian Rosmaita
955d6a6e25 Update 'cinder-specs-core' description
We've expanded it to include appropriate non-cinder-core people,
so update the description to reflect that.

Change-Id: If9e6d841ada5938a6c42f9fc75b5e11313dd3bcf
2022-02-14 15:10:57 -05:00
Brian Rosmaita
bf0b6e7940 Update new driver review checklist
- add info about reporting common config options
- update python version testing info for third party CI
- add info about unit test discovery
- add warning about a child driver reporting parent capabilities
  that it may not have

Change-Id: Ife214328cdb08ea9a3939b61469fd70b100ed3c7
2022-02-04 12:00:27 -05:00
Brian Rosmaita
f1062f4be0 docs: Update "Getting your patch merged"
Move the "how to review" note to the "Getting your patch merged"
section of the new contributor doc, add some info about project
priorities and milestones/freezes, and the importance of having
a +1 from Zuul.

Change-Id: Ia184482946a0afda783004c7902c682141ed9278
2022-02-03 18:54:01 -05:00
zhangxiaofan02
50bcacee80 Fix a typo error in explanatory notes
This patch changes " running nigthly"
to " running nightly" at the 137 line
in cinder/doc/source/contributor/gerrit.rst

Closes-Bug: #1952683
Change-Id: Ia6ac8cb0b458b6b828c5a54f0475c05d940e93e1
2021-11-30 16:40:38 +08:00
Brian Rosmaita
fce3e1a6e0 Update release cycle tasks
Some due dates have changed, and add info about the 'release-notes'
in the deliverables .yaml files.

Change-Id: I041bf0f9f18788c0dc7f2d3ccb00701672cf8ffb
2021-11-19 12:06:57 -05:00
Brian Rosmaita
7689e46ca5 Add reviewing section to release notes doc
In addition to reviewing comments, the key thing here is to get
a reference to the reno doc about why you need to patch release
notes directly to a stable branch or else they show up in the
wrong release.

Change-Id: Ice4f70d56aa81d4470ef8067d572fd8294d6cd6f
2021-09-23 12:49:28 -04:00
Gorka Eguileor
6c6c185894 Docs: Discourage using naked rechecks
The Cinder community agreed to do detailed rechecks and try to avoid
doing naked rechecks.

Sometimes it is hard to remember what the agreement was, what is the
recommended format, and what was the reason behind it.

This patch adds a brief explanation to the contributor documentation to
reflect the agreement.

Change-Id: Iba3741aed1927aefb27ac4926bd39e74d08d08c7
2021-09-01 16:18:11 +02:00
Zuul
2fc2b9e70a Merge "Remove file locks once we delete a resource" 2021-08-05 15:59:16 +00:00
Gorka Eguileor
d2f6ec5569 Remove file locks once we delete a resource
File locks are never removed from the system, so they keep increasing in
the locks directory, which can become problematic.

In this patch we start trying to delete these lock files when we delete
a volume or a snapshot.

This affects the 2 type of file locks we currently have:
- Using oslo lockutils synchronized with external=True
- Using coordination.synchronized when deployed in Active-Passive and no
  DLM

This will alleviate the ever increasing files in the locks directory.
Deployment tools should implement a service that runs when the host is
booting and cleans of the locks directory before the OpenStack services
are started.

Partial-Bug: #1432387
Change-Id: Ic73ee64257aeb024383c6cb79f2e8c04810aaf69
2021-08-04 10:41:33 -04:00