)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"6f2cb3bd38d02fd43c1c7f984ab3cb613adbe4f5","unresolved":false,"context_lines":[{"line_number":7,"context_line":"model proxy: Throw custom exception when model not cached"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, when attempting to access fields on a model which is not"},{"line_number":10,"context_line":"cached, the esception thrown complains that NoneType doesn\u0027t have the"},{"line_number":11,"context_line":"attribute. This message does not say much."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This change makes the excpetion include the proxy object which failed"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f436f4f_df1e1973","line":10,"range":{"start_line":10,"start_character":12,"end_line":10,"end_character":21},"updated":"2017-08-21 14:03:05.000000000","message":"exception","commit_id":"19bc29d193c12766c28172b49b8be00f116252a6"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"a6d55c4720f27d7672ba706cfe5f64d29ff61e69","unresolved":false,"context_lines":[{"line_number":7,"context_line":"model proxy: Throw custom exception when model not cached"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, when attempting to access fields on a model which is not"},{"line_number":10,"context_line":"cached, the esception thrown complains that NoneType doesn\u0027t have the"},{"line_number":11,"context_line":"attribute. This message does not say much."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This change makes the excpetion include the proxy object which failed"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f436f4f_12280632","line":10,"range":{"start_line":10,"start_character":12,"end_line":10,"end_character":21},"in_reply_to":"9f436f4f_df1e1973","updated":"2017-08-22 06:06:10.000000000","message":"Done","commit_id":"19bc29d193c12766c28172b49b8be00f116252a6"}],"dragonflow/db/model_proxy.py":[{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"6f2cb3bd38d02fd43c1c7f984ab3cb613adbe4f5","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        return not self \u003d\u003d other"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def __getattr__(self, name):"},{"line_number":83,"context_line":"        if name !\u003d \u0027_obj\u0027:"},{"line_number":84,"context_line":"            obj \u003d self.get_object()"},{"line_number":85,"context_line":"            if obj is None:"},{"line_number":86,"context_line":"                LOG.error(\u0027%s with ID %s is not cached\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_02120a59","line":83,"range":{"start_line":83,"start_character":7,"end_line":83,"end_character":26},"updated":"2017-08-21 14:03:05.000000000","message":"nit: I\u0027d flip the condition, and keep the new code un-indetned.","commit_id":"19bc29d193c12766c28172b49b8be00f116252a6"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"a6d55c4720f27d7672ba706cfe5f64d29ff61e69","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        return not self \u003d\u003d other"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def __getattr__(self, name):"},{"line_number":83,"context_line":"        if name !\u003d \u0027_obj\u0027:"},{"line_number":84,"context_line":"            obj \u003d self.get_object()"},{"line_number":85,"context_line":"            if obj is None:"},{"line_number":86,"context_line":"                LOG.error(\u0027%s with ID %s is not cached\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_f73d74dd","line":83,"range":{"start_line":83,"start_character":7,"end_line":83,"end_character":26},"in_reply_to":"9f436f4f_02120a59","updated":"2017-08-22 06:06:10.000000000","message":"Done","commit_id":"19bc29d193c12766c28172b49b8be00f116252a6"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"6f2cb3bd38d02fd43c1c7f984ab3cb613adbe4f5","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        if name !\u003d \u0027_obj\u0027:"},{"line_number":84,"context_line":"            obj \u003d self.get_object()"},{"line_number":85,"context_line":"            if obj is None:"},{"line_number":86,"context_line":"                LOG.error(\u0027%s with ID %s is not cached\u0027,"},{"line_number":87,"context_line":"                          self.get_proxied_model().__name__, self.id)"},{"line_number":88,"context_line":"                raise exceptions.ReferencedObjectNotFound(proxy\u003dself)"},{"line_number":89,"context_line":"            return getattr(obj, name)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def __copy__(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_2272aeae","line":88,"range":{"start_line":86,"start_character":14,"end_line":88,"end_character":69},"updated":"2017-08-21 14:03:05.000000000","message":"Why both a log and an exception?","commit_id":"19bc29d193c12766c28172b49b8be00f116252a6"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"a6d55c4720f27d7672ba706cfe5f64d29ff61e69","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        if name !\u003d \u0027_obj\u0027:"},{"line_number":84,"context_line":"            obj \u003d self.get_object()"},{"line_number":85,"context_line":"            if obj is None:"},{"line_number":86,"context_line":"                LOG.error(\u0027%s with ID %s is not cached\u0027,"},{"line_number":87,"context_line":"                          self.get_proxied_model().__name__, self.id)"},{"line_number":88,"context_line":"                raise exceptions.ReferencedObjectNotFound(proxy\u003dself)"},{"line_number":89,"context_line":"            return getattr(obj, name)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def __copy__(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_d724b0c8","line":88,"range":{"start_line":86,"start_character":14,"end_line":88,"end_character":69},"in_reply_to":"9f436f4f_2272aeae","updated":"2017-08-22 06:06:10.000000000","message":"Done","commit_id":"19bc29d193c12766c28172b49b8be00f116252a6"}]}
