)]}'
{"neutron/agent/linux/dhcp.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f4c9870bc1564e875ec869b81cecd7f59ab3d3d9","unresolved":false,"context_lines":[{"line_number":1126,"context_line":"            pattern \u003d r\"(encap:(\\d+),)?(.*)$\""},{"line_number":1127,"context_line":"            matches \u003d re.match(pattern, option)"},{"line_number":1128,"context_line":"            encap \u003d matches.groups()[0]"},{"line_number":1129,"context_line":"            option \u003d matches.groups()[2]"},{"line_number":1130,"context_line":""},{"line_number":1131,"context_line":"            if not option.isdigit():"},{"line_number":1132,"context_line":"                option \u003d \u0027option:%s\u0027 % option"}],"source_content_type":"text/x-python","patch_set":1,"id":"5faad753_823cc6c8","line":1129,"updated":"2019-09-11 17:56:43.000000000","message":"We\u0027ve now trashed option, so if neither case is true below that will cause problems on L1138, right?","commit_id":"2c95b8336b77d9bcbe1b57b9d79524d94b65a9ae"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"915b0a42a6f5f1996ee8a49dbf2bed4b3ccb6a70","unresolved":false,"context_lines":[{"line_number":1126,"context_line":"            pattern \u003d r\"(encap:(\\d+),)?(.*)$\""},{"line_number":1127,"context_line":"            matches \u003d re.match(pattern, option)"},{"line_number":1128,"context_line":"            encap \u003d matches.groups()[0]"},{"line_number":1129,"context_line":"            option \u003d matches.groups()[2]"},{"line_number":1130,"context_line":""},{"line_number":1131,"context_line":"            if not option.isdigit():"},{"line_number":1132,"context_line":"                option \u003d \u0027option:%s\u0027 % option"}],"source_content_type":"text/x-python","patch_set":1,"id":"5faad753_7674c3fe","line":1129,"in_reply_to":"5faad753_6ee73114","updated":"2019-09-13 12:33:45.000000000","message":"Ack, thanks for the answer.  Looks like I was theorizing on something that couldn\u0027t happen based on the arguments that are passed.","commit_id":"2c95b8336b77d9bcbe1b57b9d79524d94b65a9ae"},{"author":{"_account_id":13777,"name":"Nicolas Trangez","email":"ikke@nicolast.be","username":"nicolast"},"change_message_id":"7ba4b987577c30af44cd18f69085c1c435e30c16","unresolved":false,"context_lines":[{"line_number":1126,"context_line":"            pattern \u003d r\"(encap:(\\d+),)?(.*)$\""},{"line_number":1127,"context_line":"            matches \u003d re.match(pattern, option)"},{"line_number":1128,"context_line":"            encap \u003d matches.groups()[0]"},{"line_number":1129,"context_line":"            option \u003d matches.groups()[2]"},{"line_number":1130,"context_line":""},{"line_number":1131,"context_line":"            if not option.isdigit():"},{"line_number":1132,"context_line":"                option \u003d \u0027option:%s\u0027 % option"}],"source_content_type":"text/x-python","patch_set":1,"id":"5faad753_6ee73114","line":1129,"in_reply_to":"5faad753_823cc6c8","updated":"2019-09-11 21:44:43.000000000","message":"I don\u0027t believe so, no: if the option name *doesn\u0027t* start with `(encap:(\\d+),)`, then the match is everything after that optional capture, i.e. the whole string. So, `option \u003d option`, in a sense.\n\nIt\u0027s not how I would write this code myself, to be honest. However, I took the approach that was/is already present in the code to match on `tag:...` earlier in the function.\n\nAlso, I\u0027d expect unit-tests to fail if option-without-encap would be captured/handled incorrectly?","commit_id":"2c95b8336b77d9bcbe1b57b9d79524d94b65a9ae"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f4c9870bc1564e875ec869b81cecd7f59ab3d3d9","unresolved":false,"context_lines":[{"line_number":1132,"context_line":"                option \u003d \u0027option:%s\u0027 % option"},{"line_number":1133,"context_line":""},{"line_number":1134,"context_line":"            if encap:"},{"line_number":1135,"context_line":"                option \u003d \u0027%s,%s\u0027 % (encap[:-1], option)"},{"line_number":1136,"context_line":""},{"line_number":1137,"context_line":"        if extra_tag:"},{"line_number":1138,"context_line":"            tags \u003d (\u0027tag:\u0027 + tag, extra_tag[:-1], \u0027%s\u0027 % option)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5faad753_024e966e","line":1135,"updated":"2019-09-11 17:56:43.000000000","message":"Is this just the original option, i.e. before L1129?","commit_id":"2c95b8336b77d9bcbe1b57b9d79524d94b65a9ae"},{"author":{"_account_id":13777,"name":"Nicolas Trangez","email":"ikke@nicolast.be","username":"nicolast"},"change_message_id":"7ba4b987577c30af44cd18f69085c1c435e30c16","unresolved":false,"context_lines":[{"line_number":1132,"context_line":"                option \u003d \u0027option:%s\u0027 % option"},{"line_number":1133,"context_line":""},{"line_number":1134,"context_line":"            if encap:"},{"line_number":1135,"context_line":"                option \u003d \u0027%s,%s\u0027 % (encap[:-1], option)"},{"line_number":1136,"context_line":""},{"line_number":1137,"context_line":"        if extra_tag:"},{"line_number":1138,"context_line":"            tags \u003d (\u0027tag:\u0027 + tag, extra_tag[:-1], \u0027%s\u0027 % option)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5faad753_8ecb8d70","line":1135,"in_reply_to":"5faad753_024e966e","updated":"2019-09-11 21:44:43.000000000","message":"Yes, except that we kinda validated the argument to `encap:...` is one-or-more digits, which it needs to be anyway to be a valid argument to dnsmasq\u0027s `dhcp-option`.\n\nAgain, this is likely not how I\u0027d write this code myself, but I repeated the pattern used for `tag:...` parsing above.","commit_id":"2c95b8336b77d9bcbe1b57b9d79524d94b65a9ae"}],"neutron/tests/unit/agent/linux/test_dhcp.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"fcdb333396c56c2ad88187354d922a11b8fdc739","unresolved":false,"context_lines":[{"line_number":1966,"context_line":"            \u0027169.254.169.254/32,192.168.0.1,0.0.0.0/0,192.168.0.1\\n\u0027"},{"line_number":1967,"context_line":"            \u0027tag:tag0,249,20.0.0.1/24,20.0.0.1,\u0027"},{"line_number":1968,"context_line":"            \u0027169.254.169.254/32,192.168.0.1,0.0.0.0/0,192.168.0.1\\n\u0027"},{"line_number":1969,"context_line":"            \u0027tag:tag0,option:router,192.168.0.1\\n\u0027"},{"line_number":1970,"context_line":"            \u0027tag:eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee,\u0027"},{"line_number":1971,"context_line":"            \u0027encap:175,81,autoboot\u0027)"},{"line_number":1972,"context_line":"        expected \u003d expected.lstrip()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_45d6f328","line":1969,"updated":"2020-02-05 14:25:11.000000000","message":"since some time we are not using \"tag{0,1,...}\" in opts file but we are using \"subnet-\u003cuuid\u003e\" or \"port-\u003cuuid\u003e\" so You need to change it in Your tests","commit_id":"3267b5b79b88acf6fe39afa364e40505ae51aa17"}]}
