)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d66eb9dab4cc74139dd44a854c263b39be48cf38","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Martin Hickey \u003cmartin.hickey@ie.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-04-03 15:36:10 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Integrate the Extra Dhcp Opt VersionedObject in Neutron"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch is dependent on commit I45b54b80d994f7e7f06128f73256b94675db97b2"},{"line_number":10,"context_line":"It integrates the VersionedObject with the existing code."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ba0121b8_40f749f5","line":7,"updated":"2016-04-03 15:42:53.000000000","message":"Is this really an integration of OVO? It seems just refactoring. Am I missing something?","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"d5dfeefeb5cb0857809f5cc8ee33de2686c470d3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Martin Hickey \u003cmartin.hickey@ie.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-04-03 15:36:10 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Integrate the Extra Dhcp Opt VersionedObject in Neutron"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch is dependent on commit I45b54b80d994f7e7f06128f73256b94675db97b2"},{"line_number":10,"context_line":"It integrates the VersionedObject with the existing code."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a061dce_990e3ce3","line":7,"in_reply_to":"9a061dce_437c7c72","updated":"2016-04-07 15:51:37.000000000","message":"+1","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a1f51f41d745d96353730e6f32fe82ddb5cbdc35","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Martin Hickey \u003cmartin.hickey@ie.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-04-03 15:36:10 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Integrate the Extra Dhcp Opt VersionedObject in Neutron"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch is dependent on commit I45b54b80d994f7e7f06128f73256b94675db97b2"},{"line_number":10,"context_line":"It integrates the VersionedObject with the existing code."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a061dce_437c7c72","line":7,"in_reply_to":"ba0121b8_40f749f5","updated":"2016-04-04 14:34:04.000000000","message":"It is indeed integration, since the object itself was introduced by a separate patch before.","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a1f51f41d745d96353730e6f32fe82ddb5cbdc35","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Integrate the Extra Dhcp Opt VersionedObject in Neutron"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch is dependent on commit I45b54b80d994f7e7f06128f73256b94675db97b2"},{"line_number":10,"context_line":"It integrates the VersionedObject with the existing code."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I0e01831b2b869fbd1ef90bd72a5b63173f554e66"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a061dce_e3edd026","line":9,"updated":"2016-04-04 14:34:04.000000000","message":"Could you please change the section to something that would describe the split approach that we take with objects? It\u0027s still worth having a link to the patch that introduced the object though.","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"d5dfeefeb5cb0857809f5cc8ee33de2686c470d3","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Integrate the Extra Dhcp Opt VersionedObject in Neutron"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch is dependent on commit I45b54b80d994f7e7f06128f73256b94675db97b2"},{"line_number":10,"context_line":"It integrates the VersionedObject with the existing code."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I0e01831b2b869fbd1ef90bd72a5b63173f554e66"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a061dce_5992e44c","line":9,"in_reply_to":"9a061dce_e3edd026","updated":"2016-04-07 15:51:37.000000000","message":"Ok, updated it.","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"aae6c851557e9d590800d55f60f141ad0d0ffb19","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9a061dce_2f41740c","line":13,"updated":"2016-04-04 12:14:20.000000000","message":"Missing:\nPartial-Bug: #1541928","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"d5dfeefeb5cb0857809f5cc8ee33de2686c470d3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9a061dce_d9cd5467","line":13,"in_reply_to":"9a061dce_2f41740c","updated":"2016-04-07 15:51:37.000000000","message":"Done","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"}],"neutron/db/extra_dhcp_opt/models.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a1f51f41d745d96353730e6f32fe82ddb5cbdc35","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from neutron.db import models_v2"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class ExtraDhcpOpt(model_base.BASEV2, model_base.HasId):"},{"line_number":21,"context_line":"    \"\"\"Represent a generic concept of extra options associated to a port."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    Each port may have none to many dhcp opts associated to it that can"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_a3bbd80d","line":20,"updated":"2016-04-04 14:34:04.000000000","message":"I am tired of asking not touching models in the patch that integrates the objects. If that\u0027s a thing, it belongs to a separate patch.\n\nBy mixing things, you raise chances of git conflicts for other developers.","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"d5dfeefeb5cb0857809f5cc8ee33de2686c470d3","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from neutron.db import models_v2"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class ExtraDhcpOpt(model_base.BASEV2, model_base.HasId):"},{"line_number":21,"context_line":"    \"\"\"Represent a generic concept of extra options associated to a port."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    Each port may have none to many dhcp opts associated to it that can"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_5b8fbc74","line":20,"in_reply_to":"9a061dce_a3bbd80d","updated":"2016-04-07 15:51:37.000000000","message":"Fair enough, a valid point. However,if you do not split the model out into a separate file then you end up with circular imports in neutron/db/extradhcpopt_db.py when importing the ovo which import the model. So we need the pattern.","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"}],"neutron/db/extradhcpopt_db.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"aae6c851557e9d590800d55f60f141ad0d0ffb19","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                                             extra_dhcp_opts):"},{"line_number":72,"context_line":"        if not extra_dhcp_opts:"},{"line_number":73,"context_line":"            return port"},{"line_number":74,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":75,"context_line":"            for dopt in extra_dhcp_opts:"},{"line_number":76,"context_line":"                if self._is_valid_opt_value(dopt[\u0027opt_name\u0027],"},{"line_number":77,"context_line":"                                            dopt[\u0027opt_value\u0027]):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_6fcecc84","side":"PARENT","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":57},"updated":"2016-04-04 12:14:20.000000000","message":"I\u0027m wondering if we still need this session for creation of all extra_dhcp_opts. What if one of iteration inside loop fails?","commit_id":"a8ea95f1e42927b08ba537573ab856f17fbcddba"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a1f51f41d745d96353730e6f32fe82ddb5cbdc35","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                                             extra_dhcp_opts):"},{"line_number":72,"context_line":"        if not extra_dhcp_opts:"},{"line_number":73,"context_line":"            return port"},{"line_number":74,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":75,"context_line":"            for dopt in extra_dhcp_opts:"},{"line_number":76,"context_line":"                if self._is_valid_opt_value(dopt[\u0027opt_name\u0027],"},{"line_number":77,"context_line":"                                            dopt[\u0027opt_value\u0027]):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_83f974cb","side":"PARENT","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":57},"in_reply_to":"9a061dce_6fcecc84","updated":"2016-04-04 14:34:04.000000000","message":"Yes, we should not touch it.","commit_id":"a8ea95f1e42927b08ba537573ab856f17fbcddba"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"d5dfeefeb5cb0857809f5cc8ee33de2686c470d3","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                                             extra_dhcp_opts):"},{"line_number":72,"context_line":"        if not extra_dhcp_opts:"},{"line_number":73,"context_line":"            return port"},{"line_number":74,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":75,"context_line":"            for dopt in extra_dhcp_opts:"},{"line_number":76,"context_line":"                if self._is_valid_opt_value(dopt[\u0027opt_name\u0027],"},{"line_number":77,"context_line":"                                            dopt[\u0027opt_value\u0027]):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_aab3e808","side":"PARENT","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":57},"in_reply_to":"9a061dce_83f974cb","updated":"2016-04-07 15:51:37.000000000","message":"Sure, rolled back.","commit_id":"a8ea95f1e42927b08ba537573ab856f17fbcddba"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"aae6c851557e9d590800d55f60f141ad0d0ffb19","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                context, ExtraDhcpOpt).filter_by(port_id\u003did).all()"},{"line_number":107,"context_line":"            # if there are currently no dhcp_options associated to"},{"line_number":108,"context_line":"            # this port, Then just insert the new ones and be done."},{"line_number":109,"context_line":"            with context.session.begin(subtransactions\u003dTrue):"},{"line_number":110,"context_line":"                for upd_rec in dopts:"},{"line_number":111,"context_line":"                    for opt in opt_db:"},{"line_number":112,"context_line":"                        if (opt[\u0027opt_name\u0027] \u003d\u003d upd_rec[\u0027opt_name\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_0f88f0e6","side":"PARENT","line":109,"updated":"2016-04-04 12:14:20.000000000","message":"The same line 74","commit_id":"a8ea95f1e42927b08ba537573ab856f17fbcddba"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"d5dfeefeb5cb0857809f5cc8ee33de2686c470d3","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                context, ExtraDhcpOpt).filter_by(port_id\u003did).all()"},{"line_number":107,"context_line":"            # if there are currently no dhcp_options associated to"},{"line_number":108,"context_line":"            # this port, Then just insert the new ones and be done."},{"line_number":109,"context_line":"            with context.session.begin(subtransactions\u003dTrue):"},{"line_number":110,"context_line":"                for upd_rec in dopts:"},{"line_number":111,"context_line":"                    for opt in opt_db:"},{"line_number":112,"context_line":"                        if (opt[\u0027opt_name\u0027] \u003d\u003d upd_rec[\u0027opt_name\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_2db9b22e","side":"PARENT","line":109,"in_reply_to":"9a061dce_0f88f0e6","updated":"2016-04-07 15:51:37.000000000","message":"Done.","commit_id":"a8ea95f1e42927b08ba537573ab856f17fbcddba"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a1f51f41d745d96353730e6f32fe82ddb5cbdc35","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9a061dce_c3208cfa","updated":"2016-04-04 14:34:04.000000000","message":"I don\u0027t see a dedicated test file for the module. We should implement one (as a separate patch), and only then go with the refactoring.","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"d5dfeefeb5cb0857809f5cc8ee33de2686c470d3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9a061dce_be5cc64b","in_reply_to":"9a061dce_c3208cfa","updated":"2016-04-07 15:51:37.000000000","message":"It would seem to be here: \nneutron/tests/unit/extensions/test_extra_dhcp_opt.py","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a1f51f41d745d96353730e6f32fe82ddb5cbdc35","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    def _get_port_extra_dhcp_opts_binding(self, context, port_id):"},{"line_number":59,"context_line":"        opts \u003d obj_extra_dhcp.ExtraDhcpOpt.get_objects("},{"line_number":60,"context_line":"                            context, port_id\u003dport_id)"},{"line_number":61,"context_line":"        # TODO(mhickey): When port serilization if available then"},{"line_number":62,"context_line":"        # the object list should be returned instead"},{"line_number":63,"context_line":"        return [{\u0027opt_name\u0027: r.opt_name, \u0027opt_value\u0027: r.opt_value,"},{"line_number":64,"context_line":"                 \u0027ip_version\u0027: r.ip_version}"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_23e22804","line":61,"range":{"start_line":61,"start_character":48,"end_line":61,"end_character":50},"updated":"2016-04-04 14:34:04.000000000","message":"is?","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"d5dfeefeb5cb0857809f5cc8ee33de2686c470d3","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    def _get_port_extra_dhcp_opts_binding(self, context, port_id):"},{"line_number":59,"context_line":"        opts \u003d obj_extra_dhcp.ExtraDhcpOpt.get_objects("},{"line_number":60,"context_line":"                            context, port_id\u003dport_id)"},{"line_number":61,"context_line":"        # TODO(mhickey): When port serilization if available then"},{"line_number":62,"context_line":"        # the object list should be returned instead"},{"line_number":63,"context_line":"        return [{\u0027opt_name\u0027: r.opt_name, \u0027opt_value\u0027: r.opt_value,"},{"line_number":64,"context_line":"                 \u0027ip_version\u0027: r.ip_version}"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_95976f39","line":61,"range":{"start_line":61,"start_character":48,"end_line":61,"end_character":50},"in_reply_to":"9a061dce_23e22804","updated":"2016-04-07 15:51:37.000000000","message":"Done","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a1f51f41d745d96353730e6f32fe82ddb5cbdc35","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        opts \u003d obj_extra_dhcp.ExtraDhcpOpt.get_objects("},{"line_number":60,"context_line":"                            context, port_id\u003dport_id)"},{"line_number":61,"context_line":"        # TODO(mhickey): When port serilization if available then"},{"line_number":62,"context_line":"        # the object list should be returned instead"},{"line_number":63,"context_line":"        return [{\u0027opt_name\u0027: r.opt_name, \u0027opt_value\u0027: r.opt_value,"},{"line_number":64,"context_line":"                 \u0027ip_version\u0027: r.ip_version}"},{"line_number":65,"context_line":"                for r in opts]"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_a3c5985c","line":62,"updated":"2016-04-04 14:34:04.000000000","message":"but it\u0027s not a public method. why do we care about not changing the returned type here?","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"d5dfeefeb5cb0857809f5cc8ee33de2686c470d3","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        opts \u003d obj_extra_dhcp.ExtraDhcpOpt.get_objects("},{"line_number":60,"context_line":"                            context, port_id\u003dport_id)"},{"line_number":61,"context_line":"        # TODO(mhickey): When port serilization if available then"},{"line_number":62,"context_line":"        # the object list should be returned instead"},{"line_number":63,"context_line":"        return [{\u0027opt_name\u0027: r.opt_name, \u0027opt_value\u0027: r.opt_value,"},{"line_number":64,"context_line":"                 \u0027ip_version\u0027: r.ip_version}"},{"line_number":65,"context_line":"                for r in opts]"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_f96a25b2","line":62,"in_reply_to":"9a061dce_a3c5985c","updated":"2016-04-07 15:51:37.000000000","message":"Its a private method called by method _update_extra_dhcp_opts_on_port which returns the output via updated_port parameter. So the returned type should become object list.","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a1f51f41d745d96353730e6f32fe82ddb5cbdc35","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            # this port, Then just insert the new ones and be done."},{"line_number":78,"context_line":"            for upd_rec in dopts:"},{"line_number":79,"context_line":"                for opt in opts:"},{"line_number":80,"context_line":"                    if (opt.opt_name \u003d\u003d upd_rec[\u0027opt_name\u0027]"},{"line_number":81,"context_line":"                            and opt.ip_version \u003d\u003d upd_rec.get("},{"line_number":82,"context_line":"                                \u0027ip_version\u0027, 4)):"},{"line_number":83,"context_line":"                        # to handle deleting of a opt from the port."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_6379c02f","line":80,"range":{"start_line":80,"start_character":27,"end_line":80,"end_character":28},"updated":"2016-04-04 14:34:04.000000000","message":"we have compat dict support for object, so the change is not strictly needed.","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"d5dfeefeb5cb0857809f5cc8ee33de2686c470d3","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            # this port, Then just insert the new ones and be done."},{"line_number":78,"context_line":"            for upd_rec in dopts:"},{"line_number":79,"context_line":"                for opt in opts:"},{"line_number":80,"context_line":"                    if (opt.opt_name \u003d\u003d upd_rec[\u0027opt_name\u0027]"},{"line_number":81,"context_line":"                            and opt.ip_version \u003d\u003d upd_rec.get("},{"line_number":82,"context_line":"                                \u0027ip_version\u0027, 4)):"},{"line_number":83,"context_line":"                        # to handle deleting of a opt from the port."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_0225ddbf","line":80,"range":{"start_line":80,"start_character":27,"end_line":80,"end_character":28},"in_reply_to":"9a061dce_6379c02f","updated":"2016-04-07 15:51:37.000000000","message":"I understand that but I figured that it is a more readable nomenclature to use the object reference approach. Rolled it back to use dict reference approach.","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a1f51f41d745d96353730e6f32fe82ddb5cbdc35","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            for upd_rec in dopts:"},{"line_number":79,"context_line":"                for opt in opts:"},{"line_number":80,"context_line":"                    if (opt.opt_name \u003d\u003d upd_rec[\u0027opt_name\u0027]"},{"line_number":81,"context_line":"                            and opt.ip_version \u003d\u003d upd_rec.get("},{"line_number":82,"context_line":"                                \u0027ip_version\u0027, 4)):"},{"line_number":83,"context_line":"                        # to handle deleting of a opt from the port."},{"line_number":84,"context_line":"                        if upd_rec[\u0027opt_value\u0027] is None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_038f2424","line":81,"range":{"start_line":81,"start_character":35,"end_line":81,"end_character":36},"updated":"2016-04-04 14:34:04.000000000","message":"ditto","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"d5dfeefeb5cb0857809f5cc8ee33de2686c470d3","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            for upd_rec in dopts:"},{"line_number":79,"context_line":"                for opt in opts:"},{"line_number":80,"context_line":"                    if (opt.opt_name \u003d\u003d upd_rec[\u0027opt_name\u0027]"},{"line_number":81,"context_line":"                            and opt.ip_version \u003d\u003d upd_rec.get("},{"line_number":82,"context_line":"                                \u0027ip_version\u0027, 4)):"},{"line_number":83,"context_line":"                        # to handle deleting of a opt from the port."},{"line_number":84,"context_line":"                        if upd_rec[\u0027opt_value\u0027] is None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_e210a95b","line":81,"range":{"start_line":81,"start_character":35,"end_line":81,"end_character":36},"in_reply_to":"9a061dce_038f2424","updated":"2016-04-07 15:51:37.000000000","message":"As above.","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a1f51f41d745d96353730e6f32fe82ddb5cbdc35","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                            opt.delete()"},{"line_number":86,"context_line":"                        else:"},{"line_number":87,"context_line":"                            if (self._is_valid_opt_value("},{"line_number":88,"context_line":"                                    opt.opt_name,"},{"line_number":89,"context_line":"                                    upd_rec[\u0027opt_value\u0027]) and"},{"line_number":90,"context_line":"                                    opt.opt_value !\u003d"},{"line_number":91,"context_line":"                                    upd_rec[\u0027opt_value\u0027]):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_43991c6e","line":88,"range":{"start_line":88,"start_character":39,"end_line":88,"end_character":40},"updated":"2016-04-04 14:34:04.000000000","message":"ditto","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"d5dfeefeb5cb0857809f5cc8ee33de2686c470d3","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                            opt.delete()"},{"line_number":86,"context_line":"                        else:"},{"line_number":87,"context_line":"                            if (self._is_valid_opt_value("},{"line_number":88,"context_line":"                                    opt.opt_name,"},{"line_number":89,"context_line":"                                    upd_rec[\u0027opt_value\u0027]) and"},{"line_number":90,"context_line":"                                    opt.opt_value !\u003d"},{"line_number":91,"context_line":"                                    upd_rec[\u0027opt_value\u0027]):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_4202350c","line":88,"range":{"start_line":88,"start_character":39,"end_line":88,"end_character":40},"in_reply_to":"9a061dce_43991c6e","updated":"2016-04-07 15:51:37.000000000","message":"As above.","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a1f51f41d745d96353730e6f32fe82ddb5cbdc35","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                            if (self._is_valid_opt_value("},{"line_number":88,"context_line":"                                    opt.opt_name,"},{"line_number":89,"context_line":"                                    upd_rec[\u0027opt_value\u0027]) and"},{"line_number":90,"context_line":"                                    opt.opt_value !\u003d"},{"line_number":91,"context_line":"                                    upd_rec[\u0027opt_value\u0027]):"},{"line_number":92,"context_line":"                                opt.opt_value \u003d upd_rec[\u0027opt_value\u0027]"},{"line_number":93,"context_line":"                                opt.update()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_e3baf0bf","line":90,"range":{"start_line":90,"start_character":39,"end_line":90,"end_character":40},"updated":"2016-04-04 14:34:04.000000000","message":"ditto","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"d5dfeefeb5cb0857809f5cc8ee33de2686c470d3","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                            if (self._is_valid_opt_value("},{"line_number":88,"context_line":"                                    opt.opt_name,"},{"line_number":89,"context_line":"                                    upd_rec[\u0027opt_value\u0027]) and"},{"line_number":90,"context_line":"                                    opt.opt_value !\u003d"},{"line_number":91,"context_line":"                                    upd_rec[\u0027opt_value\u0027]):"},{"line_number":92,"context_line":"                                opt.opt_value \u003d upd_rec[\u0027opt_value\u0027]"},{"line_number":93,"context_line":"                                opt.update()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_a5019b07","line":90,"range":{"start_line":90,"start_character":39,"end_line":90,"end_character":40},"in_reply_to":"9a061dce_e3baf0bf","updated":"2016-04-07 15:51:37.000000000","message":"As above.","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"daf71783211187167c8ea6342502aeda4d1c25dd","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    def _get_port_extra_dhcp_opts_binding(self, context, port_id):"},{"line_number":60,"context_line":"        opts \u003d obj_extra_dhcp.ExtraDhcpOpt.get_objects("},{"line_number":61,"context_line":"                            context, port_id\u003dport_id)"},{"line_number":62,"context_line":"        # TODO(mhickey): When port serilization is available then"},{"line_number":63,"context_line":"        # the object list should be returned instead"},{"line_number":64,"context_line":"        return [{\u0027opt_name\u0027: r.opt_name, \u0027opt_value\u0027: r.opt_value,"},{"line_number":65,"context_line":"                 \u0027ip_version\u0027: r.ip_version}"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a1b2928_8e14eff5","line":62,"range":{"start_line":62,"start_character":35,"end_line":62,"end_character":47},"updated":"2016-04-11 14:42:15.000000000","message":"serialization","commit_id":"7ed3cb2ca12ca7a0449c96643dcc0e3f7939bb35"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"daf71783211187167c8ea6342502aeda4d1c25dd","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        if dopts:"},{"line_number":75,"context_line":"            opts \u003d obj_extra_dhcp.ExtraDhcpOpt.get_objects("},{"line_number":76,"context_line":"                                context, port_id\u003did)"},{"line_number":77,"context_line":"            # if there are currently no dhcp_options associated to"},{"line_number":78,"context_line":"            # this port, Then just insert the new ones and be done."},{"line_number":79,"context_line":"            with context.session.begin(subtransactions\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a1b2928_ae828bfe","line":76,"updated":"2016-04-11 14:42:15.000000000","message":"(No action required) the indentation here is a bit unusual but as long as pep8 is happy, I am fine too.","commit_id":"7ed3cb2ca12ca7a0449c96643dcc0e3f7939bb35"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"8896ea2d4fab37d44b55e81f8b8b24feee0991c7","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        if dopts:"},{"line_number":75,"context_line":"            opts \u003d obj_extra_dhcp.ExtraDhcpOpt.get_objects("},{"line_number":76,"context_line":"                                context, port_id\u003did)"},{"line_number":77,"context_line":"            # if there are currently no dhcp_options associated to"},{"line_number":78,"context_line":"            # this port, Then just insert the new ones and be done."},{"line_number":79,"context_line":"            with context.session.begin(subtransactions\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a1b2928_a9dd6544","line":76,"in_reply_to":"7a1b2928_ae828bfe","updated":"2016-04-11 14:53:56.000000000","message":"The current pep8 is not aggressive :-)\n\nI am fine too.","commit_id":"7ed3cb2ca12ca7a0449c96643dcc0e3f7939bb35"}],"neutron/db/migration/models/head.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a1f51f41d745d96353730e6f32fe82ddb5cbdc35","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from neutron.db import dns_db  # noqa"},{"line_number":31,"context_line":"from neutron.db import dvr_mac_db  # noqa"},{"line_number":32,"context_line":"from neutron.db import external_net_db  # noqa"},{"line_number":33,"context_line":"from neutron.db.extra_dhcp_opt import models  # noqa"},{"line_number":34,"context_line":"from neutron.db import extraroute_db  # noqa"},{"line_number":35,"context_line":"from neutron.db import flavors_db  # noqa"},{"line_number":36,"context_line":"from neutron.db import l3_agentschedulers_db  # noqa"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_c3db6c1a","line":33,"updated":"2016-04-04 14:34:04.000000000","message":"that change does not belong to the patch","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"d5dfeefeb5cb0857809f5cc8ee33de2686c470d3","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from neutron.db import dns_db  # noqa"},{"line_number":31,"context_line":"from neutron.db import dvr_mac_db  # noqa"},{"line_number":32,"context_line":"from neutron.db import external_net_db  # noqa"},{"line_number":33,"context_line":"from neutron.db.extra_dhcp_opt import models  # noqa"},{"line_number":34,"context_line":"from neutron.db import extraroute_db  # noqa"},{"line_number":35,"context_line":"from neutron.db import flavors_db  # noqa"},{"line_number":36,"context_line":"from neutron.db import l3_agentschedulers_db  # noqa"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_1b4ee43a","line":33,"in_reply_to":"9a061dce_c3db6c1a","updated":"2016-04-07 15:51:37.000000000","message":"It does as we need the model in a separate file to avoid circular imports.","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"daf71783211187167c8ea6342502aeda4d1c25dd","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from neutron.db import dns_db  # noqa"},{"line_number":31,"context_line":"from neutron.db import dvr_mac_db  # noqa"},{"line_number":32,"context_line":"from neutron.db import external_net_db  # noqa"},{"line_number":33,"context_line":"from neutron.db.extra_dhcp_opt import models  # noqa"},{"line_number":34,"context_line":"from neutron.db import extraroute_db  # noqa"},{"line_number":35,"context_line":"from neutron.db import flavors_db  # noqa"},{"line_number":36,"context_line":"from neutron.db import l3_agentschedulers_db  # noqa"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a1b2928_8e886fe9","line":33,"updated":"2016-04-11 14:42:15.000000000","message":"(No action required) not sure why we need to assign names to modules here at all since they are not used. We override the name later in line 48 but that\u0027s irrelevant I guess.","commit_id":"7ed3cb2ca12ca7a0449c96643dcc0e3f7939bb35"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"8896ea2d4fab37d44b55e81f8b8b24feee0991c7","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from neutron.db import dns_db  # noqa"},{"line_number":31,"context_line":"from neutron.db import dvr_mac_db  # noqa"},{"line_number":32,"context_line":"from neutron.db import external_net_db  # noqa"},{"line_number":33,"context_line":"from neutron.db.extra_dhcp_opt import models  # noqa"},{"line_number":34,"context_line":"from neutron.db import extraroute_db  # noqa"},{"line_number":35,"context_line":"from neutron.db import flavors_db  # noqa"},{"line_number":36,"context_line":"from neutron.db import l3_agentschedulers_db  # noqa"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a1b2928_49093195","line":33,"in_reply_to":"7a1b2928_8e886fe9","updated":"2016-04-11 14:53:56.000000000","message":"It seems it does not hurt nothing, but personally it is nice we will remove name conflict in a follow-up patch.","commit_id":"7ed3cb2ca12ca7a0449c96643dcc0e3f7939bb35"}],"neutron/objects/port/extensions/extra_dhcp_opt.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a1f51f41d745d96353730e6f32fe82ddb5cbdc35","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from oslo_versionedobjects import base as obj_base"},{"line_number":14,"context_line":"from oslo_versionedobjects import fields as obj_fields"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from neutron.db.extra_dhcp_opt import models"},{"line_number":17,"context_line":"from neutron.objects import base"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_43fe3c6c","line":16,"updated":"2016-04-04 14:34:04.000000000","message":"unrelated change","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"d5dfeefeb5cb0857809f5cc8ee33de2686c470d3","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from oslo_versionedobjects import base as obj_base"},{"line_number":14,"context_line":"from oslo_versionedobjects import fields as obj_fields"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from neutron.db.extra_dhcp_opt import models"},{"line_number":17,"context_line":"from neutron.objects import base"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a061dce_fbf850c5","line":16,"in_reply_to":"9a061dce_43fe3c6c","updated":"2016-04-07 15:51:37.000000000","message":"We need this as need model in separate file to avoid circular imports.","commit_id":"4ee6aaf2cee8205f4015110215a3f6013e87bf3d"}]}
