)]}'
{"ceilometer/__init__.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"e3a21335072ac5466169ff55b3325b61587aeb53","unresolved":false,"context_lines":[{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class NotImplementedError(NotImplementedError):"},{"line_number":19,"context_line":"    # FIXME(jd) This is used by WSME to return a correct HTTP code. We should"},{"line_number":20,"context_line":"    # not expose it here but wrap our methods in the API to convert it to a"},{"line_number":21,"context_line":"    # proper HTTP error."}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_a7cfd127","line":18,"updated":"2014-09-15 18:31:12.000000000","message":"i think this would be cleaner if it were under an exception.py file rather than __init__ but not a blocker.","commit_id":"62008d4e5bf688024c0be575ee37df20b82bb722"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"01f53be5fa3af79cea178bd37c2d667377fddd7f","unresolved":false,"context_lines":[{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class NotImplementedError(NotImplementedError):"},{"line_number":19,"context_line":"    # FIXME(jd) This is used by WSME to return a correct HTTP code. We should"},{"line_number":20,"context_line":"    # not expose it here but wrap our methods in the API to convert it to a"},{"line_number":21,"context_line":"    # proper HTTP error."}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_c1f4b788","line":18,"in_reply_to":"fa98f980_a7cfd127","updated":"2014-09-16 04:51:29.000000000","message":"since ceilometer currently doesn\u0027t have unified exception.py for all the exceptions that might be thrown, I think that\u0027s the job for another patch.","commit_id":"62008d4e5bf688024c0be575ee37df20b82bb722"}],"ceilometer/storage/base.py":[{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"26e446a4a1ef206c183a79d2f4bb4de780a904fe","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        All timestamps must be naive utc datetime object."},{"line_number":192,"context_line":"        \"\"\""},{"line_number":193,"context_line":"        raise ceilometer.NotImplementedError(\u0027Projects not implemented\u0027)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    @staticmethod"},{"line_number":196,"context_line":"    def clear_expired_metering_data(ttl):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_1c22c1b8","line":193,"updated":"2014-09-15 12:23:03.000000000","message":"Predates your patch obviously, but the \u0027Projects not implemented\u0027 message seems like a copy\u0027n\u0027paste error in a previous patch.\n\nSince this line is being changed anyway, could you switch to say:\n\n  \u0027Recording metering data is not implemented\u0027\n\nor something of that ilk?","commit_id":"a1d4fa7f79076e9a1f986f14b573b05c74bf378e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"4dbafb4ea40362f9dc0f16b4c960d1a282d72da4","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        All timestamps must be naive utc datetime object."},{"line_number":192,"context_line":"        \"\"\""},{"line_number":193,"context_line":"        raise ceilometer.NotImplementedError(\u0027Projects not implemented\u0027)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    @staticmethod"},{"line_number":196,"context_line":"    def clear_expired_metering_data(ttl):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_4ae55736","line":193,"in_reply_to":"fa98f980_1c22c1b8","updated":"2014-09-15 13:09:44.000000000","message":"Done","commit_id":"a1d4fa7f79076e9a1f986f14b573b05c74bf378e"}],"ceilometer/tests/base.py":[{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"92a402f13fa89db98aa93aa647a4a33f1baae9fb","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        except ceilometer.NotImplementedError as e:"},{"line_number":102,"context_line":"            raise testcase.TestSkipped(six.text_type(e))"},{"line_number":103,"context_line":"        except Exception as e:"},{"line_number":104,"context_line":"            if \u0027not implemented\u0027 in six.text_type(e):"},{"line_number":105,"context_line":"                raise testcase.TestSkipped(six.text_type(e))"},{"line_number":106,"context_line":"            raise"},{"line_number":107,"context_line":"    return skip_if_not_implemented"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_df0d8b90","line":104,"updated":"2014-09-15 12:50:40.000000000","message":"What about this branch? This would probably produce some unintended skips as well, right?","commit_id":"a1d4fa7f79076e9a1f986f14b573b05c74bf378e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"4dbafb4ea40362f9dc0f16b4c960d1a282d72da4","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        except ceilometer.NotImplementedError as e:"},{"line_number":102,"context_line":"            raise testcase.TestSkipped(six.text_type(e))"},{"line_number":103,"context_line":"        except Exception as e:"},{"line_number":104,"context_line":"            if \u0027not implemented\u0027 in six.text_type(e):"},{"line_number":105,"context_line":"                raise testcase.TestSkipped(six.text_type(e))"},{"line_number":106,"context_line":"            raise"},{"line_number":107,"context_line":"    return skip_if_not_implemented"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_8ad2df59","line":104,"in_reply_to":"fa98f980_df0d8b90","updated":"2014-09-15 13:09:44.000000000","message":"Done","commit_id":"a1d4fa7f79076e9a1f986f14b573b05c74bf378e"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"fe90711b7c721d71d2a27ecb91fe1f1b84c2302b","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        try:"},{"line_number":98,"context_line":"            return func(*args, **kwargs)"},{"line_number":99,"context_line":"        except AssertionError:"},{"line_number":100,"context_line":"            raise"},{"line_number":101,"context_line":"        except ceilometer.NotImplementedError as e:"},{"line_number":102,"context_line":"            raise testcase.TestSkipped(six.text_type(e))"},{"line_number":103,"context_line":"    return skip_if_not_implemented"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_6a13fb00","line":100,"updated":"2014-09-15 13:14:29.000000000","message":"If we\u0027re getting rid of the catch-all except clause, then the AssertionError one can go also, since that was only introduced to ensure that failed test assertions where the message included the sub-string \"... not implemented ...\" weren\u0027t swallowed by the catch-all.","commit_id":"55ad74435ab2cad52f92faaf0b61eea2427de67e"}]}
