)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"6a3fd59a25598795badbd0e364b2d0b0a1747ef5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Boris Pavlovic \u003cboris@pavlovic.me\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-06-18 00:10:01 +0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Do not reraise exceptions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Reraising exception is bad praxis, because we lose TraceBack."},{"line_number":10,"context_line":"So all places like:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAPn%2F%2Fw48%3D","line":7,"updated":"2013-06-21 19:32:52.000000000","message":"Well, you DO want to reraise exceptions.  What you don\u0027t want to do is raise a NEW exception :)","commit_id":"5e4b0a5e82289132fc5988ea93bc7cc5ef0a9cd1"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"27af5bf9de0dd9db65bcd87811aa57776ca5c834","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Do not reraise exceptions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Reraising exception is bad praxis, because we lose TraceBack."},{"line_number":10,"context_line":"So all places like:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"except SomeException as e:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAPn%2F%2Fxzs%3D","line":9,"updated":"2013-06-21 13:36:23.000000000","message":"bad practice","commit_id":"5e4b0a5e82289132fc5988ea93bc7cc5ef0a9cd1"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"6a3fd59a25598795badbd0e364b2d0b0a1747ef5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Do not reraise exceptions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Reraising exception is bad praxis, because we lose TraceBack."},{"line_number":10,"context_line":"So all places like:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"except SomeException as e:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAPn%2F%2Fw5c%3D","line":9,"in_reply_to":"AAAAPn%2F%2Fw84%3D","updated":"2013-06-21 19:32:52.000000000","message":"I had to look up what \u0027praxis\u0027 means.  :)  I can see the confusion.  I don\u0027t think \u0027praxis\u0027 is a word that is used very commonly... and it seems to have slightly different meaning than \u0027practice\u0027.  But yeah, \u0027bad practice\u0027 is what would be correct here.","commit_id":"5e4b0a5e82289132fc5988ea93bc7cc5ef0a9cd1"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"952bcb1da6e677323dbcadf8108c7dd5a302fe8d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Do not reraise exceptions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Reraising exception is bad praxis, because we lose TraceBack."},{"line_number":10,"context_line":"So all places like:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"except SomeException as e:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAPn%2F%2Fw84%3D","line":9,"in_reply_to":"AAAAPn%2F%2Fxzs%3D","updated":"2013-06-21 19:01:54.000000000","message":"And why not praxis? \nIf you explain me, you will help me to improve my english.","commit_id":"5e4b0a5e82289132fc5988ea93bc7cc5ef0a9cd1"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"27af5bf9de0dd9db65bcd87811aa57776ca5c834","unresolved":false,"context_lines":[{"line_number":15,"context_line":"should be replaced by"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"except SomeException:"},{"line_number":18,"context_line":"    raise"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"fixes bug 1191730"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAPn%2F%2Fxyw%3D","line":18,"updated":"2013-06-21 13:36:23.000000000","message":"This is not what was done in the modifications, we should be consistent in the code and commit message.","commit_id":"5e4b0a5e82289132fc5988ea93bc7cc5ef0a9cd1"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"6a3fd59a25598795badbd0e364b2d0b0a1747ef5","unresolved":false,"context_lines":[{"line_number":15,"context_line":"should be replaced by"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"except SomeException:"},{"line_number":18,"context_line":"    raise"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"fixes bug 1191730"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAPn%2F%2Fw5Q%3D","line":18,"in_reply_to":"AAAAPn%2F%2FxyI%3D","updated":"2013-06-21 19:32:52.000000000","message":"That\u0027s fine.. although I tend to agree that this is wrong. :)  I\u0027d almost leave this detail out of the commit message.","commit_id":"5e4b0a5e82289132fc5988ea93bc7cc5ef0a9cd1"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2b9585036ee95aa280c6dd1c128c2c5effeb84eb","unresolved":false,"context_lines":[{"line_number":15,"context_line":"should be replaced by"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"except SomeException:"},{"line_number":18,"context_line":"    raise"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"fixes bug 1191730"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAPn%2F%2FxyI%3D","line":18,"in_reply_to":"AAAAPn%2F%2Fxyw%3D","updated":"2013-06-21 13:41:11.000000000","message":"we do this thing in the way that is available.","commit_id":"5e4b0a5e82289132fc5988ea93bc7cc5ef0a9cd1"}],"nova/exception.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"a8a631bb669f7796a843517119e225b670ed6e0e","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                    LOG.error(\"%s: %s\" % (name, value))"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"                if CONF.fatal_exception_format_errors:"},{"line_number":138,"context_line":"                    raise"},{"line_number":139,"context_line":"                else:"},{"line_number":140,"context_line":"                    # at least get the core message out if something happened"},{"line_number":141,"context_line":"                    message \u003d self.message"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPX%2F%2FmuE%3D","line":138,"updated":"2013-06-14 14:58:34.000000000","message":"This is one such place you need to save/reraise.  Because of LOG.* calls.","commit_id":"f0ecb9bd0a889c70bc61b7ca1845b94013474f53"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"37343688a0e6a643496b714283f5b78cdb190061","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                    LOG.error(\"%s: %s\" % (name, value))"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"                if CONF.fatal_exception_format_errors:"},{"line_number":138,"context_line":"                    raise"},{"line_number":139,"context_line":"                else:"},{"line_number":140,"context_line":"                    # at least get the core message out if something happened"},{"line_number":141,"context_line":"                    message \u003d self.message"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2F9zE%3D","line":138,"in_reply_to":"AAAAPX%2F%2FmuE%3D","updated":"2013-06-17 08:49:20.000000000","message":"Then only way that I have found is to write something like:\n\n\n  try:\n    with save_and_reraise():\n      # our logs stuf\n  except: \n     if CONF.fatal_exception_format_errors:\n       raise\n     message \u003d self.message\n\nBut it looks awful \u003d)","commit_id":"f0ecb9bd0a889c70bc61b7ca1845b94013474f53"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"de6db59ebab36cc429cac20fed1d0d5e3cccba26","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                    LOG.error(\"%s: %s\" % (name, value))"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"                if CONF.fatal_exception_format_errors:"},{"line_number":138,"context_line":"                    raise"},{"line_number":139,"context_line":"                else:"},{"line_number":140,"context_line":"                    # at least get the core message out if something happened"},{"line_number":141,"context_line":"                    message \u003d self.message"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2F83k%3D","line":138,"in_reply_to":"AAAAPn%2F%2F9zE%3D","updated":"2013-06-17 15:27:59.000000000","message":"Yeah.. in that case, that method doesn\u0027t help you much.  :)  So, instead, you could change this \u0027raise\u0027 to: \u0027raise exc_info[0], exc_info[1], exc_info[2]\u0027.   And on line 131 above, you can: exc_info \u003d sys.exc_info()","commit_id":"f0ecb9bd0a889c70bc61b7ca1845b94013474f53"}],"nova/network/security_group/quantum_driver.py":[{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"27af5bf9de0dd9db65bcd87811aa57776ca5c834","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                # as this error code could be related to bad input or over"},{"line_number":61,"context_line":"                # quota"},{"line_number":62,"context_line":"                raise exc.HTTPBadRequest()"},{"line_number":63,"context_line":"            raise exc_info[0], exc_info[1], exc_info[2]"},{"line_number":64,"context_line":"        return self._convert_to_nova_security_group_format(security_group)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def update_security_group(self, context, security_group,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FxzI%3D","line":63,"updated":"2013-06-21 13:36:23.000000000","message":"Why do you need to do this and not simply \"raise\" like in the other changes?","commit_id":"5e4b0a5e82289132fc5988ea93bc7cc5ef0a9cd1"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2b9585036ee95aa280c6dd1c128c2c5effeb84eb","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                # as this error code could be related to bad input or over"},{"line_number":61,"context_line":"                # quota"},{"line_number":62,"context_line":"                raise exc.HTTPBadRequest()"},{"line_number":63,"context_line":"            raise exc_info[0], exc_info[1], exc_info[2]"},{"line_number":64,"context_line":"        return self._convert_to_nova_security_group_format(security_group)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def update_security_group(self, context, security_group,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FxyY%3D","line":63,"in_reply_to":"AAAAPn%2F%2FxzI%3D","updated":"2013-06-21 13:41:11.000000000","message":"because of bug in eventlet. when it switch threads it lost information about exceptions. And there is a risk that on LOG.exception eventlet will switch thread.","commit_id":"5e4b0a5e82289132fc5988ea93bc7cc5ef0a9cd1"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"498987c6524ecf1b826f2533a1094c73d62b2666","unresolved":false,"context_lines":[{"line_number":370,"context_line":"            ports \u003d quantum.list_ports(**params).get(\u0027ports\u0027)"},{"line_number":371,"context_line":"        except q_exc.QuantumClientException:"},{"line_number":372,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":373,"context_line":"                LOG.exception(_(\"Quantum Error:\"))"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"        if not ports:"},{"line_number":376,"context_line":"            msg \u003d (\"instance_id %s could not be found as device id on\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2FvgU%3D","line":373,"updated":"2013-06-23 13:52:10.000000000","message":"Can you please add in the device_id here - it may be helpful for debugging","commit_id":"616098dcd36b20e01d38898b8942003df664e6ac"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"e2ee0681cfbe71f20853a762eb80f9d64e8d68a3","unresolved":false,"context_lines":[{"line_number":370,"context_line":"            ports \u003d quantum.list_ports(**params).get(\u0027ports\u0027)"},{"line_number":371,"context_line":"        except q_exc.QuantumClientException:"},{"line_number":372,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":373,"context_line":"                LOG.exception(_(\"Quantum Error:\"))"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"        if not ports:"},{"line_number":376,"context_line":"            msg \u003d (\"instance_id %s could not be found as device id on\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2FvRI%3D","line":373,"in_reply_to":"AAAAPn%2F%2FvgU%3D","updated":"2013-06-23 19:59:32.000000000","message":"let me do this (or you could do this) in separated patch, because this is not connected with my changes at all. Ok?","commit_id":"616098dcd36b20e01d38898b8942003df664e6ac"}],"nova/virt/baremetal/db/sqlalchemy/api.py":[{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"1f59203ab150c84c7c899f8728c0f951f7ec8d06","unresolved":false,"context_lines":[{"line_number":399,"context_line":"            session.flush()"},{"line_number":400,"context_line":"        except db_exc.DBError as e:"},{"line_number":401,"context_line":"            # TODO(deva): clean up when db layer raises DuplicateKeyError"},{"line_number":402,"context_line":"            if str(e).find(\u0027IntegrityError\u0027) !\u003d -1:"},{"line_number":403,"context_line":"                raise exception.NovaException(_(\"Baremetal interface %s \""},{"line_number":404,"context_line":"                        \"already in use\") % vif_uuid)"},{"line_number":405,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2Fwvw%3D","line":402,"updated":"2013-06-21 20:36:00.000000000","message":"Would it be possible for eventlet to switch contexts while this if is evaluating?","commit_id":"616098dcd36b20e01d38898b8942003df664e6ac"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"83428f181458a70dd0c3bcdf4c40673e952195c3","unresolved":false,"context_lines":[{"line_number":399,"context_line":"            session.flush()"},{"line_number":400,"context_line":"        except db_exc.DBError as e:"},{"line_number":401,"context_line":"            # TODO(deva): clean up when db layer raises DuplicateKeyError"},{"line_number":402,"context_line":"            if str(e).find(\u0027IntegrityError\u0027) !\u003d -1:"},{"line_number":403,"context_line":"                raise exception.NovaException(_(\"Baremetal interface %s \""},{"line_number":404,"context_line":"                        \"already in use\") % vif_uuid)"},{"line_number":405,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2Fwlg%3D","line":402,"in_reply_to":"AAAAPn%2F%2Fwoc%3D","updated":"2013-06-21 21:41:42.000000000","message":"Okay, thanks Chris.","commit_id":"616098dcd36b20e01d38898b8942003df664e6ac"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"278b007da3fb6cfd601223c26c9502061879390d","unresolved":false,"context_lines":[{"line_number":399,"context_line":"            session.flush()"},{"line_number":400,"context_line":"        except db_exc.DBError as e:"},{"line_number":401,"context_line":"            # TODO(deva): clean up when db layer raises DuplicateKeyError"},{"line_number":402,"context_line":"            if str(e).find(\u0027IntegrityError\u0027) !\u003d -1:"},{"line_number":403,"context_line":"                raise exception.NovaException(_(\"Baremetal interface %s \""},{"line_number":404,"context_line":"                        \"already in use\") % vif_uuid)"},{"line_number":405,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2Fwoc%3D","line":402,"in_reply_to":"AAAAPn%2F%2FwuA%3D","updated":"2013-06-21 21:17:10.000000000","message":"eventlet will not switch contexts on that one, because there\u0027s no I/O involved.","commit_id":"616098dcd36b20e01d38898b8942003df664e6ac"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"872f441453d3d68a3709208931fa14ede257d8af","unresolved":false,"context_lines":[{"line_number":399,"context_line":"            session.flush()"},{"line_number":400,"context_line":"        except db_exc.DBError as e:"},{"line_number":401,"context_line":"            # TODO(deva): clean up when db layer raises DuplicateKeyError"},{"line_number":402,"context_line":"            if str(e).find(\u0027IntegrityError\u0027) !\u003d -1:"},{"line_number":403,"context_line":"                raise exception.NovaException(_(\"Baremetal interface %s \""},{"line_number":404,"context_line":"                        \"already in use\") % vif_uuid)"},{"line_number":405,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2FwuA%3D","line":402,"in_reply_to":"AAAAPn%2F%2Fwvw%3D","updated":"2013-06-21 20:51:38.000000000","message":"I think that this will be executed pretty fast. So the chance is really low.","commit_id":"616098dcd36b20e01d38898b8942003df664e6ac"}]}
