)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"496eb74bc904b535cb840fe239bb9cb5aad9760c","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Rodolfo Alonso Hernandez \u003cralonsoh@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-01-03 11:14:09 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Synchronize the network segement range initialization"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The VLAN and tunnelled network segment range initialization is performed"},{"line_number":10,"context_line":"in each Neutron API worker during the initialization transient period."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"97c84fe8_a2067276","line":7,"range":{"start_line":7,"start_character":24,"end_line":7,"end_character":32},"updated":"2025-01-06 23:48:51.000000000","message":"nit: segment","commit_id":"a4bd46d71623cdeba201d9441bab5df1af4488c3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"45dde685aedb7842c267f29144d64d2622bb78ca","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rodolfo Alonso Hernandez \u003cralonsoh@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-01-03 11:14:09 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Synchronize the network segement range initialization"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The VLAN and tunnelled network segment range initialization is performed"},{"line_number":10,"context_line":"in each Neutron API worker during the initialization transient period."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"9aa3042e_d3846b1b","line":7,"range":{"start_line":7,"start_character":24,"end_line":7,"end_character":32},"in_reply_to":"97c84fe8_a2067276","updated":"2025-01-08 10:34:37.000000000","message":"Done","commit_id":"a4bd46d71623cdeba201d9441bab5df1af4488c3"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1d9e88057aaec05af3247207dd0d2dc001e43a58","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"0150ac34_ea7394b8","updated":"2025-01-03 15:04:52.000000000","message":"recheck neutron-tempest-plugin-ovn","commit_id":"a4bd46d71623cdeba201d9441bab5df1af4488c3"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"82b8342eb4d5d29cc74870189c0e274ce05e489b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"7ebbd4aa_b452b034","updated":"2025-01-08 13:12:07.000000000","message":"recheck - unrelated default SG scenario test failure in the ovn job","commit_id":"e657d9e83bf78e65b12f5eca5ecfc6d11825673d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"023e0df262024c090397b77b1e15c78a3c3b3546","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"47c1d7e5_9715e8dc","updated":"2025-01-13 12:42:31.000000000","message":"just small nits, otherwise looks ok,","commit_id":"954222106eefb6f466435ddb1f242a6be3cc47f4"}],"neutron/common/wsgi_utils.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"023e0df262024c090397b77b1e15c78a3c3b3546","unresolved":true,"context_lines":[{"line_number":18,"context_line":"from neutron.common import utils"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"def get_start_time(default\u003dNone, current_time\u003dNone):"},{"line_number":22,"context_line":"    \"\"\"Return the \u0027start-time\u003d%t\u0027 config varible in the WSGI config"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    This variable contains the start time of the WSGI server. Check"}],"source_content_type":"text/x-python","patch_set":11,"id":"1c28a7a7_474642d9","line":21,"range":{"start_line":21,"start_character":33,"end_line":21,"end_character":45},"updated":"2025-01-13 12:42:31.000000000","message":"nit: use_current_time\u003dFalse ?","commit_id":"954222106eefb6f466435ddb1f242a6be3cc47f4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"960186479beeb0fe21d7db9afe5f8f5990522569","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from neutron.common import utils"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"def get_start_time(default\u003dNone, current_time\u003dNone):"},{"line_number":22,"context_line":"    \"\"\"Return the \u0027start-time\u003d%t\u0027 config varible in the WSGI config"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    This variable contains the start time of the WSGI server. Check"}],"source_content_type":"text/x-python","patch_set":11,"id":"948d2b0a_571e998e","line":21,"range":{"start_line":21,"start_character":33,"end_line":21,"end_character":45},"in_reply_to":"1c28a7a7_474642d9","updated":"2025-01-13 14:15:53.000000000","message":"Much better, yes.","commit_id":"954222106eefb6f466435ddb1f242a6be3cc47f4"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"023e0df262024c090397b77b1e15c78a3c3b3546","unresolved":true,"context_lines":[{"line_number":28,"context_line":"    :param default: (int or float) in case the uwsgi option \u0027start-time\u0027 is not"},{"line_number":29,"context_line":"                    available or the uwsgi module cannot be loaded, the method"},{"line_number":30,"context_line":"                    will return this value."},{"line_number":31,"context_line":"    :param current_time: (bool) if default is None and this, the method will"},{"line_number":32,"context_line":"                         return the current time."},{"line_number":33,"context_line":"    :return: (int) start time in seconds."},{"line_number":34,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"cea65b4c_05f4840e","line":31,"range":{"start_line":31,"start_character":51,"end_line":31,"end_character":59},"updated":"2025-01-13 12:42:31.000000000","message":"nit: if default is None and (use_)current_time is set,.... ?","commit_id":"954222106eefb6f466435ddb1f242a6be3cc47f4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"960186479beeb0fe21d7db9afe5f8f5990522569","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    :param default: (int or float) in case the uwsgi option \u0027start-time\u0027 is not"},{"line_number":29,"context_line":"                    available or the uwsgi module cannot be loaded, the method"},{"line_number":30,"context_line":"                    will return this value."},{"line_number":31,"context_line":"    :param current_time: (bool) if default is None and this, the method will"},{"line_number":32,"context_line":"                         return the current time."},{"line_number":33,"context_line":"    :return: (int) start time in seconds."},{"line_number":34,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"7db6745d_42f8d0fd","line":31,"range":{"start_line":31,"start_character":51,"end_line":31,"end_character":59},"in_reply_to":"cea65b4c_05f4840e","updated":"2025-01-13 14:15:53.000000000","message":"Yeah, I left this sentence incomplete.","commit_id":"954222106eefb6f466435ddb1f242a6be3cc47f4"}],"neutron/objects/network_segment_range.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"82b8342eb4d5d29cc74870189c0e274ce05e489b","unresolved":true,"context_lines":[{"line_number":70,"context_line":"            nullable\u003dFalse),"},{"line_number":71,"context_line":"        \u0027physical_network\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":72,"context_line":"        \u0027minimum\u0027: obj_fields.IntegerField(nullable\u003dTrue),"},{"line_number":73,"context_line":"        \u0027maximum\u0027: obj_fields.IntegerField(nullable\u003dTrue),"},{"line_number":74,"context_line":"    }"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def to_dict(self, fields\u003dNone):"}],"source_content_type":"text/x-python","patch_set":10,"id":"7c2450d5_fc6f1d29","line":73,"updated":"2025-01-08 13:12:07.000000000","message":"nitty nit: unrelated","commit_id":"e657d9e83bf78e65b12f5eca5ecfc6d11825673d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ec6a7a03302461212d7b2c6a71c1136112b2b4d5","unresolved":true,"context_lines":[{"line_number":70,"context_line":"            nullable\u003dFalse),"},{"line_number":71,"context_line":"        \u0027physical_network\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":72,"context_line":"        \u0027minimum\u0027: obj_fields.IntegerField(nullable\u003dTrue),"},{"line_number":73,"context_line":"        \u0027maximum\u0027: obj_fields.IntegerField(nullable\u003dTrue),"},{"line_number":74,"context_line":"    }"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def to_dict(self, fields\u003dNone):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f9e7f07_af91aa78","line":73,"in_reply_to":"7c2450d5_fc6f1d29","updated":"2025-01-08 13:31:03.000000000","message":"ups, that was a leftover of a previous implementation... if I need to respin this patch, I\u0027ll remove it.","commit_id":"e657d9e83bf78e65b12f5eca5ecfc6d11825673d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"985f7adc053574ecd373a672d2a5a1406b4f7851","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            nullable\u003dFalse),"},{"line_number":71,"context_line":"        \u0027physical_network\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":72,"context_line":"        \u0027minimum\u0027: obj_fields.IntegerField(nullable\u003dTrue),"},{"line_number":73,"context_line":"        \u0027maximum\u0027: obj_fields.IntegerField(nullable\u003dTrue),"},{"line_number":74,"context_line":"    }"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def to_dict(self, fields\u003dNone):"}],"source_content_type":"text/x-python","patch_set":10,"id":"0974ba2a_95e8992a","line":73,"in_reply_to":"9f9e7f07_af91aa78","updated":"2025-01-10 07:00:02.000000000","message":"Done","commit_id":"e657d9e83bf78e65b12f5eca5ecfc6d11825673d"}],"neutron/plugins/ml2/drivers/type_tunnel.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f4e11ce93c1ebf68d5edfc7be751faee6d56ddcb","unresolved":true,"context_lines":[{"line_number":29,"context_line":"from oslo_config import cfg"},{"line_number":30,"context_line":"from oslo_db import exception as db_exc"},{"line_number":31,"context_line":"from oslo_log import log"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"from sqlalchemy import or_"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"from neutron._i18n import _"}],"source_content_type":"text/x-python","patch_set":10,"id":"1bed83ec_7a40fc6b","line":32,"updated":"2025-01-09 16:10:53.000000000","message":"nit: extra blank line (surprised pylint didn\u0027t complain)","commit_id":"e657d9e83bf78e65b12f5eca5ecfc6d11825673d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d8147a39fbe57d044fc0611011cc576fd61e519d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from oslo_config import cfg"},{"line_number":30,"context_line":"from oslo_db import exception as db_exc"},{"line_number":31,"context_line":"from oslo_log import log"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"from sqlalchemy import or_"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"from neutron._i18n import _"}],"source_content_type":"text/x-python","patch_set":10,"id":"390bf7bb_6c244585","line":32,"in_reply_to":"1bed83ec_7a40fc6b","updated":"2025-01-10 06:43:07.000000000","message":"Done","commit_id":"e657d9e83bf78e65b12f5eca5ecfc6d11825673d"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f4e11ce93c1ebf68d5edfc7be751faee6d56ddcb","unresolved":true,"context_lines":[{"line_number":148,"context_line":"    @db_api.retry_db_errors"},{"line_number":149,"context_line":"    def _populate_new_default_network_segment_ranges(self, start_time):"},{"line_number":150,"context_line":"        ctx \u003d context.get_admin_context()"},{"line_number":151,"context_line":"        with db_api.CONTEXT_WRITER.using(ctx):"},{"line_number":152,"context_line":"            for tun_min, tun_max in self.tunnel_ranges:"},{"line_number":153,"context_line":"                range_obj.NetworkSegmentRange.new_default("},{"line_number":154,"context_line":"                    ctx, self.get_type(), None, tun_min, tun_max, start_time)"}],"source_content_type":"text/x-python","patch_set":10,"id":"e49d4bb6_f25189c6","line":151,"updated":"2025-01-09 16:10:53.000000000","message":"Do you need this as new_default() has this code:\n\n    with cls.db_context_writer(context):\n\nSame in other file","commit_id":"e657d9e83bf78e65b12f5eca5ecfc6d11825673d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d8147a39fbe57d044fc0611011cc576fd61e519d","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    @db_api.retry_db_errors"},{"line_number":149,"context_line":"    def _populate_new_default_network_segment_ranges(self, start_time):"},{"line_number":150,"context_line":"        ctx \u003d context.get_admin_context()"},{"line_number":151,"context_line":"        with db_api.CONTEXT_WRITER.using(ctx):"},{"line_number":152,"context_line":"            for tun_min, tun_max in self.tunnel_ranges:"},{"line_number":153,"context_line":"                range_obj.NetworkSegmentRange.new_default("},{"line_number":154,"context_line":"                    ctx, self.get_type(), None, tun_min, tun_max, start_time)"}],"source_content_type":"text/x-python","patch_set":10,"id":"c91f173b_ed926366","line":151,"in_reply_to":"e49d4bb6_f25189c6","updated":"2025-01-10 06:43:07.000000000","message":"I usually define public methods (``NetworkSegmentRange.new_default`` in this case) with DB contexts protections, just in case is called without it, this is safe always to be called.\n\nIn this case I\u0027m adding this writer context because I want all the network segment ranges to be created in the same context, that is faster than issuing a new transaction for each one. The inner one (in ``NetworkSegmentRange.new_default``) won\u0027t do anything if there is already a transaction in place (aka. if it is inside another context).","commit_id":"e657d9e83bf78e65b12f5eca5ecfc6d11825673d"}]}
