)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"38f24ebe95bbe6775b4798f82aa061854f7ee071","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-09-23 13:55:42 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move OVO exceptions to neutron/objects/exceptions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ibf424b4e317e910e33c29fb9ec150452caa06a89"},{"line_number":10,"context_line":"Partial-Bug: #1614920"},{"line_number":11,"context_line":"Depends-On: I0171fa87cdbf3244a6715c668027fdd6329476e1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5a8bc5a2_f4278cb3","line":8,"updated":"2016-09-26 16:51:44.000000000","message":"nit: Add some description to the commit message","commit_id":"9d9b84ba02ee3f08d27ea410dde426a00fc74fc6"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"6a8de95f31e9cfd0ca70000e49e9f33e63393560","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ibf424b4e317e910e33c29fb9ec150452caa06a89"},{"line_number":10,"context_line":"Partial-Bug: #1614920"},{"line_number":11,"context_line":"Depends-On: I0171fa87cdbf3244a6715c668027fdd6329476e1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1a95cdbc_44683fbb","line":11,"updated":"2016-10-04 15:56:53.000000000","message":"If there is no plan to relocate exceptions to neutron-lib (at least for now), please remove depends-on tag. If you won\u0027t drop it, it never will be merged.","commit_id":"f763061aa584b33960b51af78252d96213bd56cc"},{"author":{"_account_id":7037,"name":"John Perkins","email":"john.perkins@rackspace.com","username":"JPerkins"},"change_message_id":"681ddb4641df9e7a1249b78b5914cfd9eabc2f78","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ibf424b4e317e910e33c29fb9ec150452caa06a89"},{"line_number":10,"context_line":"Partial-Bug: #1614920"},{"line_number":11,"context_line":"Depends-On: I0171fa87cdbf3244a6715c668027fdd6329476e1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1a95cdbc_f6ed748f","line":11,"in_reply_to":"1a95cdbc_44683fbb","updated":"2016-10-04 19:41:22.000000000","message":"Done","commit_id":"f763061aa584b33960b51af78252d96213bd56cc"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"a5036c107c932424b34074a8b7160017837e2481","unresolved":false,"context_lines":[{"line_number":10,"context_line":"previous flagged \u0027TODO\u0027."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ibf424b4e317e910e33c29fb9ec150452caa06a89"},{"line_number":13,"context_line":"Partial-Bug: #1614920"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"1a95cdbc_d906e41f","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":21},"updated":"2016-10-04 22:13:52.000000000","message":"https://bugs.launchpad.net/neutron/+bug/1614920 the description here says move ovo exceptions to neutron-lib but in ps exceptions are being moved to neutron/objects/exception.py if it is the layover before they get moved to neutron-lib then, please update bug report with explanation,","commit_id":"1d98c367d5498ed1e8e043c80871688bfc2972c0"},{"author":{"_account_id":7037,"name":"John Perkins","email":"john.perkins@rackspace.com","username":"JPerkins"},"change_message_id":"45efa1ee846d72081ddedeec7145f04f09b940c0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"previous flagged \u0027TODO\u0027."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ibf424b4e317e910e33c29fb9ec150452caa06a89"},{"line_number":13,"context_line":"Partial-Bug: #1614920"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"1a95cdbc_79c6874a","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":21},"in_reply_to":"1a95cdbc_d906e41f","updated":"2016-10-05 16:19:27.000000000","message":"Done","commit_id":"1d98c367d5498ed1e8e043c80871688bfc2972c0"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"6fafba069a49e1f3f3b42d60f5541271bafd1572","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ibf424b4e317e910e33c29fb9ec150452caa06a89"},{"line_number":10,"context_line":"Partial-Bug: #1614920"},{"line_number":11,"context_line":"Depends-On: I0171fa87cdbf3244a6715c668027fdd6329476e1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"1a95cdbc_c5a404bb","line":11,"updated":"2016-10-05 21:26:48.000000000","message":"The Depends-On tag needs to be removed as the patch [1] is abandoned.\n\n[1] https://review.openstack.org/#/c/357776/","commit_id":"b07365fd900e43633d2a8c56a9d14236954a110e"},{"author":{"_account_id":7037,"name":"John Perkins","email":"john.perkins@rackspace.com","username":"JPerkins"},"change_message_id":"2e24584680d0f91c0753c1e687a248f8a747f0a6","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ibf424b4e317e910e33c29fb9ec150452caa06a89"},{"line_number":10,"context_line":"Partial-Bug: #1614920"},{"line_number":11,"context_line":"Depends-On: I0171fa87cdbf3244a6715c668027fdd6329476e1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"1a95cdbc_d5c64948","line":11,"in_reply_to":"1a95cdbc_c5a404bb","updated":"2016-10-06 16:34:02.000000000","message":"Done","commit_id":"b07365fd900e43633d2a8c56a9d14236954a110e"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"287b1b49b59c538da68bffae5a3648ada7981a9f","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-10-06 10:33:20 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move OVO exceptions to neutron/objects/exceptions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ibf424b4e317e910e33c29fb9ec150452caa06a89"},{"line_number":10,"context_line":"Partial-Bug: #1614920"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"fa6399be_d05ea044","line":8,"updated":"2016-10-11 14:20:21.000000000","message":"nit: Can you please add a description to the commit message?","commit_id":"57280a2a3464e7d13d5f3682a26f8eb38057084e"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"c653c30ccd6dd0020864c1e17bdb5a88f26289f9","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move OVO exceptions to neutron/objects/exceptions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Moves OVO exceptions to neutron/objects/exceptions.py,"},{"line_number":10,"context_line":"previous flagged \u0027TODO\u0027."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ibf424b4e317e910e33c29fb9ec150452caa06a89"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"fa6399be_30c1832f","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":5},"updated":"2016-10-18 19:18:12.000000000","message":"nit: s/Moves/Move","commit_id":"13a63ddb2cf1fedbeaddaecedf8e56a1760f17b5"}],"neutron/db/allowedaddresspairs_db.py":[{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"f1138cdc9d3a2e9ae18575c72abeb6eb8630d041","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from neutron.common import utils"},{"line_number":22,"context_line":"from neutron.extensions import allowedaddresspairs as addr_pair"},{"line_number":23,"context_line":"from neutron.objects import exceptions"},{"line_number":24,"context_line":"from neutron.objects.port.extensions import (allowedaddresspairs"},{"line_number":25,"context_line":"    as obj_addr_pair)"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a95cdbc_bc6398db","line":23,"range":{"start_line":23,"start_character":28,"end_line":23,"end_character":38},"updated":"2016-10-05 17:48:04.000000000","message":"just in case if you respin exceptions is very common so may be better use alias as o-exc here as well","commit_id":"e7c75f2cacc3ddb47a39cd0002e67c1eb21291a5"}],"neutron/objects/base.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d000d7dcc946a9d5a23fa55987d1e402d9988b66","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"#TODO(jlibosva): Move these classes to exceptions module"},{"line_number":34,"context_line":"class NeutronObjectUpdateForbidden(exceptions.NeutronException):"},{"line_number":35,"context_line":"    message \u003d _(\"Unable to update the following object fields: %(fields)s\")"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_ca0ce944","side":"PARENT","line":34,"updated":"2016-09-01 13:20:53.000000000","message":"I agree that is misplaced, but I don\u0027t think we are ready to move it into neutron-lib just yet. Let\u0027s instead prepare a separate module in neutron tree that would contain those exceptions. I think neutron.objects.exceptions is a good candidate.","commit_id":"5a6b286c627499b85a50e1efc3fcf6cf556793b7"},{"author":{"_account_id":7037,"name":"John Perkins","email":"john.perkins@rackspace.com","username":"JPerkins"},"change_message_id":"3be76edf43d1bc78ccd1ebbea4f241483c584cf5","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"#TODO(jlibosva): Move these classes to exceptions module"},{"line_number":34,"context_line":"class NeutronObjectUpdateForbidden(exceptions.NeutronException):"},{"line_number":35,"context_line":"    message \u003d _(\"Unable to update the following object fields: %(fields)s\")"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_638f94cc","side":"PARENT","line":34,"in_reply_to":"fa7ab95a_ca0ce944","updated":"2016-09-21 03:05:44.000000000","message":"Done","commit_id":"5a6b286c627499b85a50e1efc3fcf6cf556793b7"}],"neutron/objects/common_types.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"5284804be79b46c64678a6f24ee16a3e33b9346b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from neutron.common import constants"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class NeutronRangeConstrainedIntegerInvalidLimit(exceptions.NeutronException):"},{"line_number":27,"context_line":"    message \u003d _(\"Incorrect range limits specified: \""},{"line_number":28,"context_line":"                \"start \u003d %(start)s, end \u003d %(end)s\")"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class IPV6ModeEnumField(obj_fields.AutoTypedField):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8ec9b2_74a1f045","line":28,"range":{"start_line":26,"start_character":0,"end_line":28,"end_character":51},"updated":"2016-09-21 10:48:23.000000000","message":"Should it be removed?","commit_id":"fc4f7a72026f0fdc5b0252c36cb059e45b7f29d1"},{"author":{"_account_id":7037,"name":"John Perkins","email":"john.perkins@rackspace.com","username":"JPerkins"},"change_message_id":"8463dccf2adc1d0afdfaca1d1ad70f7e87165db7","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from neutron.common import constants"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class NeutronRangeConstrainedIntegerInvalidLimit(exceptions.NeutronException):"},{"line_number":27,"context_line":"    message \u003d _(\"Incorrect range limits specified: \""},{"line_number":28,"context_line":"                \"start \u003d %(start)s, end \u003d %(end)s\")"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class IPV6ModeEnumField(obj_fields.AutoTypedField):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a8bc5a2_0cc19680","line":28,"range":{"start_line":26,"start_character":0,"end_line":28,"end_character":51},"in_reply_to":"7a8ec9b2_74a1f045","updated":"2016-09-23 18:39:24.000000000","message":"Done","commit_id":"fc4f7a72026f0fdc5b0252c36cb059e45b7f29d1"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"5284804be79b46c64678a6f24ee16a3e33b9346b","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            self._start \u003d int(start)"},{"line_number":39,"context_line":"            self._end \u003d int(end)"},{"line_number":40,"context_line":"        except (TypeError, ValueError):"},{"line_number":41,"context_line":"            raise exceptions.NeutronRangeConstrainedIntegerInvalidLimit("},{"line_number":42,"context_line":"                start\u003dstart, end\u003dend)"},{"line_number":43,"context_line":"        super(RangeConstrainedInteger, self).__init__(**kwargs)"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8ec9b2_b45c584c","line":41,"range":{"start_line":41,"start_character":18,"end_line":41,"end_character":71},"updated":"2016-09-21 10:48:23.000000000","message":"I do not see it in neutron-lib.","commit_id":"fc4f7a72026f0fdc5b0252c36cb059e45b7f29d1"},{"author":{"_account_id":7037,"name":"John Perkins","email":"john.perkins@rackspace.com","username":"JPerkins"},"change_message_id":"8463dccf2adc1d0afdfaca1d1ad70f7e87165db7","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            self._start \u003d int(start)"},{"line_number":39,"context_line":"            self._end \u003d int(end)"},{"line_number":40,"context_line":"        except (TypeError, ValueError):"},{"line_number":41,"context_line":"            raise exceptions.NeutronRangeConstrainedIntegerInvalidLimit("},{"line_number":42,"context_line":"                start\u003dstart, end\u003dend)"},{"line_number":43,"context_line":"        super(RangeConstrainedInteger, self).__init__(**kwargs)"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a8bc5a2_6c385aa1","line":41,"range":{"start_line":41,"start_character":18,"end_line":41,"end_character":71},"in_reply_to":"7a8ec9b2_b45c584c","updated":"2016-09-23 18:39:24.000000000","message":"Done","commit_id":"fc4f7a72026f0fdc5b0252c36cb059e45b7f29d1"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"41e5904466af3ae15b2a51dfea50010125bd3c80","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import netaddr"},{"line_number":17,"context_line":"from neutron_lib import constants as lib_constants"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo_versionedobjects import fields as obj_fields"},{"line_number":20,"context_line":"import six"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9a629dbe_cae2dd2e","line":18,"updated":"2016-11-10 15:16:16.000000000","message":"this new line is not needed","commit_id":"27fae4d3e4f50053121eb442ef2ba973cca87415"}],"neutron/objects/exceptions.py":[{"author":{"_account_id":22524,"name":"Mohit Malik","email":"mohit.malik@intel.com","username":"mmalik4"},"change_message_id":"2f2d9a5c16e3952a08d7d5da739d42108edab99c","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    message \u003d _(\"Unable to update the following object fields: %(fields)s\")"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class NeutronDbObjectDuplicateEntry(exceptions.Conflict):"},{"line_number":24,"context_line":"    message \u003d _(\"Failed to create a duplicate %(object_type)s: \""},{"line_number":25,"context_line":"                \"for attribute(s) %(attributes)s with value(s) %(values)s\")"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a95cdbc_66f4edf1","line":23,"updated":"2016-10-06 17:20:46.000000000","message":"Just wanted to point out here the comments made to my proposed change[1] of making NeutronDbObjectDuplicateEntry retriable. \"NeutronDbObjectDuplicateEntry should have inherited from DBDuplicateEntry.\"\nAny comments on why we chose to do it this way ? \n\n[1] https://review.openstack.org/#/c/377084/1/neutron/db/api.py","commit_id":"57280a2a3464e7d13d5f3682a26f8eb38057084e"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ead249a132bbaa7569f65cfe65d828b59cc41e3b","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"from neutron._i18n import _"},{"line_number":15,"context_line":"from neutron_lib import exceptions"},{"line_number":16,"context_line":"from oslo_utils import reflection"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_016fd792","line":14,"updated":"2016-10-18 17:07:56.000000000","message":"this import should go after line 16, after an empty new line.","commit_id":"ed1290c8355894c242f471a946865f44ad94e48d"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"a2cec13c331f1c830c7f840865b894ef224da1d3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"ba5da102_8ea3bdff","updated":"2016-11-01 20:04:28.000000000","message":"to handle cases like when exactly one result is expected or none is expected we can use get_object and raise neutron local exceptions, I would suggest adding a exception\n\nclass NeutronExpectsExcactlyOneObject(exceptions.NeutronException):\n    message \u003d _(\"It should return only one object, nultiple objects or none found.\")\n\n\n^^ this should not block the patch I\u0027ll leave upto other reviewers","commit_id":"27fae4d3e4f50053121eb442ef2ba973cca87415"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"41e5904466af3ae15b2a51dfea50010125bd3c80","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"9a629dbe_4acdedb5","in_reply_to":"ba5da102_8ea3bdff","updated":"2016-11-10 15:16:16.000000000","message":"It\u0027s not the goal of the patch","commit_id":"27fae4d3e4f50053121eb442ef2ba973cca87415"}]}
