51879 fix binary pillar return error #52334
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.
What does this PR do?
Restores a previous behavior - allows binary GPG pillar data.
What issues does this PR fix or reference?
Fixes #51879
Previous Behavior
The original behavior on Python2 was that binary or text could be intermingled. When Python 3 support was introduced, we accidentally broke that backwards compatibility - say you had binary data stored in a GPG pillar (the simplest example is the byte
'\x8b'
) this would blow up.New Behavior
Now if we have a UnicodeDecodeError we assume that the data was meant to be binary data. Also, the
file.managed
state is in more in line with the module - it will restore Salt's original behavior and no longer fail if the file contents is binary data.Tests written?
Yes
Commits signed with GPG?
Yes