)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"edb353d95cccb35cac0c6f1e620be8d712a0f948","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"While adding security group rule Nova can obtain BadRequest exception from"},{"line_number":10,"context_line":"neutronclient. Add handling this exception and raise nova exception"},{"line_number":11,"context_line":"instead of reraisig neutron exception."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This helps to process correctly error code, so now Nova raises BadRequest"},{"line_number":14,"context_line":"from Neutron with code 400 instead of 500 as it was before."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a961159_b3adfa9d","line":11,"updated":"2014-12-30 20:04:00.000000000","message":"s/reraisig/reraise/","commit_id":"20c4429a387ebf88723879bd79e6e9673535b6d3"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"64fef445f340e0cacff453bf7d56e833a65d1791","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"While adding security group rule Nova can obtain BadRequest exception from"},{"line_number":10,"context_line":"neutronclient. Add handling this exception and raise nova exception"},{"line_number":11,"context_line":"instead of reraisig neutron exception."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This helps to process correctly error code, so now Nova raises BadRequest"},{"line_number":14,"context_line":"from Neutron with code 400 instead of 500 as it was before."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a961159_8354d4c6","line":11,"updated":"2015-01-06 15:41:53.000000000","message":"s/reraisig/reraising/","commit_id":"b5a48ba6e7b0ecb7a4208522cf04f97a1773edb1"},{"author":{"_account_id":9550,"name":"Eugeniya Kudryashova","email":"ekudryashova@mirantis.com","username":"ekudryashova"},"change_message_id":"fef254d24849124061170b4e7ce8e2eec2d95db2","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"While adding security group rule Nova can obtain BadRequest exception from"},{"line_number":10,"context_line":"neutronclient. Add handling this exception and raise nova exception"},{"line_number":11,"context_line":"instead of reraisig neutron exception."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This helps to process correctly error code, so now Nova raises BadRequest"},{"line_number":14,"context_line":"from Neutron with code 400 instead of 500 as it was before."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a961159_49a12da8","line":11,"in_reply_to":"3a961159_8354d4c6","updated":"2015-01-06 16:46:47.000000000","message":"Done","commit_id":"b5a48ba6e7b0ecb7a4208522cf04f97a1773edb1"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"64fef445f340e0cacff453bf7d56e833a65d1791","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This helps to process correctly error code, so now Nova raises BadRequest"},{"line_number":14,"context_line":"from Neutron with code 400 instead of 500 as it was before."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: If92c8dc9acf2db4a5cba6f880bc40b848ee4d43d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a961159_a359d0fe","line":15,"updated":"2015-01-06 15:41:53.000000000","message":"Do we happen to have a bug report for this?","commit_id":"b5a48ba6e7b0ecb7a4208522cf04f97a1773edb1"},{"author":{"_account_id":9550,"name":"Eugeniya Kudryashova","email":"ekudryashova@mirantis.com","username":"ekudryashova"},"change_message_id":"fef254d24849124061170b4e7ce8e2eec2d95db2","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This helps to process correctly error code, so now Nova raises BadRequest"},{"line_number":14,"context_line":"from Neutron with code 400 instead of 500 as it was before."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: If92c8dc9acf2db4a5cba6f880bc40b848ee4d43d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a961159_69a6e9c2","line":15,"in_reply_to":"3a961159_a359d0fe","updated":"2015-01-06 16:46:47.000000000","message":"Done","commit_id":"b5a48ba6e7b0ecb7a4208522cf04f97a1773edb1"}],"nova/network/security_group/neutron_driver.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"09366b9ae33d1837155b9d24370a12d582332f28","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                self.raise_over_quota(six.text_type(e))"},{"line_number":215,"context_line":"            elif e.status_code \u003d\u003d 400:"},{"line_number":216,"context_line":"                LOG.exception(_LE(\"Neutron Error adding rules to security \""},{"line_number":217,"context_line":"                                  \"group %s\"), name)"},{"line_number":218,"context_line":"                self.raise_invalid_property(six.text_type(e))"},{"line_number":219,"context_line":"            else:"},{"line_number":220,"context_line":"                LOG.exception(_LE(\"Neutron Error:\"))"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_2c035677","line":217,"updated":"2015-01-02 14:00:19.000000000","message":"Does this message useful?","commit_id":"20c4429a387ebf88723879bd79e6e9673535b6d3"},{"author":{"_account_id":9550,"name":"Eugeniya Kudryashova","email":"ekudryashova@mirantis.com","username":"ekudryashova"},"change_message_id":"252664e6f87bbdf2a9d82ea4c0502abf6b101a35","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                self.raise_over_quota(six.text_type(e))"},{"line_number":215,"context_line":"            elif e.status_code \u003d\u003d 400:"},{"line_number":216,"context_line":"                LOG.exception(_LE(\"Neutron Error adding rules to security \""},{"line_number":217,"context_line":"                                  \"group %s\"), name)"},{"line_number":218,"context_line":"                self.raise_invalid_property(six.text_type(e))"},{"line_number":219,"context_line":"            else:"},{"line_number":220,"context_line":"                LOG.exception(_LE(\"Neutron Error:\"))"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_e134db4b","line":217,"in_reply_to":"3a961159_2c035677","updated":"2015-01-05 13:51:30.000000000","message":"I agree that this message is not informative enough, do you think here is better to have something closer to common message of BadRequest? \nExcept of this I have no idea how to make it more concrete, this is exception from other project, which can be caused by a lot of reasons..","commit_id":"20c4429a387ebf88723879bd79e6e9673535b6d3"},{"author":{"_account_id":9550,"name":"Eugeniya Kudryashova","email":"ekudryashova@mirantis.com","username":"ekudryashova"},"change_message_id":"3e7f2a0fce409addf48b5687d973ea5396ab12c3","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                self.raise_over_quota(six.text_type(e))"},{"line_number":215,"context_line":"            elif e.status_code \u003d\u003d 400:"},{"line_number":216,"context_line":"                LOG.exception(_LE(\"Neutron Error adding rules to security \""},{"line_number":217,"context_line":"                                  \"group %s\"), name)"},{"line_number":218,"context_line":"                self.raise_invalid_property(six.text_type(e))"},{"line_number":219,"context_line":"            else:"},{"line_number":220,"context_line":"                LOG.exception(_LE(\"Neutron Error:\"))"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_c9d0bdf9","line":217,"in_reply_to":"3a961159_5722b4a3","updated":"2015-01-06 16:50:22.000000000","message":"Done","commit_id":"20c4429a387ebf88723879bd79e6e9673535b6d3"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"9206af3208c1a694d05c2ff6249bc2d52b345b35","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                self.raise_over_quota(six.text_type(e))"},{"line_number":215,"context_line":"            elif e.status_code \u003d\u003d 400:"},{"line_number":216,"context_line":"                LOG.exception(_LE(\"Neutron Error adding rules to security \""},{"line_number":217,"context_line":"                                  \"group %s\"), name)"},{"line_number":218,"context_line":"                self.raise_invalid_property(six.text_type(e))"},{"line_number":219,"context_line":"            else:"},{"line_number":220,"context_line":"                LOG.exception(_LE(\"Neutron Error:\"))"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_5722b4a3","line":217,"in_reply_to":"3a961159_e134db4b","updated":"2015-01-06 05:25:03.000000000","message":"at line 218, the six.text_type(e) will get the message from NeutronClientException, that should be enough for user.","commit_id":"20c4429a387ebf88723879bd79e6e9673535b6d3"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"edb353d95cccb35cac0c6f1e620be8d712a0f948","unresolved":false,"context_lines":[{"line_number":215,"context_line":"            elif e.status_code \u003d\u003d 400:"},{"line_number":216,"context_line":"                LOG.exception(_LE(\"Neutron Error adding rules to security \""},{"line_number":217,"context_line":"                                  \"group %s\"), name)"},{"line_number":218,"context_line":"                self.raise_invalid_property(six.text_type(e))"},{"line_number":219,"context_line":"            else:"},{"line_number":220,"context_line":"                LOG.exception(_LE(\"Neutron Error:\"))"},{"line_number":221,"context_line":"                raise exc_info[0], exc_info[1], exc_info[2]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_7e9d19bb","line":218,"updated":"2014-12-30 20:04:00.000000000","message":"can you add test like \ntest_create_security_group_rules_exceed_quota?\n\nthx","commit_id":"20c4429a387ebf88723879bd79e6e9673535b6d3"},{"author":{"_account_id":9550,"name":"Eugeniya Kudryashova","email":"ekudryashova@mirantis.com","username":"ekudryashova"},"change_message_id":"3e7f2a0fce409addf48b5687d973ea5396ab12c3","unresolved":false,"context_lines":[{"line_number":215,"context_line":"            elif e.status_code \u003d\u003d 400:"},{"line_number":216,"context_line":"                LOG.exception(_LE(\"Neutron Error adding rules to security \""},{"line_number":217,"context_line":"                                  \"group %s\"), name)"},{"line_number":218,"context_line":"                self.raise_invalid_property(six.text_type(e))"},{"line_number":219,"context_line":"            else:"},{"line_number":220,"context_line":"                LOG.exception(_LE(\"Neutron Error:\"))"},{"line_number":221,"context_line":"                raise exc_info[0], exc_info[1], exc_info[2]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_4904cd7d","line":218,"in_reply_to":"3a961159_7e9d19bb","updated":"2015-01-06 16:50:22.000000000","message":"Done","commit_id":"20c4429a387ebf88723879bd79e6e9673535b6d3"}],"nova/tests/unit/network/security_group/test_neutron_driver.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"64fef445f340e0cacff453bf7d56e833a65d1791","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        self.assertRaises(exception.SecurityGroupLimitExceeded,"},{"line_number":108,"context_line":"                          sg_api.add_rules, self.context, None, name, [vals])"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def test_create_security_group_rules_bad_request(self):"},{"line_number":111,"context_line":"        vals \u003d {\u0027protocol\u0027: \u0027icmp\u0027, \u0027cidr\u0027: \u00270.0.0.0/0\u0027,"},{"line_number":112,"context_line":"                \u0027parent_group_id\u0027: \u00277ae75663-277e-4a0e-8f87-56ea4e70cb47\u0027,"},{"line_number":113,"context_line":"                \u0027group_id\u0027: None, \u0027to_port\u0027: 255}"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_c3717c78","line":110,"updated":"2015-01-06 15:41:53.000000000","message":"Yes, it is fine to continue using mox if all the other tests in the file use it instead of mock.","commit_id":"b5a48ba6e7b0ecb7a4208522cf04f97a1773edb1"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"27860a09cfcbd0c260b59048e70f11efb3432225","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        self.assertRaises(exception.SecurityGroupLimitExceeded,"},{"line_number":108,"context_line":"                          sg_api.add_rules, self.context, None, name, [vals])"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def test_create_security_group_rules_bad_request(self):"},{"line_number":111,"context_line":"        vals \u003d {\u0027protocol\u0027: \u0027icmp\u0027, \u0027cidr\u0027: \u00270.0.0.0/0\u0027,"},{"line_number":112,"context_line":"                \u0027parent_group_id\u0027: \u00277ae75663-277e-4a0e-8f87-56ea4e70cb47\u0027,"},{"line_number":113,"context_line":"                \u0027group_id\u0027: None, \u0027to_port\u0027: 255}"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_49a8548c","line":110,"updated":"2015-01-06 12:37:45.000000000","message":"can you please use mock for the unit test?","commit_id":"b5a48ba6e7b0ecb7a4208522cf04f97a1773edb1"},{"author":{"_account_id":9550,"name":"Eugeniya Kudryashova","email":"ekudryashova@mirantis.com","username":"ekudryashova"},"change_message_id":"15c02b44b257b1e68893c10a0db938bf6caa5d17","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        self.assertRaises(exception.SecurityGroupLimitExceeded,"},{"line_number":108,"context_line":"                          sg_api.add_rules, self.context, None, name, [vals])"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def test_create_security_group_rules_bad_request(self):"},{"line_number":111,"context_line":"        vals \u003d {\u0027protocol\u0027: \u0027icmp\u0027, \u0027cidr\u0027: \u00270.0.0.0/0\u0027,"},{"line_number":112,"context_line":"                \u0027parent_group_id\u0027: \u00277ae75663-277e-4a0e-8f87-56ea4e70cb47\u0027,"},{"line_number":113,"context_line":"                \u0027group_id\u0027: None, \u0027to_port\u0027: 255}"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_035e2413","line":110,"in_reply_to":"3a961159_49a8548c","updated":"2015-01-06 15:36:50.000000000","message":"I looked deeper in test code and found out that whole this module relates on a bunch of fakes as moxed_client and so on. I think it makes no sense to have 2 different mocked by mock and mox clients in one module, maybe this module should be rewritten once, not partially, how do you think?","commit_id":"b5a48ba6e7b0ecb7a4208522cf04f97a1773edb1"}]}
