Improve error handling for Grains virtual hardware identification #39504
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.
What does this PR do?
This should mitigate the "Although 'dmidecode' was found in path, the current user cannot execute it" warning, which is a frequent annoyance when running Salt as non-root user (#2494, Thread, #5249, #39184). It also fixes some other flaws in the function's error handling which appear to have creeped in over time.
Previous Behavior
Message gets logged with level "warning".
New Behavior
Message gets logged with level "info".
Changing the loglevel is more of an ugly hack, but loglevels aren't consistent within the module anyway and fixing the error detection would probably require major refactoring of the whole function.
Speaking of that, the logic and error handling are a bit of a mess anyway, so the function might actually be a good candidate for refactoring. For example, the general error message is logged before and the error messages for individual commands and further identification logic.
Tests written?
No.