-
Notifications
You must be signed in to change notification settings - Fork 10
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
Fix tiering with complex permissions and rodsusers running tiering rules (4-3-stable) #295
Conversation
Re-built with 4.3.3 packages downloaded from packages.irods.org and saw all the tests pass. Marking ready for review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking real good.
All tests passed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Just a few things from me!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Few comments on my part. Some repeat questions about use of make()
, mostly for understanding.
Everything builds, just need to run tests again. Will watch for additional comments |
All tests passed. |
Good. Is there anything else left to do for this PR? |
If there are no additional review comments, I think it's in a good spot as a stake in the ground. There are some things which were raised in the review which have been captured in issues and will (probably) be addressed before release. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Squash it and format it.
Squashed. Formatting satisfied |
Restore use of tabs before running clang-format on all the code. AlignTrailingComments is false in irods/irods and is generally annoying, so don't restore that.
Also adds ability to specify a session for running the tiering rule in tests. Previously, this was done using a temporary session for an existing admin user.
Is the commit message for 2dc3f29 still good. I'm mostly looking at the mention of Also, are both |
Hmm... true, that did change. Will update.
I think all instances have switched to using the new one. |
Consider marking it deprecated to guard against future usage. |
I wouldn't say that its usage is discouraged... It still works, after all. It's just that the plugin is no longer using it because we're going in a different direction (admin only everywhere). Considering it's in a private header file specific to this plugin and it may just get removed in the very near future anyway (#296 (comment)), I don't think we need to mark it deprecated. Thoughts? |
agreed - we'll be torching it before a release most probably. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pound it.
This commit makes a couple of changes: 1. Added proxy_connection::make_rodsadmin_connection. This function simply establishes a client connection as the local service account rodsadmin. Importantly, it also sets the authFlag in the created RcComm in order to appropriately indicate the privilege level of the client user. 2. All instances of establishing a connection with the local server to perform actions have been replaced with connections as the local service account rodsadmin. This allows storage tiering to do its job properly without needing to worry about user permissions. Note: Violating queries still select the USER_NAME and USER_ZONE, but they are no longer used.
The lambda function fed to the irods::query_processor for scheduling violating data objects for migration had a race condition wherein objects marked as already having been processed were not protected by a mutex. This resulted in data objects with multiple users or groups with permissions on those data objects being scheduled for migration multiple times.
Removed mention of overloads from commit message and #'d. Please eyeball message before I merge |
Merge it! |
Addresses #164
Addresses #189
Addresses #273
Addresses #293
A few notes with this change: