)]}'
{"neutron/services/segments/plugin.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b1abddac7967a364bff4490c27e47108cb7b236c","unresolved":false,"context_lines":[{"line_number":304,"context_line":"            total +\u003d int(netaddr.IPAddress(pool[\u0027end\u0027]) -"},{"line_number":305,"context_line":"                         netaddr.IPAddress(pool[\u0027start\u0027])) + 1"},{"line_number":306,"context_line":"        if total:"},{"line_number":307,"context_line":"            if subnet.get(\u0027gateway_ip\u0027):"},{"line_number":308,"context_line":"                total +\u003d 1"},{"line_number":309,"context_line":"                reserved +\u003d 1"},{"line_number":310,"context_line":"            if subnet.get(\u0027enable_dhcp\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_98280487","line":307,"range":{"start_line":307,"start_character":15,"end_line":307,"end_character":40},"updated":"2020-03-25 19:17:57.000000000","message":"I don\u0027t understand how this happened. \"subnet\" is a dict from a subnet OVO. \"gateway_ip\" field is defined in this OVO since 2016.\n\nI requested in the LP bug, if possible, more info, logs or a way to reproduce it.\n\nIn any case, this patch should be fine.","commit_id":"07b015d7897d6cea48eec1fdd02c9e19d4990973"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2c66c42da9b746b9684eb1478cb0f1d08c0fc476","unresolved":false,"context_lines":[{"line_number":304,"context_line":"            total +\u003d int(netaddr.IPAddress(pool[\u0027end\u0027]) -"},{"line_number":305,"context_line":"                         netaddr.IPAddress(pool[\u0027start\u0027])) + 1"},{"line_number":306,"context_line":"        if total:"},{"line_number":307,"context_line":"            if subnet.get(\u0027gateway_ip\u0027):"},{"line_number":308,"context_line":"                total +\u003d 1"},{"line_number":309,"context_line":"                reserved +\u003d 1"},{"line_number":310,"context_line":"            if subnet.get(\u0027enable_dhcp\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_f81f906d","line":307,"range":{"start_line":307,"start_character":15,"end_line":307,"end_character":40},"in_reply_to":"df33271e_98280487","updated":"2020-03-25 19:50:58.000000000","message":"Rodolfo - I would agree it doesn\u0027t seem like it should happen, but Ironic can trigger this using stable/train code just creating/updating/deleting resources for a routed network.\n\nIf you look at the data in https://bugs.launchpad.net/neutron/+bug/1868726 (a duplicate) there is one subnet that didn\u0027t have a gateway_ip defined, but I wouldn\u0027t think this should trigger this failure.\n\nThe rest of this code here was using .get() for the gateway_ip just not this one case, so my guess it was just an oversight.  I made the other changes below being cautious, since I didn\u0027t want to be back here next week fixing another bug.","commit_id":"07b015d7897d6cea48eec1fdd02c9e19d4990973"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"fad3187658f5af884e043da8fa8147a37a623007","unresolved":false,"context_lines":[{"line_number":304,"context_line":"            total +\u003d int(netaddr.IPAddress(pool[\u0027end\u0027]) -"},{"line_number":305,"context_line":"                         netaddr.IPAddress(pool[\u0027start\u0027])) + 1"},{"line_number":306,"context_line":"        if total:"},{"line_number":307,"context_line":"            if subnet.get(\u0027gateway_ip\u0027):"},{"line_number":308,"context_line":"                total +\u003d 1"},{"line_number":309,"context_line":"                reserved +\u003d 1"},{"line_number":310,"context_line":"            if subnet.get(\u0027enable_dhcp\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_1b17c5a5","line":307,"range":{"start_line":307,"start_character":15,"end_line":307,"end_character":40},"in_reply_to":"df33271e_f81f906d","updated":"2020-03-26 10:14:16.000000000","message":"Ahh is Ironic which is passing this dict. Ok, I didn\u0027t dig into Ironic\u0027s code so I don\u0027t know what is happening there.\n\nThanks for the explanation!","commit_id":"07b015d7897d6cea48eec1fdd02c9e19d4990973"}]}
