-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
[CT-352] catch and retry malformed json #4982
Merged
Merged
Changes from 3 commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
3a63407
catch None and malformed json reponses
emmyoop 960a577
add json.dumps for format
emmyoop 46fcc60
format
emmyoop c2cf124
Cache registry request results. Avoid one request per version
jtcohen6 152a1ae
updated to be direct in type checking
emmyoop 8ef8171
add changelog entry
emmyoop e599c42
add back logic for none check
emmyoop 25d4c96
PR feedback: memoize > global
jtcohen6 201171d
add checks for expected types and keys
emmyoop e8d10d2
Merge branch 'jerco/cache-registry-requests' of https://github.com/db…
emmyoop 62476d3
consolidated cache and retry logic
emmyoop ee3b5e5
minor cleanup for clarity/consistency
emmyoop 6a7b8f9
add pr review suggestions
emmyoop ab1a31b
update unit test
emmyoop File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
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.
This feels bad. Any suggestions on a better way to do this welcome!
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.
The comment doesn't state this yet but the
api/v1/index.json
path also returns a list objects that causes it fail.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.
wait... I think it should be valid JSON... it's just a list... according to jsonlint dot com it's valid
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.
@jtcohen6 my understanding is
json.resp()
returns a json object which really means it's returning a python list in this case. Sojson.loads(jsonData)
freaks out withTypeError: the JSON object must be str, bytes or bytearray, not list
. I've updated all this confusing logic I added to just straight check if json.resp() is a list or dict. That's all we ever expect it to be. Since we control the HUB and the only time it's not one of those two things something else is going wrong, this is safe. It's also much clearer as to what's happening.