)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"4a4653f12b5705393816c25fe5fa28f6ddaea14c","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The fix is checking instead the the len of the dict."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: bug/2015090"},{"line_number":16,"context_line":"Signed-off-by: Sahid Orentino Ferdjaoui \u003csahid.ferdjaoui@industrialdiscipline.com\u003e"},{"line_number":17,"context_line":"Change-Id: Ie9dfc824c8f8f0aba7f293c09299391fbd1cdb23"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"a050f0a3_bdebdd73","line":15,"range":{"start_line":15,"start_character":12,"end_line":15,"end_character":23},"updated":"2023-04-13 02:30:40.000000000","message":"needs to be #2015090 otherwise it won\u0027t be a link in the review, and i\u0027m not sure the bot will update the bug either","commit_id":"6b771f0d9da2bb619e922c5b5690f0db4876a75a"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"718c31526606bd2a3daad160186ad0920c5e9122","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The fix is checking instead the the len of the dict."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: bug/2015090"},{"line_number":16,"context_line":"Signed-off-by: Sahid Orentino Ferdjaoui \u003csahid.ferdjaoui@industrialdiscipline.com\u003e"},{"line_number":17,"context_line":"Change-Id: Ie9dfc824c8f8f0aba7f293c09299391fbd1cdb23"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"26636e8c_a6ac4a8d","line":15,"range":{"start_line":15,"start_character":12,"end_line":15,"end_character":23},"in_reply_to":"a050f0a3_bdebdd73","updated":"2023-04-14 08:55:14.000000000","message":"Done","commit_id":"6b771f0d9da2bb619e922c5b5690f0db4876a75a"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"02b34e0952e5fe4d820aa81315c38cf8efc6f841","unresolved":true,"context_lines":[{"line_number":10,"context_line":"are explicitly attached to a subnet which is the routed provider"},{"line_number":11,"context_line":"networks."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The issue has been identified using ML2/OVS and network provider. Returning segments are only needed for NPR. The regression comes from (commit 7ceb935da82) When introducing multi-segments. The change was not making difference between segments explicitly attached to subnets."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #2015090"},{"line_number":16,"context_line":"Signed-off-by: Sahid Orentino Ferdjaoui \u003csahid.ferdjaoui@industrialdiscipline.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"eda9801e_17ac50e1","line":13,"updated":"2023-05-04 09:06:17.000000000","message":"Could you add the full change id 1dab155bc812f8764d22e78ebb7d80aaaad65515, it\u0027s directly converted by gerrit UI to a link (no need for copy-paste :))","commit_id":"dc919f8dbe081a5889667edbcc6688a57d1f6881"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"02b34e0952e5fe4d820aa81315c38cf8efc6f841","unresolved":true,"context_lines":[{"line_number":10,"context_line":"are explicitly attached to a subnet which is the routed provider"},{"line_number":11,"context_line":"networks."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The issue has been identified using ML2/OVS and network provider. Returning segments are only needed for NPR. The regression comes from (commit 7ceb935da82) When introducing multi-segments. The change was not making difference between segments explicitly attached to subnets."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #2015090"},{"line_number":16,"context_line":"Signed-off-by: Sahid Orentino Ferdjaoui \u003csahid.ferdjaoui@industrialdiscipline.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3488b479_f5e36c0d","line":13,"updated":"2023-05-04 09:06:17.000000000","message":"Could you break these lines?","commit_id":"dc919f8dbe081a5889667edbcc6688a57d1f6881"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"02b34e0952e5fe4d820aa81315c38cf8efc6f841","unresolved":true,"context_lines":[{"line_number":10,"context_line":"are explicitly attached to a subnet which is the routed provider"},{"line_number":11,"context_line":"networks."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The issue has been identified using ML2/OVS and network provider. Returning segments are only needed for NPR. The regression comes from (commit 7ceb935da82) When introducing multi-segments. The change was not making difference between segments explicitly attached to subnets."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #2015090"},{"line_number":16,"context_line":"Signed-off-by: Sahid Orentino Ferdjaoui \u003csahid.ferdjaoui@industrialdiscipline.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"106db8e2_f24586de","line":13,"updated":"2023-05-04 09:06:17.000000000","message":"NPR is Routed provider network?","commit_id":"dc919f8dbe081a5889667edbcc6688a57d1f6881"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"30da72303015abf22e57ebbdfc0abc515a5cdb4b","unresolved":false,"context_lines":[{"line_number":10,"context_line":"are explicitly attached to a subnet which is the routed provider"},{"line_number":11,"context_line":"networks."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The issue has been identified using ML2/OVS and network provider. Returning segments are only needed for NPR. The regression comes from (commit 7ceb935da82) When introducing multi-segments. The change was not making difference between segments explicitly attached to subnets."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #2015090"},{"line_number":16,"context_line":"Signed-off-by: Sahid Orentino Ferdjaoui \u003csahid.ferdjaoui@industrialdiscipline.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"d366eb5c_49533627","line":13,"in_reply_to":"106db8e2_f24586de","updated":"2023-05-04 12:01:57.000000000","message":"Oops I think I mixed some letters :-)","commit_id":"dc919f8dbe081a5889667edbcc6688a57d1f6881"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"30da72303015abf22e57ebbdfc0abc515a5cdb4b","unresolved":false,"context_lines":[{"line_number":10,"context_line":"are explicitly attached to a subnet which is the routed provider"},{"line_number":11,"context_line":"networks."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The issue has been identified using ML2/OVS and network provider. Returning segments are only needed for NPR. The regression comes from (commit 7ceb935da82) When introducing multi-segments. The change was not making difference between segments explicitly attached to subnets."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #2015090"},{"line_number":16,"context_line":"Signed-off-by: Sahid Orentino Ferdjaoui \u003csahid.ferdjaoui@industrialdiscipline.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"e337a9dc_6633410c","line":13,"in_reply_to":"3488b479_f5e36c0d","updated":"2023-05-04 12:01:57.000000000","message":"Done","commit_id":"dc919f8dbe081a5889667edbcc6688a57d1f6881"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"30da72303015abf22e57ebbdfc0abc515a5cdb4b","unresolved":false,"context_lines":[{"line_number":10,"context_line":"are explicitly attached to a subnet which is the routed provider"},{"line_number":11,"context_line":"networks."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The issue has been identified using ML2/OVS and network provider. Returning segments are only needed for NPR. The regression comes from (commit 7ceb935da82) When introducing multi-segments. The change was not making difference between segments explicitly attached to subnets."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #2015090"},{"line_number":16,"context_line":"Signed-off-by: Sahid Orentino Ferdjaoui \u003csahid.ferdjaoui@industrialdiscipline.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"cf2cdd21_c1138313","line":13,"in_reply_to":"eda9801e_17ac50e1","updated":"2023-05-04 12:01:57.000000000","message":"Done","commit_id":"dc919f8dbe081a5889667edbcc6688a57d1f6881"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"4a4653f12b5705393816c25fe5fa28f6ddaea14c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1a8c5859_37815f58","updated":"2023-04-13 02:30:40.000000000","message":"Should add a unit test as well.","commit_id":"6b771f0d9da2bb619e922c5b5690f0db4876a75a"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"092ced7ef4d70c63e27d160171f9c026d844f292","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"44c3d46c_7b0e00d3","updated":"2023-04-12 14:27:52.000000000","message":"recheck  Unable to connect to mirror.ca-ymq-1.vexxhost.opendev.o","commit_id":"6b771f0d9da2bb619e922c5b5690f0db4876a75a"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"1ed08b527825028ab5ed003b319c48adde6f739a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5a14f22f_5893ec5a","updated":"2023-04-12 11:43:45.000000000","message":"recheck grenade","commit_id":"6b771f0d9da2bb619e922c5b5690f0db4876a75a"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"718c31526606bd2a3daad160186ad0920c5e9122","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"36cfff8e_bd20358e","in_reply_to":"1a8c5859_37815f58","updated":"2023-04-14 08:55:14.000000000","message":"ack","commit_id":"6b771f0d9da2bb619e922c5b5690f0db4876a75a"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c93a10974f76cde781e052cb5476256b2cf7940b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"24460d63_b5cfe963","updated":"2023-04-14 12:47:14.000000000","message":"recheck grenade","commit_id":"385a92aea42f0443e94293e249cc9f571894b43c"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a7e202f9aa1717f165602105aa58219f4172fd76","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"396493cc_4e46581c","updated":"2023-04-25 06:54:02.000000000","message":"recheck unrelated","commit_id":"0f2e699f8975a2be13ca110cfb9bfa5616bcb7ce"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"84ba7838bf5e018220c149b940dc86a724057490","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"ba9fe361_2785a377","updated":"2023-04-25 11:30:27.000000000","message":"Looks ok and in my env works, @Felipe Reyes could you check it please?","commit_id":"46e325568a4588398c6c09031c9b7a67b6f9cee1"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"42fe8b39c63a0b20500291f86957f2ba4fb9c0a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"e664b4e4_a51a3fe5","updated":"2023-04-26 11:10:41.000000000","message":"Sorry, there are many question related to this bug/patch that are not resolved:\n\n1) Can you describe the conditions to reproduce this issue? What plugins needs to be enabled? How should I create a network, subnet, etc?\n\n2) If the problem is in the agent side, why are we changing what is returned from the server? The logic in \"get_network_info\" is correct. The agent should properly read how many segments are stored. The problem has been already identified in DhcpAgent.call_driver.","commit_id":"46e325568a4588398c6c09031c9b7a67b6f9cee1"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cab94f106ea2ef7cfa3864ed475a44daaefd8e5a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"b0d5ce96_4b0b61e2","in_reply_to":"8e1e0513_33837bbb","updated":"2023-05-24 08:00:39.000000000","message":"The second point has not been addressed: why if the problem is in the agent side, why are we changing what is returned from the server?","commit_id":"46e325568a4588398c6c09031c9b7a67b6f9cee1"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c6c7da0bfba6a13f65d715cf893675e15917c7ec","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"dd97f5a8_5e2e9fb9","in_reply_to":"b0d5ce96_4b0b61e2","updated":"2023-05-24 14:41:09.000000000","message":"Hum.. my mistake I think I was replied to this point when I mentioned \"The regression comes from\nI1dab155bc812f8764d22e78ebb7d80aaaad65515 When introducing\nmulti-segments.\" As it seems it\u0027s the behavior change in the server which created regression on agent.\n\nThat is said and checking a bit more, if change https://review.opendev.org/c/openstack/neutron/+/840421/33 on agent would not have been proposed, the agent would have just continued to ignore those segments.\n\nI don\u0027t know I feel like this is needed only with RP do we want to have them always transferred to agent? Perhaps we may need them in future or for other components I\u0027m open to discuss other views.","commit_id":"46e325568a4588398c6c09031c9b7a67b6f9cee1"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7cf92c805263a0a40425b55e7be3332fd5b7f53f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"efc76ccd_35165299","in_reply_to":"dd97f5a8_5e2e9fb9","updated":"2023-05-25 10:21:13.000000000","message":"The issue in the agent code was identified in [1]. Line [2] will introduce a \"None\" key if segment is not present. That means the following line will be always true. This is what this patch should fix and test.\n\n[1]https://bugs.launchpad.net/ubuntu/+source/neutron/+bug/2015090/comments/7\n[2]https://opendev.org/openstack/neutron/src/tag/22.0.0/neutron/agent/dhcp/agent.py#L217","commit_id":"46e325568a4588398c6c09031c9b7a67b6f9cee1"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"ae558ec8151524559616eb78dc08b61140ee3cf1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8e1e0513_33837bbb","in_reply_to":"e664b4e4_a51a3fe5","updated":"2023-04-28 07:43:25.000000000","message":"No worries. I can for sure update commit message to add more details.\n\nThe issue has been identified using ML2/OVS and network provider. Returning segments are only needed for NPR. The regression comes from (commit 7ceb935da82) When introducing multi-segments. The change was not making difference between segments explicitly attached to subnets.","commit_id":"46e325568a4588398c6c09031c9b7a67b6f9cee1"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"23ec8f01976f4e2434a255a38172efe43d476a38","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"5345ed72_a6b3e9b0","in_reply_to":"efc76ccd_35165299","updated":"2023-05-26 08:56:04.000000000","message":"That honestly looks a bit strange for me to fix it that way, and from my  (very modest) experience it\u0027s easier for an operator that needs the fix to update controllers than all hosts. \n\nThat is said I may missing some points, I will provide a patch shortly, thanks a lot for you reviews","commit_id":"46e325568a4588398c6c09031c9b7a67b6f9cee1"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"5504aacd4cf7624acdc36651f86bde5844816b3b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3a8a79d5_b43c3bc3","updated":"2023-05-05 11:44:17.000000000","message":"recheck grenade","commit_id":"88eafe6692055a5591baebc116f92d16fc0da829"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"96e0a89704aa92caa1d373fbe94abf914322ba02","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"714b2e4a_81128b62","updated":"2023-05-07 07:53:46.000000000","message":"recheck test_add_remove_fixed_ip","commit_id":"71e3cca05c73e14334b1040192340ddba56c3272"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2a011c6b7beb063b4f3bc4f7615b0ed7a949cb52","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"03d7fc57_53e576c6","updated":"2023-05-15 07:59:21.000000000","message":"recheck\nhttps://review.opendev.org/c/openstack/neutron/+/883081 fixed pep8","commit_id":"a670ad9fa27ce92bddeee36424c7c0f088e779f0"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"0ebd7d3424858244d556381cd5452877bdbc97f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"b840e178_7697f7a4","updated":"2023-05-15 10:44:17.000000000","message":"recheck grenade","commit_id":"a670ad9fa27ce92bddeee36424c7c0f088e779f0"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2aaaf7d52f469ea19ffbed9410aaa0ef0d28bece","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"c8048d6e_017b350d","updated":"2023-05-25 10:21:59.000000000","message":"BTW, at the same time I think the optimization done in this patch is correct, but should be posted **after** the proper fix in the agent side, as a follow-up patch.","commit_id":"e7358696469225884af26861f22d32e1fc0c4b22"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"b3379d5ffba87b74b426e4cd00eea0da24da3a69","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"f3180852_62a9ac0c","updated":"2023-06-13 08:28:44.000000000","message":"reccheck","commit_id":"c943bfeb7440f3ed9ab88f5cf98664f4076c712c"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c7616624677c90f301c02f115faae3592b4ce52e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"ca686990_574d8c02","updated":"2023-06-13 12:08:44.000000000","message":"recheck ovn-rally-task timeout","commit_id":"c943bfeb7440f3ed9ab88f5cf98664f4076c712c"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2881905e5791ef997dddcb18f762deed0ec67665","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"56392cc9_17b0fa46","updated":"2024-11-05 23:57:17.000000000","message":"Are you Ok with this now Rodolfo?","commit_id":"0a450eeab61785e85dc41fa096746cf49f15e077"}],"neutron/agent/dhcp/agent.py":[{"author":{"_account_id":2424,"name":"Felipe Reyes","email":"felipe.reyes@canonical.com","username":"freyes"},"change_message_id":"f394709b29c8cdd3cd8f25a578c9a7477dbb8648","unresolved":true,"context_lines":[{"line_number":206,"context_line":"                     action, action_kwargs)"},{"line_number":207,"context_line":"            # There is nothing we can do."},{"line_number":208,"context_line":"            return"},{"line_number":209,"context_line":"        if \u0027segments\u0027 in network and len(network.segments) \u003e 0:"},{"line_number":210,"context_line":"            # In case of multi-segments network, let\u0027s group network per"},{"line_number":211,"context_line":"            # segments.  We can then create DHPC process per segmentation"},{"line_number":212,"context_line":"            # id. All subnets on a same network that are sharing the same"}],"source_content_type":"text/x-python","patch_set":3,"id":"b93759a7_c5f74e88","line":209,"updated":"2023-04-14 15:03:04.000000000","message":"I applied this change to my testing environment and the issue persists.\n\n`network.segments` contains a list with one element: `[\u003cneutron.agent.linux.dhcp.DictModel object at 0x7fd013691a50\u003e]`, this DictModel is the segment associated to the external network which for my environment is flat, the flat network has a segment with segment id None (see https://bugs.launchpad.net/ubuntu/+source/neutron/+bug/2015090/comments/10 and https://bugs.launchpad.net/ubuntu/+source/neutron/+bug/2015090/comments/12 )","commit_id":"385a92aea42f0443e94293e249cc9f571894b43c"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"258519394c7dbb3169abfced5660928ff3ad7571","unresolved":false,"context_lines":[{"line_number":206,"context_line":"                     action, action_kwargs)"},{"line_number":207,"context_line":"            # There is nothing we can do."},{"line_number":208,"context_line":"            return"},{"line_number":209,"context_line":"        if \u0027segments\u0027 in network and len(network.segments) \u003e 0:"},{"line_number":210,"context_line":"            # In case of multi-segments network, let\u0027s group network per"},{"line_number":211,"context_line":"            # segments.  We can then create DHPC process per segmentation"},{"line_number":212,"context_line":"            # id. All subnets on a same network that are sharing the same"}],"source_content_type":"text/x-python","patch_set":3,"id":"31ace2cb_a4323ebf","line":209,"in_reply_to":"b93759a7_c5f74e88","updated":"2023-04-24 11:45:31.000000000","message":"Done","commit_id":"385a92aea42f0443e94293e249cc9f571894b43c"}],"neutron/api/rpc/handlers/dhcp_rpc.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"549a4854937cb683f0747e620dd948d3e4308319","unresolved":true,"context_lines":[{"line_number":240,"context_line":"                                           key\u003doperator.itemgetter(\u0027id\u0027)),"},{"line_number":241,"context_line":"               \u0027ports\u0027: ports,"},{"line_number":242,"context_line":"               \u0027mtu\u0027: network.mtu}"},{"line_number":243,"context_line":"        if seg_plug and seg_subnets:"},{"line_number":244,"context_line":"            ret[\u0027segments\u0027] \u003d [{"},{"line_number":245,"context_line":"                \u0027id\u0027: segment.id,"},{"line_number":246,"context_line":"                \u0027network_id\u0027: segment.network_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5b9318ad_55b2f2a7","line":243,"updated":"2023-04-25 07:10:46.000000000","message":"there is same `if` on line #214 - makes sense to refactor to have just one `if`","commit_id":"0f2e699f8975a2be13ca110cfb9bfa5616bcb7ce"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"339bfb2b3c5e3f1946804f35d50dbffa5be18de9","unresolved":true,"context_lines":[{"line_number":240,"context_line":"                                           key\u003doperator.itemgetter(\u0027id\u0027)),"},{"line_number":241,"context_line":"               \u0027ports\u0027: ports,"},{"line_number":242,"context_line":"               \u0027mtu\u0027: network.mtu}"},{"line_number":243,"context_line":"        if seg_plug and seg_subnets:"},{"line_number":244,"context_line":"            ret[\u0027segments\u0027] \u003d [{"},{"line_number":245,"context_line":"                \u0027id\u0027: segment.id,"},{"line_number":246,"context_line":"                \u0027network_id\u0027: segment.network_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"735ae157_c617d2c0","line":243,"in_reply_to":"5b9318ad_55b2f2a7","updated":"2023-04-25 07:13:30.000000000","message":"Sure I can try","commit_id":"0f2e699f8975a2be13ca110cfb9bfa5616bcb7ce"}],"neutron/tests/unit/agent/dhcp/test_agent.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"42fe8b39c63a0b20500291f86957f2ba4fb9c0a3","unresolved":true,"context_lines":[{"line_number":203,"context_line":"                                 subnets\u003d[fake_subnet1],"},{"line_number":204,"context_line":"                                 ports\u003d[fake_port1])"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"empty_segments \u003d []"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"nonisolated_dist_network \u003d dhcp.NetModel(id\u003dFAKE_NETWORK_UUID,"},{"line_number":209,"context_line":"                                         project_id\u003dFAKE_PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":7,"id":"80547757_c1efe54f","line":206,"range":{"start_line":206,"start_character":0,"end_line":206,"end_character":19},"updated":"2023-04-26 11:10:41.000000000","message":"nit: doesn\u0027t make too much sense to have this variable explicitly defined","commit_id":"46e325568a4588398c6c09031c9b7a67b6f9cee1"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"26c05f71f7cc00b98f8ae0e1a896b9c21db20175","unresolved":true,"context_lines":[{"line_number":203,"context_line":"                                 subnets\u003d[fake_subnet1],"},{"line_number":204,"context_line":"                                 ports\u003d[fake_port1])"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"empty_segments \u003d []"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"nonisolated_dist_network \u003d dhcp.NetModel(id\u003dFAKE_NETWORK_UUID,"},{"line_number":209,"context_line":"                                         project_id\u003dFAKE_PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5cfd9f7a_354bc782","line":206,"range":{"start_line":206,"start_character":0,"end_line":206,"end_character":19},"in_reply_to":"4ac4cb35_707ddd16","updated":"2023-05-11 19:30:26.000000000","message":"Not exactly, the other variables are all dictionaries with values, not empty.","commit_id":"46e325568a4588398c6c09031c9b7a67b6f9cee1"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"ba8610eb6ec5f56949cfc220ebdaf18e9e11f3f8","unresolved":true,"context_lines":[{"line_number":203,"context_line":"                                 subnets\u003d[fake_subnet1],"},{"line_number":204,"context_line":"                                 ports\u003d[fake_port1])"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"empty_segments \u003d []"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"nonisolated_dist_network \u003d dhcp.NetModel(id\u003dFAKE_NETWORK_UUID,"},{"line_number":209,"context_line":"                                         project_id\u003dFAKE_PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":7,"id":"ed78a011_2d92f7ad","line":206,"range":{"start_line":206,"start_character":0,"end_line":206,"end_character":19},"in_reply_to":"5cfd9f7a_354bc782","updated":"2023-05-12 13:57:26.000000000","message":"Sure, fair enough I removed it.","commit_id":"46e325568a4588398c6c09031c9b7a67b6f9cee1"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"ae558ec8151524559616eb78dc08b61140ee3cf1","unresolved":true,"context_lines":[{"line_number":203,"context_line":"                                 subnets\u003d[fake_subnet1],"},{"line_number":204,"context_line":"                                 ports\u003d[fake_port1])"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"empty_segments \u003d []"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"nonisolated_dist_network \u003d dhcp.NetModel(id\u003dFAKE_NETWORK_UUID,"},{"line_number":209,"context_line":"                                         project_id\u003dFAKE_PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":7,"id":"4ac4cb35_707ddd16","line":206,"range":{"start_line":206,"start_character":0,"end_line":206,"end_character":19},"in_reply_to":"80547757_c1efe54f","updated":"2023-04-28 07:43:25.000000000","message":"This is just following convention used in the file.","commit_id":"46e325568a4588398c6c09031c9b7a67b6f9cee1"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"42c03206145307acd047dfb1bf44e8d179d1d66d","unresolved":true,"context_lines":[{"line_number":339,"context_line":"    def test_call_driver(self):"},{"line_number":340,"context_line":"        network \u003d mock.MagicMock()"},{"line_number":341,"context_line":"        network.id \u003d \u00271\u0027"},{"line_number":342,"context_line":"        network.segments \u003d []"},{"line_number":343,"context_line":"        dhcp \u003d dhcp_agent.DhcpAgent(cfg.CONF)"},{"line_number":344,"context_line":"        self.assertTrue(dhcp.call_driver(\u0027foo\u0027, network))"},{"line_number":345,"context_line":"        self.driver.assert_called_once_with(cfg.CONF,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7241c32d_1ddfaf46","line":342,"updated":"2023-05-15 16:19:22.000000000","message":"These lines can actually just be removed, at least doing that locally showed the tests still passed. Same below.","commit_id":"a670ad9fa27ce92bddeee36424c7c0f088e779f0"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"ea239d366d332fa36a38546273087f6efe93303a","unresolved":true,"context_lines":[{"line_number":339,"context_line":"    def test_call_driver(self):"},{"line_number":340,"context_line":"        network \u003d mock.MagicMock()"},{"line_number":341,"context_line":"        network.id \u003d \u00271\u0027"},{"line_number":342,"context_line":"        network.segments \u003d []"},{"line_number":343,"context_line":"        dhcp \u003d dhcp_agent.DhcpAgent(cfg.CONF)"},{"line_number":344,"context_line":"        self.assertTrue(dhcp.call_driver(\u0027foo\u0027, network))"},{"line_number":345,"context_line":"        self.driver.assert_called_once_with(cfg.CONF,"}],"source_content_type":"text/x-python","patch_set":11,"id":"448e6b5e_9316b200","line":342,"in_reply_to":"7241c32d_1ddfaf46","updated":"2023-05-22 10:48:39.000000000","message":"Ok, let\u0027s do that.","commit_id":"a670ad9fa27ce92bddeee36424c7c0f088e779f0"}],"neutron/tests/unit/api/rpc/handlers/test_dhcp_rpc.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"42c03206145307acd047dfb1bf44e8d179d1d66d","unresolved":true,"context_lines":[{"line_number":217,"context_line":"                   \u0027mtu\u0027: network.mtu}"},{"line_number":218,"context_line":"            # Plugin segment is activated globally, the tests is asserting the"},{"line_number":219,"context_line":"            # return."},{"line_number":220,"context_line":"            if non_local_subnets:"},{"line_number":221,"context_line":"                ret[\u0027segments\u0027] \u003d [{"},{"line_number":222,"context_line":"                    \u0027id\u0027: segment.id,"},{"line_number":223,"context_line":"                    \u0027network_id\u0027: segment.network_id,"}],"source_content_type":"text/x-python","patch_set":11,"id":"6d806101_8e854920","line":220,"updated":"2023-05-15 16:19:22.000000000","message":"Why isn\u0027t this checking network.segments?","commit_id":"a670ad9fa27ce92bddeee36424c7c0f088e779f0"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"ea239d366d332fa36a38546273087f6efe93303a","unresolved":true,"context_lines":[{"line_number":217,"context_line":"                   \u0027mtu\u0027: network.mtu}"},{"line_number":218,"context_line":"            # Plugin segment is activated globally, the tests is asserting the"},{"line_number":219,"context_line":"            # return."},{"line_number":220,"context_line":"            if non_local_subnets:"},{"line_number":221,"context_line":"                ret[\u0027segments\u0027] \u003d [{"},{"line_number":222,"context_line":"                    \u0027id\u0027: segment.id,"},{"line_number":223,"context_line":"                    \u0027network_id\u0027: segment.network_id,"}],"source_content_type":"text/x-python","patch_set":11,"id":"83a8d1a7_82528cc8","line":220,"in_reply_to":"6d806101_8e854920","updated":"2023-05-22 10:48:39.000000000","message":"Hum I\u0027m not sure to understand. network.segments is basically waht we try to build.","commit_id":"a670ad9fa27ce92bddeee36424c7c0f088e779f0"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"64689141877fa51d3d1902aea3c9273ad4901701","unresolved":true,"context_lines":[{"line_number":228,"context_line":"                    \u0027is_dynamic\u0027: segment.is_dynamic,"},{"line_number":229,"context_line":"                    \u0027segment_index\u0027: segment.segment_index,"},{"line_number":230,"context_line":"                    \u0027hosts\u0027: segment.hosts"},{"line_number":231,"context_line":"                } for segment in network.segments]"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"            return ret"},{"line_number":234,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"826864c2_ec8a220f","line":231,"range":{"start_line":231,"start_character":22,"end_line":231,"end_character":49},"updated":"2023-05-22 14:17:24.000000000","message":"network.segments is what you\u0027re iterating to build this list, it is not being built. It would also basically mimic what the rpc code does now.","commit_id":"a670ad9fa27ce92bddeee36424c7c0f088e779f0"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8c753199c2e9cfc5acfc0da5d95272c6d0e4076d","unresolved":true,"context_lines":[{"line_number":228,"context_line":"                    \u0027is_dynamic\u0027: segment.is_dynamic,"},{"line_number":229,"context_line":"                    \u0027segment_index\u0027: segment.segment_index,"},{"line_number":230,"context_line":"                    \u0027hosts\u0027: segment.hosts"},{"line_number":231,"context_line":"                } for segment in network.segments]"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"            return ret"},{"line_number":234,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"4f93ca54_6a40ef23","line":231,"range":{"start_line":231,"start_character":22,"end_line":231,"end_character":49},"in_reply_to":"826864c2_ec8a220f","updated":"2023-05-22 16:00:14.000000000","message":"This is fine, it was just slightly different from the RPC code that I had to think more about it :)","commit_id":"a670ad9fa27ce92bddeee36424c7c0f088e779f0"}]}
