)]}'
{"nova/api/openstack/placement/util.py":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"97a9bad2e89f80156a6af8bc635967b31fd27de7","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        # param cannot be decoded. Catch this and raise HTTP 400."},{"line_number":206,"context_line":"        jsonschema.validate(dict(req.GET), schema,"},{"line_number":207,"context_line":"                            format_checker\u003djsonschema.FormatChecker())"},{"line_number":208,"context_line":"    except (jsonschema.ValidationError, UnicodeDecodeError) as exc:"},{"line_number":209,"context_line":"        raise webob.exc.HTTPBadRequest("},{"line_number":210,"context_line":"            _(\u0027Invalid query string parameters: %(exc)s\u0027) %"},{"line_number":211,"context_line":"            {\u0027exc\u0027: exc})"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"def wsgi_path_item(environ, name):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_e6981076","line":211,"range":{"start_line":208,"start_character":0,"end_line":211,"end_character":25},"updated":"2018-01-31 07:49:14.000000000","message":"I\u0027m not sure about this, \"UnicodeDecodeError: \u0027utf8\u0027 codec can\u0027t decode byte 0x89 in position 0: invalid start byte\" seems too much detail and hard to understand for users.","commit_id":"ea006b13a7ad5229a3dcdbba0e7aef438e873b6c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"104e1e8196409ce4909a355430696f45c4506936","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        # param cannot be decoded. Catch this and raise HTTP 400."},{"line_number":206,"context_line":"        jsonschema.validate(dict(req.GET), schema,"},{"line_number":207,"context_line":"                            format_checker\u003djsonschema.FormatChecker())"},{"line_number":208,"context_line":"    except (jsonschema.ValidationError, UnicodeDecodeError) as exc:"},{"line_number":209,"context_line":"        raise webob.exc.HTTPBadRequest("},{"line_number":210,"context_line":"            _(\u0027Invalid query string parameters: %(exc)s\u0027) %"},{"line_number":211,"context_line":"            {\u0027exc\u0027: exc})"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"def wsgi_path_item(environ, name):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_eec69968","line":211,"range":{"start_line":208,"start_character":0,"end_line":211,"end_character":25},"in_reply_to":"5f93b717_46b5447d","updated":"2018-01-31 15:56:28.000000000","message":"I think it\u0027s reasonable for now, we can make it better later if it proves to be a problem. This will not be a common error.","commit_id":"ea006b13a7ad5229a3dcdbba0e7aef438e873b6c"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"9e5a74d1c0b4dced7d5194a4853a25203e7e92ed","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        # param cannot be decoded. Catch this and raise HTTP 400."},{"line_number":206,"context_line":"        jsonschema.validate(dict(req.GET), schema,"},{"line_number":207,"context_line":"                            format_checker\u003djsonschema.FormatChecker())"},{"line_number":208,"context_line":"    except (jsonschema.ValidationError, UnicodeDecodeError) as exc:"},{"line_number":209,"context_line":"        raise webob.exc.HTTPBadRequest("},{"line_number":210,"context_line":"            _(\u0027Invalid query string parameters: %(exc)s\u0027) %"},{"line_number":211,"context_line":"            {\u0027exc\u0027: exc})"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"def wsgi_path_item(environ, name):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_46b5447d","line":211,"range":{"start_line":208,"start_character":0,"end_line":211,"end_character":25},"in_reply_to":"5f93b717_e6981076","updated":"2018-01-31 08:05:21.000000000","message":"the placement is always used by admin, maybe acceptable?","commit_id":"ea006b13a7ad5229a3dcdbba0e7aef438e873b6c"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"e8e752035208a04df38ae1d032016f675b110215","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        # param cannot be decoded. Catch this and raise HTTP 400."},{"line_number":206,"context_line":"        jsonschema.validate(dict(req.GET), schema,"},{"line_number":207,"context_line":"                            format_checker\u003djsonschema.FormatChecker())"},{"line_number":208,"context_line":"    except (jsonschema.ValidationError, UnicodeDecodeError) as exc:"},{"line_number":209,"context_line":"        raise webob.exc.HTTPBadRequest("},{"line_number":210,"context_line":"            _(\u0027Invalid query string parameters: %(exc)s\u0027) %"},{"line_number":211,"context_line":"            {\u0027exc\u0027: exc})"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"def wsgi_path_item(environ, name):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_3a682d1b","line":211,"range":{"start_line":208,"start_character":0,"end_line":211,"end_character":25},"in_reply_to":"5f93b717_eec69968","updated":"2018-02-01 06:31:30.000000000","message":"Cool","commit_id":"ea006b13a7ad5229a3dcdbba0e7aef438e873b6c"}]}
