)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"09ef79b2e349642e7f2728b5a75f9fa94a986d05","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"OVO Gre Allocation Endpoints"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds introduce and implements OVO for"},{"line_number":10,"context_line":"the ml2 GRE plugin."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Iaede084cc49c153e77c835f5464cccdc788e157e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa6399be_c411785f","line":9,"range":{"start_line":9,"start_character":11,"end_line":9,"end_character":25},"updated":"2016-10-18 13:52:07.000000000","message":"nit: s/adds introduce/introduces","commit_id":"7fb1cc68bfaa673c193083afbcb92baccf8ce85e"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7368aa8c91beba363b91d27dbc2dba97828cb882","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"OVO Gre Allocation Endpoints"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds introduce and implements OVO for"},{"line_number":10,"context_line":"the ml2 GRE plugin."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Iaede084cc49c153e77c835f5464cccdc788e157e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"fa6399be_8bd78822","line":9,"range":{"start_line":9,"start_character":11,"end_line":9,"end_character":40},"updated":"2016-10-18 16:22:44.000000000","message":"implements","commit_id":"ad16c3bdcb0fc490d9e7644acbcc90652e265694"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"dac439314e9c4be17126f50e8284d3bec71f3988","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"OVO Gre Allocation Endpoints"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds introduce and implements OVO for"},{"line_number":10,"context_line":"the ml2 GRE plugin."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Iaede084cc49c153e77c835f5464cccdc788e157e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"fa6399be_5f87ea11","line":9,"range":{"start_line":9,"start_character":11,"end_line":9,"end_character":40},"in_reply_to":"fa6399be_8bd78822","updated":"2016-10-18 17:53:56.000000000","message":"Done","commit_id":"ad16c3bdcb0fc490d9e7644acbcc90652e265694"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"43bff624af0b51fa939e8d382b1db5aea6707ee9","unresolved":false,"context_lines":[{"line_number":7,"context_line":"OVO Gre Allocation Endpoints"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch implements OVO for"},{"line_number":10,"context_line":"the ml2 GRE plugin."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Iaede084cc49c153e77c835f5464cccdc788e157e"},{"line_number":13,"context_line":"Partially-Implements: blueprint adopt-oslo-versioned-objects-for-db"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5a74a57a_82800948","line":10,"updated":"2016-11-25 13:11:23.000000000","message":"that wrapping is weird","commit_id":"70f82dff32466068f4fe4f8c11e844f16885ae87"}],"neutron/objects/plugins/ml2/gre_allocation_endpoints.py":[{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"1ca182b719798a8682e583c1c0c33dafcc3aa180","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        \u0027ip_address\u0027: obj_fields.StringField(),"},{"line_number":46,"context_line":"        \u0027host\u0027: obj_fields.StringField(nullable\u003dTrue)"},{"line_number":47,"context_line":"    }"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    primary_keys \u003d [\u0027ip_address\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_03031710","line":48,"updated":"2016-09-15 15:19:28.000000000","message":"GreEndpoints Model has a unique constraint on the host. unique_keys \u003d [[\u0027host\u0027]] needs to be added to the object","commit_id":"c6a541d5f127772a69e01193a49d1baf9a7c7177"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"b83a4d38cf8f2ac73fa57fd0a4e70b361741535f","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    primary_keys \u003d [\u0027ip_address\u0027]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    unique_keys \u003d [[\u0027host\u0027]]"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8ec9b2_3b0e573b","line":51,"range":{"start_line":51,"start_character":4,"end_line":51,"end_character":15},"updated":"2016-09-16 09:24:33.000000000","message":"unique_keys are generated automatically [1], so do not have to declare it here.\n\n[1] https://github.com/openstack/neutron/blob/9.0.0.0b3/neutron/objects/base.py#L246","commit_id":"481b3f77890baf5c5367b95bfa7c25903577d375"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"70c0f43fca9e2e1c5effa3fd9aaa5497a08bed44","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    primary_keys \u003d [\u0027ip_address\u0027]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    unique_keys \u003d [[\u0027host\u0027]]"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8ec9b2_aa1bda71","line":51,"range":{"start_line":51,"start_character":4,"end_line":51,"end_character":15},"in_reply_to":"7a8ec9b2_3b0e573b","updated":"2016-09-16 14:50:44.000000000","message":"Done","commit_id":"481b3f77890baf5c5367b95bfa7c25903577d375"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"fee40db063329e200e242305a5097a291181f267","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    fields \u003d {"},{"line_number":30,"context_line":"        \u0027gre_id\u0027: obj_fields.IntegerField(),"},{"line_number":31,"context_line":"        \u0027allocated\u0027: obj_fields.BooleanField()"},{"line_number":32,"context_line":"    }"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    primary_keys \u003d [\u0027gre_id\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a8bc5a2_9f066acc","line":31,"range":{"start_line":31,"start_character":44,"end_line":31,"end_character":46},"updated":"2016-09-26 14:37:41.000000000","message":"default\u003dFalse","commit_id":"7f2d1b6d4d9a785d6d4531484d8f02ffb5f34a22"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"30c80e9ae9204c1ae05dee73c355066b2ff986d5","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    fields \u003d {"},{"line_number":30,"context_line":"        \u0027gre_id\u0027: obj_fields.IntegerField(),"},{"line_number":31,"context_line":"        \u0027allocated\u0027: obj_fields.BooleanField()"},{"line_number":32,"context_line":"    }"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    primary_keys \u003d [\u0027gre_id\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a98d1f4_633198a2","line":31,"range":{"start_line":31,"start_character":44,"end_line":31,"end_character":46},"in_reply_to":"5a8bc5a2_9f066acc","updated":"2016-09-28 21:36:01.000000000","message":"Done. Although in the model it was already \u0027default\u003dfalse\u0027.See [1]\n[1]https://github.com/openstack/neutron/blob/master/neutron/db/models/plugins/ml2/gre_allocation_endpoints.py#L27","commit_id":"7f2d1b6d4d9a785d6d4531484d8f02ffb5f34a22"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"54dfb3691ebf128601e440fe9ad3df2e5b68c11c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    db_model \u003d gre_model.GreEndpoints"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    fields \u003d {"},{"line_number":45,"context_line":"        \u0027ip_address\u0027: obj_fields.StringField(),"},{"line_number":46,"context_line":"        \u0027host\u0027: obj_fields.StringField(nullable\u003dTrue)"},{"line_number":47,"context_line":"    }"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a8ec9b2_cdb2f2e4","line":45,"updated":"2016-09-16 20:21:12.000000000","message":"I think \u0027ip_address\u0027 should be IPAddressField() instead of StringField().For that modify_fields_from/to_db methods need to be added.\n\nAn example can be seen here: https://github.com/openstack/neutron/blob/master/neutron/objects/subnet.py#L114-L136","commit_id":"7f2d1b6d4d9a785d6d4531484d8f02ffb5f34a22"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"30c80e9ae9204c1ae05dee73c355066b2ff986d5","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    db_model \u003d gre_model.GreEndpoints"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    fields \u003d {"},{"line_number":45,"context_line":"        \u0027ip_address\u0027: obj_fields.StringField(),"},{"line_number":46,"context_line":"        \u0027host\u0027: obj_fields.StringField(nullable\u003dTrue)"},{"line_number":47,"context_line":"    }"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3a98d1f4_03bff4fb","line":45,"in_reply_to":"5a8bc5a2_1f225a52","updated":"2016-09-28 21:36:01.000000000","message":"Done","commit_id":"7f2d1b6d4d9a785d6d4531484d8f02ffb5f34a22"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"fee40db063329e200e242305a5097a291181f267","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    db_model \u003d gre_model.GreEndpoints"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    fields \u003d {"},{"line_number":45,"context_line":"        \u0027ip_address\u0027: obj_fields.StringField(),"},{"line_number":46,"context_line":"        \u0027host\u0027: obj_fields.StringField(nullable\u003dTrue)"},{"line_number":47,"context_line":"    }"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a8bc5a2_1f225a52","line":45,"in_reply_to":"7a8ec9b2_cdb2f2e4","updated":"2016-09-26 14:37:41.000000000","message":"+1","commit_id":"7f2d1b6d4d9a785d6d4531484d8f02ffb5f34a22"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7368aa8c91beba363b91d27dbc2dba97828cb882","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Intel Corporation."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_2bf11cce","line":1,"updated":"2016-10-18 16:22:44.000000000","message":"file name should be singlular form as per README.rst (greallocation.py?)","commit_id":"ad16c3bdcb0fc490d9e7644acbcc90652e265694"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"dac439314e9c4be17126f50e8284d3bec71f3988","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Intel Corporation."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_ff78be2d","line":1,"in_reply_to":"fa6399be_2bf11cce","updated":"2016-10-18 17:53:56.000000000","message":"Done","commit_id":"ad16c3bdcb0fc490d9e7644acbcc90652e265694"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7368aa8c91beba363b91d27dbc2dba97828cb882","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import netaddr"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_versionedobjects import base as obj_base"},{"line_number":18,"context_line":"from oslo_versionedobjects import fields as obj_fields"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_abb36c09","line":16,"updated":"2016-10-18 16:22:44.000000000","message":"nit: both netaddr and oslo* are 3parties, no need for the empty line.","commit_id":"ad16c3bdcb0fc490d9e7644acbcc90652e265694"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"dac439314e9c4be17126f50e8284d3bec71f3988","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import netaddr"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_versionedobjects import base as obj_base"},{"line_number":18,"context_line":"from oslo_versionedobjects import fields as obj_fields"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_5f8e0a28","line":16,"in_reply_to":"fa6399be_abb36c09","updated":"2016-10-18 17:53:56.000000000","message":"Done","commit_id":"ad16c3bdcb0fc490d9e7644acbcc90652e265694"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7368aa8c91beba363b91d27dbc2dba97828cb882","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"@obj_base.VersionedObjectRegistry.register"},{"line_number":40,"context_line":"class GreEndpoints(base.NeutronDbObject):"},{"line_number":41,"context_line":"    # Version 1.0: Initial version"},{"line_number":42,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_0bce185a","line":40,"range":{"start_line":40,"start_character":6,"end_line":40,"end_character":18},"updated":"2016-10-18 16:22:44.000000000","message":"Why is it plural? Seems like an error in table name, that we should not necessarily repeat for objects. Shouldn\u0027t it be GreEndpoint?","commit_id":"ad16c3bdcb0fc490d9e7644acbcc90652e265694"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"dac439314e9c4be17126f50e8284d3bec71f3988","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"@obj_base.VersionedObjectRegistry.register"},{"line_number":40,"context_line":"class GreEndpoints(base.NeutronDbObject):"},{"line_number":41,"context_line":"    # Version 1.0: Initial version"},{"line_number":42,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_7f93ce4f","line":40,"range":{"start_line":40,"start_character":6,"end_line":40,"end_character":18},"in_reply_to":"fa6399be_0bce185a","updated":"2016-10-18 17:53:56.000000000","message":"Done","commit_id":"ad16c3bdcb0fc490d9e7644acbcc90652e265694"}],"neutron/tests/unit/objects/plugins/ml2/test_gre_allocation_endpoints.py":[{"author":{"_account_id":22524,"name":"Mohit Malik","email":"mohit.malik@intel.com","username":"mmalik4"},"change_message_id":"c507b29a34b8bef395d177fb2dad97170bd805d4","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def setUp(self):"},{"line_number":31,"context_line":"        super(GreAllocationDbObjTestCase, self).setUp()"},{"line_number":32,"context_line":"        self._create_test_network()"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class GreEndpointsIfaceObjTestCase(test_base.BaseObjectIfaceTestCase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_60b08e44","line":32,"updated":"2016-08-26 17:49:40.000000000","message":"from my understanding this is not required as per the object definition, https://review.openstack.org/#/c/361289/1/neutron/objects/plugins/ml2/gre_allocation_endpoints.py","commit_id":"18047e4ba656e6118ae17a26c8daacf89f01438b"},{"author":{"_account_id":22524,"name":"Mohit Malik","email":"mohit.malik@intel.com","username":"mmalik4"},"change_message_id":"c507b29a34b8bef395d177fb2dad97170bd805d4","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def setUp(self):"},{"line_number":46,"context_line":"        super(GreEndpointsDbObjTestCase, self).setUp()"},{"line_number":47,"context_line":"        self._create_test_network()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_a0ba9621","line":47,"updated":"2016-08-26 17:49:40.000000000","message":"ditto","commit_id":"18047e4ba656e6118ae17a26c8daacf89f01438b"}],"neutron/tests/unit/objects/test_objects.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7368aa8c91beba363b91d27dbc2dba97828cb882","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    \u0027ExtraDhcpOpt\u0027: \u00271.0-632f689cbeb36328995a7aed1d0a78d3\u0027,"},{"line_number":36,"context_line":"    \u0027IPAllocation\u0027: \u00271.0-47251b4c6d45c3b5feb0297fe5c461f2\u0027,"},{"line_number":37,"context_line":"    \u0027IPAllocationPool\u0027: \u00271.0-371016a6480ed0b4299319cb46d9215d\u0027,"},{"line_number":38,"context_line":"    \u0027GreAllocation\u0027: \u00271.0-9ee1bbc4d999bea84c99425484b11ac5\u0027,"},{"line_number":39,"context_line":"    \u0027GreEndpoints\u0027: \u00271.0-040f026996b5952e2ae4ccd40ac61ca6\u0027,"},{"line_number":40,"context_line":"    \u0027Network\u0027: \u00271.0-f2f6308f79731a767b92b26b0f4f3849\u0027,"},{"line_number":41,"context_line":"    \u0027NetworkPortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_ab98cc6b","line":38,"updated":"2016-10-18 16:22:44.000000000","message":"this list is is alphabetic order (see line 27-28).","commit_id":"ad16c3bdcb0fc490d9e7644acbcc90652e265694"},{"author":{"_account_id":22776,"name":"Nakul Dahiwade","email":"nakul.dahiwade@intel.com","username":"nakul.dahiwade"},"change_message_id":"dac439314e9c4be17126f50e8284d3bec71f3988","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    \u0027ExtraDhcpOpt\u0027: \u00271.0-632f689cbeb36328995a7aed1d0a78d3\u0027,"},{"line_number":36,"context_line":"    \u0027IPAllocation\u0027: \u00271.0-47251b4c6d45c3b5feb0297fe5c461f2\u0027,"},{"line_number":37,"context_line":"    \u0027IPAllocationPool\u0027: \u00271.0-371016a6480ed0b4299319cb46d9215d\u0027,"},{"line_number":38,"context_line":"    \u0027GreAllocation\u0027: \u00271.0-9ee1bbc4d999bea84c99425484b11ac5\u0027,"},{"line_number":39,"context_line":"    \u0027GreEndpoints\u0027: \u00271.0-040f026996b5952e2ae4ccd40ac61ca6\u0027,"},{"line_number":40,"context_line":"    \u0027Network\u0027: \u00271.0-f2f6308f79731a767b92b26b0f4f3849\u0027,"},{"line_number":41,"context_line":"    \u0027NetworkPortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_5fb52ace","line":38,"in_reply_to":"fa6399be_ab98cc6b","updated":"2016-10-18 17:53:56.000000000","message":"Done","commit_id":"ad16c3bdcb0fc490d9e7644acbcc90652e265694"}]}
