Skip to content

Fix dedup pool perms #65118

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

Draft
wants to merge 1,079 commits into
base: main
Choose a base branch
from
Draft

Fix dedup pool perms #65118

wants to merge 1,079 commits into from

Conversation

benhanokh
Copy link
Contributor

Contribution Guidelines

  • To sign and title your commits, please refer to Submitting Patches to Ceph.

  • If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.

  • When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an x between the brackets: [x]. Spaces and capitalization matter when checking off items this way.

Checklist

  • Tracker (select at least one)
    • References tracker ticket
    • Very recent bug; references commit where it was introduced
    • New feature (ticket optional)
    • Doc update (no ticket needed)
    • Code cleanup (no ticket needed)
  • Component impact
    • Affects Dashboard, opened tracker ticket
    • Affects Orchestrator, opened tracker ticket
    • No impact that needs to be tracked
  • Documentation (select at least one)
    • Updates relevant documentation
    • No doc update is appropriate
  • Tests (select at least one)
Show available Jenkins commands

phlogistonjohn and others added 30 commits July 10, 2025 12:02
Create a new file staging.py to reduce the size of handler.py and
organize this a bit more. The staging.py file will be responsible for
the special staging area store as well as functions that work directly
on the staging store like the cross-check of resources.

This change is nearly a straight more except for renaming some functions
from _foo to foo.

Signed-off-by: John Mulligan <[email protected]>
(cherry picked from commit 978e92f)
The previous code relied on a cascading block of if-isintance statements
that was dense and somwehat error prone as I found out during an
experiment to add a new top level resource type. Refactor the cross
check function to use singledispatch:
  https://docs.python.org/3.9/library/functools.html#functools.singledispatch

Now instead of correctly adding check function(s) and updating the
if-block, only new check functions using the register decorator is
needed.

Note that making this checking more generic is difficult as each
different resource type really has different cross checking needs.

Signed-off-by: John Mulligan <[email protected]>
(cherry picked from commit f0ffb26)
Signed-off-by: John Mulligan <[email protected]>
(cherry picked from commit ee6b29b)
The prune function was tightly linked to the staging store. Re-implement
it as more generic operation on the staging store.
Continue shrinking handler.py a bit and preparing to make it simpler to
add future SMBResource types.

Signed-off-by: John Mulligan <[email protected]>
(cherry picked from commit 3633bfb)
tentacle: rgw/dedup: full object dedup

Reviewed-by: Casey Bodley <[email protected]>
…cier/Tape endpoint

Restoration of objects from certain cloud services (like Glacier/Tape) could
take significant amount of time (even days). Hence store the state of such restore requests
and periodically process them.

Brief summary of changes

* Refactored existing restore code to consolidate and move all restore processing into rgw_restore* file/class

* RGWRestore class is defined to manage the restoration of objects.

* Lastly, for SAL_RADOS, FIFO is used to store and read restore entries.

Currently, this PR handles storing state of restore requests sent to cloud-glacier tier-type which need async processing.
The changes are tested with AWS Glacier Flexible Retrieval with tier_type Expedited and Standard.

Reviewed-by: Matt Benjamin <[email protected]>
Reviewed-by: Adam Emerson <[email protected]>
Reviewed-by: Jiffin Tony Thottan <[email protected]>
Reviewed-by: Daniel Gryniewicz <[email protected]>

Signed-off-by: Soumya Koduri <[email protected]>
(cherry picked from commit ef96bb0)
In case adding restore entry to FIFO fails, reset the `restore_status`
of that object as "RestoreFailed" so that restore process can be
retried from the end S3 user.

Reviewed-by: Adam Emerson <[email protected]>
Reviewed-by: Jiffin Tony Thottan <[email protected]>

Signed-off-by: Soumya Koduri <[email protected]>
(cherry picked from commit 9974f51)
In addition, added some more debug statements and done code cleanup

Reviewed-by: Adam Emerson <[email protected]>
Reviewed-by: Jiffin Tony Thottan <[email protected]>

Signed-off-by: Soumya Koduri <[email protected]>
(cherry picked from commit f00ac7c)
Reviewed-by: Adam Emerson <[email protected]>
Reviewed-by: Matt Benjamin <[email protected]>

Signed-off-by: Soumya Koduri <[email protected]>
(cherry picked from commit b3c867a)
tentacle: rgw: make keystone work without admin token(service ac requirement)

Reviewed-by: Adam Emerson <[email protected]>
tentacle: rgw: make sure max_objs_per_shard is appropriate in debugging scenarios

Reviewed-by: Casey Bodley <[email protected]>
Use new neorados/FIFO routines to store restore state.

Note: Old librados ioctx is also still retained as it is needed
by RestoreRadosSerializer.

Signed-off-by: Soumya Koduri <[email protected]>
(cherry picked from commit faf06bc)
Signed-off-by: Soumya Koduri <[email protected]>
(cherry picked from commit a981b4c)
Fix the version of `restore_pool` and `dedup_pool` to be
 compatible with earlier releases.

Signed-off-by: Soumya Koduri <[email protected]>
(cherry picked from commit b6fc0be)
tentacle: mon/MgrStatMonitor.cc: cleanup pool_availability
distutils was deprecated in python 3.10 and removed in 3.12 which we
need to support for ubuntu 24.04

Fixes: https://tracker.ceph.com/issues/72020

Signed-off-by: Casey Bodley <[email protected]>
(cherry picked from commit 3fb3f89)
[rgw][tentacle] Add Restore support from Glacier/Tape cloud endpoints

Reviewed-by: Casey Bodley <[email protected]>
…rt-64164-to-tentacle

tentacle: mgr/dashboard: Fix inline markup warning in API documentation

Reviewed-by: Afreen Misbah <[email protected]>
…_key and missing params for host add

Signed-off-by: Tomer Haskalovitch <[email protected]>
(cherry picked from commit eaab5a0)
tentacle: mgr/dashboard: add missing commands for subsystem: change_key and del…

Reviewed-by: Afreen Misbah <[email protected]>
Signed-off-by: Anthony D'Atri <[email protected]>
(cherry picked from commit 329ee7b)
Try to improve the language by completely rewriting some sentences.
Attempt to format the document more like the rest of the docs.
Fix several errors in punctuation, capitalization, spaces etc.
Use blocks with bash prompts for CLI commands instead of hardcoded
prompts.
Fix section hierarchy and section title underline lengths.
Use admonition.

Signed-off-by: Ville Ojamo <[email protected]>
(cherry picked from commit 6e836f8)
…rt-63080-to-tentacle

tentacle: doc/radosgw: Improve rgw-cache.rst
…rt-64462-to-tentacle

tentacle: doc/cephfs: Improve mount-using-fuse.rst
Signed-off-by: Anthony D'Atri <[email protected]>
(cherry picked from commit 89eabfc)
…rt-64374-to-tentacle

tentacle: doc: Clarify the status of MS Windows client support
Add note admonitions when discussing client package support in the
context of OS Recommendations in the following two files:

- doc/cephfs/ceph-dokan.rst
- doc/rbd/rbd-windows.rst

This addresses a change requested by Ilya Dryomov in
ceph#64374 (comment).

Signed-off-by: Zac Dover <[email protected]>
(cherry picked from commit 69d641f)
…rt-64483-to-tentacle

tentacle: doc: add note admonitions in two files
Add material to doc/rados/operations/cache-tiering.rst, as suggested by
Anthony D'Atri in
ceph#63745 (comment).

Signed-off-by: Zac Dover <[email protected]>
(cherry picked from commit d3c4682)
Copy link
Contributor

@anthonyeleven anthonyeleven left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1079 commits? Rebase hiccup?

@benhanokh
Copy link
Contributor Author

1079 commits? Rebase hiccup?
something went terribly wrong

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: New
Development

Successfully merging this pull request may close these issues.