rgw: roles: refactor roles class to the new multisite svc definitions #37679
rgw: roles: refactor roles class to the new multisite svc definitions #37679theanalyst wants to merge 43 commits intoceph:mainfrom
Conversation
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
This handles the metadata for RGW Roles with the RADOS backend Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
4647912 to
f50ce86
Compare
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
This keeps the implementation of storage seperate from the RGWRole class. Also drop the get_roles_by_path_prefix static function as this is currently implemented in the backend and can be directly accessed from role ctl classes. Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Similar to the read and write system_obj interfaces this function stats an object and returns the mtime & attrs if set. Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
|
@adamemerson @pritha-srivastava @mattbenjamin i think this PR would benefit from a similar layer-collapsing (see #41798) to drop the |
|
I would hold off on some of this. @dang mentioned having plans to pull apart SysObj into a few different kinds of object as part of Zipper in the last refactor meeting, so rewriting things in terms of the services might be premature. |
zipper got a |
|
thanks @cbodley @adamemerson , I will look into #41798 |
@cbodley : I think I understand what is to be done to merge Dan's rgw::sal changes, Abhishek's changes here and collapsing the services. Just to be clear here - I need to collapse RGWSI_Role_RADOS and RGWSI_Role into one class (RGWSI_Role) as has been done in #41798? |
honestly i would prefer not to have a role service at all. i'm not convinced we need the |
rgw::sal::RGWRole with rgw::sal::RadosRole covers all the functionality. But where is the code that handles the replication, if we do away with the service classes? |
Should the zone info and be_handler be added to RadosRole/RGWRole for that? |
metadata sync uses past that, i'm not really clear on how the backend stuff fits in
ok, i guess i missed all the stuff with i guess the only purpose of the |
Yes, it looks like RGWSI_Role_Module and struct Svc { |
|
We have the option of ditching the entire RGWSI and module and backend business and just subclassing RGW Metadata Handler directly, which would be my preference, if we have to involve the RGW Metadata Handler stuff at all. |
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
|
This pull request has been automatically closed because there has been no activity for 90 days. Please feel free to reopen this pull request (or open a new one) if the proposed change is still appropriate. Thank you for your contribution! |
Introduce RGWRole and related services which actually perform the sysobj IO. The RGWRole Class itself is split into a RGWRoleInfo struct that holds the actual data & RGWRole class which provides the same interface as before, so the only change at the callsites was to use the RGWRoleCtl class instead of the rados ctl classes. Role creation will create the related metadata objects for role names & paths, however only role_info metadata object is actually in the metadata log, similar to how user MDLog works.
TODO:
Fixes: https://tracker.ceph.com/issues/45659
Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume tox