)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a228832e6c6d2eb6e55382658b6ad413c98294d6","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-06-21 21:12:18 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Handle exception on adding secgroup"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1691274"},{"line_number":10,"context_line":"Change-Id: I58b19ef6b537d690df90e542b6af3c64773ecc87"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5f201791_41f5b856","line":8,"updated":"2017-06-21 23:38:40.000000000","message":"This could use a bit more detail.","commit_id":"5114bc8b014b8a80c9facc867a681412d97f6e14"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"903776698995a5bb9ff3b278370bea2f127cfaad","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-06-21 21:12:18 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Handle exception on adding secgroup"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1691274"},{"line_number":10,"context_line":"Change-Id: I58b19ef6b537d690df90e542b6af3c64773ecc87"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3f1d235d_5709dc29","line":8,"in_reply_to":"5f201791_41f5b856","updated":"2017-07-02 23:45:46.000000000","message":"Done","commit_id":"5114bc8b014b8a80c9facc867a681412d97f6e14"}],"nova/network/security_group/neutron_driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ee5a1c4740046150a66a8bdef7c4b02c0e0540ca","unresolved":false,"context_lines":[{"line_number":479,"context_line":"            except n_exc.NeutronClientException as e:"},{"line_number":480,"context_line":"                exc_info \u003d sys.exc_info()"},{"line_number":481,"context_line":"                if e.status_code \u003d\u003d 400:"},{"line_number":482,"context_line":"                    msg \u003d (_(\"Unable to add security group %(name)s \""},{"line_number":483,"context_line":"                             \"to port %(port)s\") %"},{"line_number":484,"context_line":"                           {\u0027name\u0027: security_group_name,"},{"line_number":485,"context_line":"                            \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":486,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":487,"context_line":"                else:"},{"line_number":488,"context_line":"                    LOG.exception(_LE(\"Neutron Error:\"))"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f201791_81e1909d","line":485,"range":{"start_line":482,"start_character":20,"end_line":485,"end_character":48},"updated":"2017-06-21 23:38:24.000000000","message":"The user doesn\u0027t know the original reason why this failed, so we should include or pass back through the neutron client exception message.","commit_id":"5114bc8b014b8a80c9facc867a681412d97f6e14"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"903776698995a5bb9ff3b278370bea2f127cfaad","unresolved":false,"context_lines":[{"line_number":479,"context_line":"            except n_exc.NeutronClientException as e:"},{"line_number":480,"context_line":"                exc_info \u003d sys.exc_info()"},{"line_number":481,"context_line":"                if e.status_code \u003d\u003d 400:"},{"line_number":482,"context_line":"                    msg \u003d (_(\"Unable to add security group %(name)s \""},{"line_number":483,"context_line":"                             \"to port %(port)s\") %"},{"line_number":484,"context_line":"                           {\u0027name\u0027: security_group_name,"},{"line_number":485,"context_line":"                            \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":486,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":487,"context_line":"                else:"},{"line_number":488,"context_line":"                    LOG.exception(_LE(\"Neutron Error:\"))"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_d4072a1c","line":485,"range":{"start_line":482,"start_character":20,"end_line":485,"end_character":48},"in_reply_to":"5f201791_81e1909d","updated":"2017-07-02 23:45:46.000000000","message":"Done","commit_id":"5114bc8b014b8a80c9facc867a681412d97f6e14"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ee5a1c4740046150a66a8bdef7c4b02c0e0540ca","unresolved":false,"context_lines":[{"line_number":483,"context_line":"                             \"to port %(port)s\") %"},{"line_number":484,"context_line":"                           {\u0027name\u0027: security_group_name,"},{"line_number":485,"context_line":"                            \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":486,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":487,"context_line":"                else:"},{"line_number":488,"context_line":"                    LOG.exception(_LE(\"Neutron Error:\"))"},{"line_number":489,"context_line":"                    six.reraise(*exc_info)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f201791_21d19cce","line":486,"range":{"start_line":486,"start_character":30,"end_line":486,"end_character":44},"updated":"2017-06-21 23:38:24.000000000","message":"We normally don\u0027t raise up webob exceptions out of this code. It would be better to raise a nova exception that is handled in the REST API controller code that converts this to a HTTPBadRequest:\n\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/security_groups.py#L409\n\nSo you could raise SecurityGroupCannotBeApplied from here with your own message, which I\u0027d actually just use the neutron exception message:\n\nraise exception.SecurityGroupCannotBeApplied(six.text_type(e))","commit_id":"5114bc8b014b8a80c9facc867a681412d97f6e14"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"903776698995a5bb9ff3b278370bea2f127cfaad","unresolved":false,"context_lines":[{"line_number":483,"context_line":"                             \"to port %(port)s\") %"},{"line_number":484,"context_line":"                           {\u0027name\u0027: security_group_name,"},{"line_number":485,"context_line":"                            \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":486,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":487,"context_line":"                else:"},{"line_number":488,"context_line":"                    LOG.exception(_LE(\"Neutron Error:\"))"},{"line_number":489,"context_line":"                    six.reraise(*exc_info)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_b4026e0a","line":486,"range":{"start_line":486,"start_character":30,"end_line":486,"end_character":44},"in_reply_to":"5f201791_21d19cce","updated":"2017-07-02 23:45:46.000000000","message":"I see. Done","commit_id":"5114bc8b014b8a80c9facc867a681412d97f6e14"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ee5a1c4740046150a66a8bdef7c4b02c0e0540ca","unresolved":false,"context_lines":[{"line_number":485,"context_line":"                            \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":486,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":487,"context_line":"                else:"},{"line_number":488,"context_line":"                    LOG.exception(_LE(\"Neutron Error:\"))"},{"line_number":489,"context_line":"                    six.reraise(*exc_info)"},{"line_number":490,"context_line":"            except Exception:"},{"line_number":491,"context_line":"                with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f201791_4167f84e","line":488,"range":{"start_line":488,"start_character":34,"end_line":488,"end_character":37},"updated":"2017-06-21 23:38:24.000000000","message":"We don\u0027t use these translation markers anymore.","commit_id":"5114bc8b014b8a80c9facc867a681412d97f6e14"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"903776698995a5bb9ff3b278370bea2f127cfaad","unresolved":false,"context_lines":[{"line_number":485,"context_line":"                            \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":486,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":487,"context_line":"                else:"},{"line_number":488,"context_line":"                    LOG.exception(_LE(\"Neutron Error:\"))"},{"line_number":489,"context_line":"                    six.reraise(*exc_info)"},{"line_number":490,"context_line":"            except Exception:"},{"line_number":491,"context_line":"                with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_7702980b","line":488,"range":{"start_line":488,"start_character":34,"end_line":488,"end_character":37},"in_reply_to":"5f201791_4167f84e","updated":"2017-07-02 23:45:46.000000000","message":"Done","commit_id":"5114bc8b014b8a80c9facc867a681412d97f6e14"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"e52b66880961f4fec97921ae473ab2f2616906ba","unresolved":false,"context_lines":[{"line_number":482,"context_line":"                    raise exception.SecurityGroupCannotBeApplied("},{"line_number":483,"context_line":"                        six.text_type(e))"},{"line_number":484,"context_line":"                else:"},{"line_number":485,"context_line":"                    LOG.exception(\"Neutron Error:\")"},{"line_number":486,"context_line":"                    six.reraise(*exc_info)"},{"line_number":487,"context_line":"            except Exception:"},{"line_number":488,"context_line":"                with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f287b81_2d45d743","line":485,"updated":"2017-09-06 12:04:43.000000000","message":"Why would LOG and reraise the exception?","commit_id":"8573f5b5fa878659efbef769b91249e31b6e7ca5"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"8634a0cfe06ffa054f30d30f1be1b80c8dcd6e3f","unresolved":false,"context_lines":[{"line_number":482,"context_line":"                    raise exception.SecurityGroupCannotBeApplied("},{"line_number":483,"context_line":"                        six.text_type(e))"},{"line_number":484,"context_line":"                else:"},{"line_number":485,"context_line":"                    LOG.exception(\"Neutron Error:\")"},{"line_number":486,"context_line":"                    six.reraise(*exc_info)"},{"line_number":487,"context_line":"            except Exception:"},{"line_number":488,"context_line":"                with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f287b81_38abd41d","line":485,"in_reply_to":"7f287b81_2d45d743","updated":"2017-09-06 14:43:23.000000000","message":"The LOG is removed.","commit_id":"8573f5b5fa878659efbef769b91249e31b6e7ca5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"50f0a766ac37e77638e3ba7795fc28a9bdd98162","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                LOG.exception(\"Neutron Error: %s\", e)"},{"line_number":243,"context_line":"                self.raise_invalid_property(six.text_type(e))"},{"line_number":244,"context_line":"            else:"},{"line_number":245,"context_line":"                LOG.exception(\"Neutron Error:\")"},{"line_number":246,"context_line":"                six.reraise(*exc_info)"},{"line_number":247,"context_line":"        converted_rules \u003d []"},{"line_number":248,"context_line":"        for rule in rules:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_9f3ed2be","side":"PARENT","line":245,"updated":"2017-10-26 13:18:02.000000000","message":"I\u0027m not sure why this was removed.","commit_id":"fa1ac7d96507f849089b9bf2123887a303edf594"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"1495dfc9ce5de637dd9876070d41d8b85248cad1","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                LOG.exception(\"Neutron Error: %s\", e)"},{"line_number":243,"context_line":"                self.raise_invalid_property(six.text_type(e))"},{"line_number":244,"context_line":"            else:"},{"line_number":245,"context_line":"                LOG.exception(\"Neutron Error:\")"},{"line_number":246,"context_line":"                six.reraise(*exc_info)"},{"line_number":247,"context_line":"        converted_rules \u003d []"},{"line_number":248,"context_line":"        for rule in rules:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_bab3dce8","side":"PARENT","line":245,"in_reply_to":"3f4b6375_5fb73a3b","updated":"2017-10-26 14:03:07.000000000","message":"ACK.","commit_id":"fa1ac7d96507f849089b9bf2123887a303edf594"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"45ba80ea48b292cd583ebbfa6c7f0bd3c79f4495","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                LOG.exception(\"Neutron Error: %s\", e)"},{"line_number":243,"context_line":"                self.raise_invalid_property(six.text_type(e))"},{"line_number":244,"context_line":"            else:"},{"line_number":245,"context_line":"                LOG.exception(\"Neutron Error:\")"},{"line_number":246,"context_line":"                six.reraise(*exc_info)"},{"line_number":247,"context_line":"        converted_rules \u003d []"},{"line_number":248,"context_line":"        for rule in rules:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_5fb73a3b","side":"PARENT","line":245,"in_reply_to":"3f4b6375_9f3ed2be","updated":"2017-10-26 13:20:31.000000000","message":"I guess because sdague said to not do this for the new exception handling block you added:\n\nhttps://review.openstack.org/#/c/465173/8/nova/network/security_group/neutron_driver.py@485\n\nHowever, I\u0027m sure he meant for the new code. Removing these from the existing code in the same change isn\u0027t really desirable since (1) it clutters up the review and (2) if we are going to backport this to stable, the unrelated changes can cause merge conflicts. So it would have been better to do this cleanup in a separate patch if you wanted to remove these.","commit_id":"fa1ac7d96507f849089b9bf2123887a303edf594"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"50f0a766ac37e77638e3ba7795fc28a9bdd98162","unresolved":false,"context_lines":[{"line_number":439,"context_line":"                        \u0027project\u0027: context.project_id})"},{"line_number":440,"context_line":"                self.raise_not_found(msg)"},{"line_number":441,"context_line":"            else:"},{"line_number":442,"context_line":"                LOG.exception(\"Neutron Error:\")"},{"line_number":443,"context_line":"                six.reraise(*exc_info)"},{"line_number":444,"context_line":"        params \u003d {\u0027device_id\u0027: instance.uuid}"},{"line_number":445,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_df556afb","side":"PARENT","line":442,"updated":"2017-10-26 13:18:02.000000000","message":"Why was this removed?","commit_id":"fa1ac7d96507f849089b9bf2123887a303edf594"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"50f0a766ac37e77638e3ba7795fc28a9bdd98162","unresolved":false,"context_lines":[{"line_number":493,"context_line":"                        \u0027project\u0027: context.project_id})"},{"line_number":494,"context_line":"                self.raise_not_found(msg)"},{"line_number":495,"context_line":"            else:"},{"line_number":496,"context_line":"                LOG.exception(\"Neutron Error:\")"},{"line_number":497,"context_line":"                six.reraise(*exc_info)"},{"line_number":498,"context_line":"        params \u003d {\u0027device_id\u0027: instance.uuid}"},{"line_number":499,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_3f447e46","side":"PARENT","line":496,"updated":"2017-10-26 13:18:02.000000000","message":"same","commit_id":"fa1ac7d96507f849089b9bf2123887a303edf594"}]}
