)]}'
{"octavia/amphorae/backends/agent/api_server/server.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"8346f7ceff93fcedfc4275e2bebcb05ff420ba02","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    try:"},{"line_number":119,"context_line":"        request_json \u003d flask.request.data.decode(\u0027utf8\u0027)"},{"line_number":120,"context_line":"        if six.PY2:"},{"line_number":121,"context_line":"            request_json \u003d request_json.decode(\u0027string-escape\u0027).strip(\u0027\"\u0027)"},{"line_number":122,"context_line":"        subnet_info \u003d json.loads(request_json)"},{"line_number":123,"context_line":"        assert type(subnet_info) is dict"},{"line_number":124,"context_line":"        assert \u0027subnet_cidr\u0027 in subnet_info"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_3aded16d","line":121,"updated":"2015-08-11 03:09:13.000000000","message":"Wow, this is really necessary in PY2 only? :(\n\nGoing to do a bit of experimentation.","commit_id":"3bbf5203ffa4b0e95bc99a18c3ff39fa2393cf8d"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c8fe889377e9fd6489288e3446063be052fda1e9","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    try:"},{"line_number":119,"context_line":"        request_json \u003d flask.request.data.decode(\u0027utf8\u0027)"},{"line_number":120,"context_line":"        if six.PY2:"},{"line_number":121,"context_line":"            request_json \u003d request_json.decode(\u0027string-escape\u0027).strip(\u0027\"\u0027)"},{"line_number":122,"context_line":"        subnet_info \u003d json.loads(request_json)"},{"line_number":123,"context_line":"        assert type(subnet_info) is dict"},{"line_number":124,"context_line":"        assert \u0027subnet_cidr\u0027 in subnet_info"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_a3ea900d","line":121,"in_reply_to":"1a4dcd0f_3aded16d","updated":"2015-08-11 18:12:20.000000000","message":"Please do.  I spent a day trying to figure out what is going on and a better way to deal with it.\nI don\u0027t like it either, but didn\u0027t come up with a better answer.\nSuggestions welcome!","commit_id":"3bbf5203ffa4b0e95bc99a18c3ff39fa2393cf8d"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"2e3cfaa4f25729f03fdbe3c00d55bde895010290","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    try:"},{"line_number":119,"context_line":"        request_json \u003d flask.request.data.decode(\u0027utf8\u0027)"},{"line_number":120,"context_line":"        if six.PY2:"},{"line_number":121,"context_line":"            request_json \u003d request_json.decode(\u0027string-escape\u0027).strip(\u0027\"\u0027)"},{"line_number":122,"context_line":"        subnet_info \u003d json.loads(request_json)"},{"line_number":123,"context_line":"        assert type(subnet_info) is dict"},{"line_number":124,"context_line":"        assert \u0027subnet_cidr\u0027 in subnet_info"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_f0e45ce1","line":121,"in_reply_to":"1a4dcd0f_a3ea900d","updated":"2015-08-13 22:12:54.000000000","message":"The issue is a double-encode on the sending side of the equation. This should be unnecessary, and you should be using flask.request.get_json() here.","commit_id":"3bbf5203ffa4b0e95bc99a18c3ff39fa2393cf8d"}]}
