Fix misbehaviour in store_oauth2_credentials #242
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.
The previous implementation was both needlessly complicated, and also had a
misbehaviour.
When writing new credentials to an already existing file, the file would
not get correctly truncated. This caused some previous data to remain if
the new data to be written was shorter than the current file contents.
It would then cause gmvault to fail with the following error upon the
next invocation:
=== Exception traceback ===
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/gmv/credential_utils.py", line 147, in read_oauth2_tok_sec
oauth_result = json.load(oauth_file)
File "/usr/lib64/python2.7/json/init.py", line 291, in load
**kw)
File "/usr/lib64/python2.7/json/init.py", line 339, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python2.7/json/decoder.py", line 367, in decode
raise ValueError(errmsg("Extra data", s, end, len(s)))
ValueError: Extra data: line 1 column 225 - line 1 column 237 (char 224 - 236)