Skip to content

rgw: move rados-specific parts of RGWRealmWatcher into ConfigStore#63189

Merged
cbodley merged 1 commit intoceph:mainfrom
cbodley:wip-rgw-config-store-realm-watcher
May 22, 2025
Merged

rgw: move rados-specific parts of RGWRealmWatcher into ConfigStore#63189
cbodley merged 1 commit intoceph:mainfrom
cbodley:wip-rgw-config-store-realm-watcher

Conversation

@cbodley
Copy link
Contributor

@cbodley cbodley commented May 8, 2025

split RGWRealmWatcher in two halves, moving the rados-specific stuff into a RadosRealmWatcher that inherits from RGWRealmWatcher

add factory function ConfigStore::create_realm_watcher() that returns a generic RGWRealmWatcher. ConfigStore backends that don't support watch/notify can return nullptr

rgw::AppMain uses this to avoid relying on checking for a "rados" driver name, which doesn't work correctly when there are filters on top of the RadosStore

Show available Jenkins commands

@cbodley cbodley force-pushed the wip-rgw-config-store-realm-watcher branch from e8433d1 to 1fa1650 Compare May 8, 2025 19:31
@cbodley cbodley marked this pull request as ready for review May 8, 2025 19:49
@cbodley cbodley requested a review from a team as a code owner May 8, 2025 19:49
@cbodley cbodley requested review from AliMasarweh and dang May 8, 2025 19:59
Copy link
Contributor

@adamemerson adamemerson left a comment

Choose a reason for hiding this comment

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

LGTM.

// add a watcher to respond to realm configuration changes
// if we're part of a realm, add a watcher to respond to configuration changes
if (const auto& realm = env.site->get_realm(); realm) {
realm_watcher = env.cfgstore->create_realm_watcher(dpp, null_yield, *realm);
Copy link
Contributor

Choose a reason for hiding this comment

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

Decent, clean fix.

@cbodley
Copy link
Contributor Author

cbodley commented May 15, 2025

jenkins test make check

@cbodley
Copy link
Contributor Author

cbodley commented May 15, 2025

jenkins test api

split RGWRealmWatcher in two halves, moving the rados-specific stuff
into a RadosRealmWatcher that inherits from RGWRealmWatcher

add factory function ConfigStore::create_realm_watcher() that returns a
generic RGWRealmWatcher. ConfigStore backends that don't support
watch/notify can return nullptr

rgw::AppMain uses this to avoid relying on checking for a "rados" driver
name, which doesn't work correctly when there are filters on top of the
RadosStore

Signed-off-by: Casey Bodley <cbodley@redhat.com>
@cbodley cbodley force-pushed the wip-rgw-config-store-realm-watcher branch from 905166b to e70d932 Compare May 21, 2025 13:28
@cbodley
Copy link
Contributor Author

cbodley commented May 21, 2025

squashed/rebased

@cbodley
Copy link
Contributor Author

cbodley commented May 21, 2025

https://jenkins.ceph.com/job/ceph-api/96171/

no idea what failed there

@cbodley
Copy link
Contributor Author

cbodley commented May 21, 2025

jenkins test api

@cbodley
Copy link
Contributor Author

cbodley commented May 21, 2025

https://jenkins.ceph.com/job/ceph-api/96196/

2025-05-21 19:56:31,018.018 INFO:main:Ran 311 tests in 5936.829s
2025-05-21 19:56:31,018.018 INFO:main:
2025-05-21 19:56:31,018.018 INFO:main:OK (skipped=3)
...
Build step 'Execute shell' marked build as failure

the api tests passed but it was still marked as a failure.. 🤷

@cbodley
Copy link
Contributor Author

cbodley commented May 21, 2025

jenkins test api

@cbodley cbodley merged commit ea2b27b into ceph:main May 22, 2025
12 checks passed
@cbodley cbodley deleted the wip-rgw-config-store-realm-watcher branch May 22, 2025 13:32
cbodley added a commit to cbodley/ceph that referenced this pull request Mar 18, 2026
in ceph#63189 i did the work to hide the
rados-specific bits behind the ConfigStore interface. backends that
don't support watch/notify return nullptr from create_realm_watcher(),
so it doesn't need to be guarded by ifdef

Signed-off-by: Casey Bodley <cbodley@redhat.com>
cbodley added a commit to cbodley/ceph that referenced this pull request Mar 18, 2026
in ceph#63189 i did the work to hide the
rados-specific bits behind the ConfigStore interface. backends that
don't support watch/notify return nullptr from create_realm_watcher(),
so it doesn't need to be guarded by ifdef

Signed-off-by: Casey Bodley <cbodley@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants