Detect unwriteable Abins cache, raise better error #38606
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of work
Quality-of-life improvement for a common user issue with Abins: in some installations the default user save directory is not writeable.
I am working on a better solution to allow the Abins cache directory to be set more explicitly, but in the hope of getting something that helps users in before the code freeze this should be a good start.
Summary of work
This is related to #38084 ; AbINS users sometimes have an unwriteable default save directory which leads to an unhelpful error message, and need support to fix it. Here we explicitly check that the directory is writeable and raise a more useful error message if not.
Ideally this validation would be part of an explicit input field in the Algorithm and give a nice red asterisk; I'm working on that but it is more involved to test and review. Here is a small fix that provides 50% of the benefits in a small fraction of the case.
To test:
You will need an Abins input file, e.g. ExternalData/Testing/Data/UnitTest/benzene_abins.phonon. Run the Abins algorithm with this VibrationalOrPhononFile and set the appropriate AbInitioProgram (CASTEP for that file) and some name for OutputWorkspace. Other parameters don't matter; run the algorithm and if you have a reasonable user directory set up there should be no error.
Then go to File/Manage User Directories and set the default save directory to somewhere unwriteable like /lib64. Run Abins again (with a different workspace name); it should present a useful error message.
This should work exactly the same for Abins2D
Reviewer
Please comment on the points listed below (full description).
Your comments will be used as part of the gatekeeper process, so please comment clearly on what you have checked during your review. If changes are made to the PR during the review process then your final comment will be the most important for gatekeepers. In this comment you should make it clear why any earlier review is still valid, or confirm that all requested changes have been addressed.
Code Review
Functional Tests
Does everything look good? Mark the review as Approve. A member of
@mantidproject/gatekeepers
will take care of it.Gatekeeper
If you need to request changes to a PR then please add a comment and set the review status to "Request changes". This will stop the PR from showing up in the list for other gatekeepers.