)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7776,"name":"Paul Carver","email":"pcarver@att.com","username":"pcarver"},"change_message_id":"2f30742e970687f8622c8ce763f0d07bd8ada2f4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yalei Wang \u003cyalei.wang@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-06 17:12:54 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Uncover the internal Value Error of IPAM for users"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1531401"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa69d971_997a1987","line":7,"updated":"2016-01-06 13:31:23.000000000","message":"This commit message is not really clear. I think something more like \"change exception type from ValueError to IpamInvalid\" would be clearer.\n\nAlso, does this actually close the bug? The bug report says there\u0027s an internal server error. I take that to mean an HTTP 5xx type error. Does changing the exception type convert this to a non 5xx status?\n\nCould you also add a unit test for this please.","commit_id":"08578583003b74bee29d9b2a92defbd26c8bf501"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"0f50cc830cd4c45e3dc8d8335c4a99a2066e0d66","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yalei Wang \u003cyalei.wang@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-06 17:12:54 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Uncover the internal Value Error of IPAM for users"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1531401"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa69d971_f9d02755","line":7,"in_reply_to":"fa69d971_997a1987","updated":"2016-01-27 09:05:32.000000000","message":"Done","commit_id":"08578583003b74bee29d9b2a92defbd26c8bf501"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"f707bd250127634d961c8dba9e550ccc46e0c2ba","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yalei Wang \u003cyalei.wang@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-12 11:13:27 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Change the exception type from ValueError to IpamInvalid"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1531401"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a68dd71_93342dfc","line":7,"range":{"start_line":7,"start_character":11,"end_line":7,"end_character":21},"updated":"2016-01-25 13:55:03.000000000","message":"Why? details seem required","commit_id":"79ddd6f6934c1397875ee82b6dbf6b402df35a30"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"58c6db3b01159fd02204c8bda193a93a7b2680ca","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yalei Wang \u003cyalei.wang@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-12 11:13:27 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Change the exception type from ValueError to IpamInvalid"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1531401"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a68dd71_324dd699","line":7,"range":{"start_line":7,"start_character":11,"end_line":7,"end_character":21},"in_reply_to":"9a68dd71_93342dfc","updated":"2016-01-27 08:52:59.000000000","message":"Done","commit_id":"79ddd6f6934c1397875ee82b6dbf6b402df35a30"}],"neutron/ipam/exceptions.py":[{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"f707bd250127634d961c8dba9e550ccc46e0c2ba","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    message \u003d _(\"New value for first_ip or last_ip has to be specified.\")"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"class IpamInvalid(exceptions.Conflict):"},{"line_number":75,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":76,"context_line":"        self.message \u003d message"},{"line_number":77,"context_line":"        super(IpamInvalid, self).__init__()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_ae054811","line":74,"range":{"start_line":74,"start_character":6,"end_line":74,"end_character":17},"updated":"2016-01-25 13:55:03.000000000","message":"This exception is used in one place. IMO, you should define a more specific exception","commit_id":"79ddd6f6934c1397875ee82b6dbf6b402df35a30"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"58c6db3b01159fd02204c8bda193a93a7b2680ca","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    message \u003d _(\"New value for first_ip or last_ip has to be specified.\")"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"class IpamInvalid(exceptions.Conflict):"},{"line_number":75,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":76,"context_line":"        self.message \u003d message"},{"line_number":77,"context_line":"        super(IpamInvalid, self).__init__()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_722a6e92","line":74,"range":{"start_line":74,"start_character":6,"end_line":74,"end_character":17},"in_reply_to":"9a68dd71_ae054811","updated":"2016-01-27 08:52:59.000000000","message":"I will update the name and I also want apply it into other ValueError in this _validate_with_subnet method.","commit_id":"79ddd6f6934c1397875ee82b6dbf6b402df35a30"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"a3bf9f866b9c78c66095f1fd16649b11db911116","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    message \u003d _(\"New value for first_ip or last_ip has to be specified.\")"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"class IpamValueInvalid(exceptions.Conflict):"},{"line_number":75,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":76,"context_line":"        self.message \u003d message"},{"line_number":77,"context_line":"        super(IpamValueInvalid, self).__init__()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_60d38739","line":74,"range":{"start_line":74,"start_character":23,"end_line":74,"end_character":43},"updated":"2016-01-28 02:16:46.000000000","message":"Why Conflict?","commit_id":"6f97f7472f70b51f061f4ec484380008381e8496"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"8f624b427a3dea097053679641645a735c52970f","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    message \u003d _(\"New value for first_ip or last_ip has to be specified.\")"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"class IpamValueInvalid(exceptions.Conflict):"},{"line_number":75,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":76,"context_line":"        self.message \u003d message"},{"line_number":77,"context_line":"        super(IpamValueInvalid, self).__init__()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_bb73f44c","line":74,"range":{"start_line":74,"start_character":23,"end_line":74,"end_character":43},"in_reply_to":"7a5de9d1_60d38739","updated":"2016-01-28 02:28:51.000000000","message":"I want to use exception.Invalid only exception.Conflict used in FAULT_MAP.","commit_id":"6f97f7472f70b51f061f4ec484380008381e8496"}],"neutron/tests/unit/db/test_db_base_plugin_v2.py":[{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"a3bf9f866b9c78c66095f1fd16649b11db911116","unresolved":false,"context_lines":[{"line_number":5368,"context_line":"                               \u0027tenant_id\u0027: network[\u0027network\u0027][\u0027tenant_id\u0027]}}"},{"line_number":5369,"context_line":"            req \u003d self.new_create_request(\u0027subnets\u0027, data)"},{"line_number":5370,"context_line":"            result \u003d req.get_response(self.api)"},{"line_number":5371,"context_line":"            self.assertEqual(result.status_int, 409)"},{"line_number":5372,"context_line":""},{"line_number":5373,"context_line":"    def test_allocate_any_subnet_with_prefixlen(self):"},{"line_number":5374,"context_line":"        with self.network() as network:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_fb93aca1","line":5371,"range":{"start_line":5371,"start_character":28,"end_line":5371,"end_character":52},"updated":"2016-01-28 02:16:46.000000000","message":"It\u0027s better to use the pattern \"self.assertEqual(expected, observed)\"","commit_id":"6f97f7472f70b51f061f4ec484380008381e8496"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"8f624b427a3dea097053679641645a735c52970f","unresolved":false,"context_lines":[{"line_number":5368,"context_line":"                               \u0027tenant_id\u0027: network[\u0027network\u0027][\u0027tenant_id\u0027]}}"},{"line_number":5369,"context_line":"            req \u003d self.new_create_request(\u0027subnets\u0027, data)"},{"line_number":5370,"context_line":"            result \u003d req.get_response(self.api)"},{"line_number":5371,"context_line":"            self.assertEqual(result.status_int, 409)"},{"line_number":5372,"context_line":""},{"line_number":5373,"context_line":"    def test_allocate_any_subnet_with_prefixlen(self):"},{"line_number":5374,"context_line":"        with self.network() as network:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_5bd3e038","line":5371,"range":{"start_line":5371,"start_character":28,"end_line":5371,"end_character":52},"in_reply_to":"7a5de9d1_fb93aca1","updated":"2016-01-28 02:28:51.000000000","message":"Done","commit_id":"6f97f7472f70b51f061f4ec484380008381e8496"}],"neutron/tests/unit/ipam/test_requests.py":[{"author":{"_account_id":7776,"name":"Paul Carver","email":"pcarver@att.com","username":"pcarver"},"change_message_id":"00c152590157d53f249ff67fdad11b460ae42c19","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        self.assertEqual(netaddr.IPNetwork(\u00271.2.3.0/24\u0027), request.subnet_cidr)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def test_subnet_request_bad_gateway(self):"},{"line_number":187,"context_line":"\u003c\u003c\u003c\u003c\u003c\u003c\u003c HEAD"},{"line_number":188,"context_line":"        cfg.CONF.set_override(\u0027force_gateway_on_subnet\u0027, True)"},{"line_number":189,"context_line":"        self.assertRaises(ValueError,"},{"line_number":190,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-python","patch_set":5,"id":"bae84128_b858f157","line":187,"updated":"2016-02-25 15:39:00.000000000","message":"oops, looks like you\u0027ve got a merge conflict to resolve.","commit_id":"07ee0006dc950cb3f8eae79dd3744e7bc708b2d9"},{"author":{"_account_id":11114,"name":"yalei wang","email":"yalei.wang@intel.com","username":"yalie"},"change_message_id":"69530c1e4ad8705394fbd9806b61687925241582","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        self.assertEqual(netaddr.IPNetwork(\u00271.2.3.0/24\u0027), request.subnet_cidr)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def test_subnet_request_bad_gateway(self):"},{"line_number":187,"context_line":"\u003c\u003c\u003c\u003c\u003c\u003c\u003c HEAD"},{"line_number":188,"context_line":"        cfg.CONF.set_override(\u0027force_gateway_on_subnet\u0027, True)"},{"line_number":189,"context_line":"        self.assertRaises(ValueError,"},{"line_number":190,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aed3d3a_c92c2eae","line":187,"in_reply_to":"bae84128_b858f157","updated":"2016-02-26 03:12:39.000000000","message":"thanks Paul!","commit_id":"07ee0006dc950cb3f8eae79dd3744e7bc708b2d9"}]}
