)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"8518cfa7ee15c6d279d6e437511eb98cbb58d517","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b9fbd880_22e802e1","updated":"2022-05-11 10:25:08.000000000","message":"recheck","commit_id":"882afa31633dd5e40e0f9d341ac4b579b1f92f0f"},{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"36cb8351ef7b104a19bac7487a11044542b25641","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"eaa00219_0306bc5a","updated":"2022-05-12 01:57:09.000000000","message":"recheck","commit_id":"e532e73dbf00f1fa19a568953be862c99b60cc3a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a23df1b800a6d0fceb8a1374784151ba3b90b2b4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"fdc7835b_ab649532","updated":"2022-05-11 15:24:13.000000000","message":"recheck","commit_id":"e532e73dbf00f1fa19a568953be862c99b60cc3a"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"bd8e57a707ca2d9ec3a375c013716b1c908e2a25","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"f660a176_bcc80ad6","updated":"2022-05-16 12:32:25.000000000","message":"Sorry for the late idea, lemme know what you think. I am good with the patch as-is but I think we could reduce that list and just use the normalized options from OVN instead. That would make more sense to me IMHO.","commit_id":"3baad63deeb5ef5fed7fc092df30341e1df63009"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"8c359e6b35cc82a5fe5d0ab3fac88c0a9ff4acc9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3dddcc4d_1be1708c","updated":"2022-05-16 14:25:51.000000000","message":"Looks great! Thank you","commit_id":"18c32e4339cbcb0993d9c162e2715f6fcfa932cc"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"8a6d960a0b822a621f1f1ea06e916b2cadc75c93","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"7937c27f_00f843a0","updated":"2022-05-17 11:28:49.000000000","message":"ohkk so dhcp_domain was already taken care off in past https://review.opendev.org/c/openstack/networking-ovn/+/660423","commit_id":"18c32e4339cbcb0993d9c162e2715f6fcfa932cc"}],"neutron/common/ovn/utils.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"38c1288f717c1a3ad97cb26c8f42e1446a62f134","unresolved":true,"context_lines":[{"line_number":193,"context_line":"                            {\u0027opt_name\u0027: edo[\u0027opt_name\u0027], \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":194,"context_line":"                continue"},{"line_number":195,"context_line":"            if edo[\u0027opt_name\u0027] in constants.OVN_STR_TYPE_DHCP_OPTS:"},{"line_number":196,"context_line":"                if \u0027\"\u0027 in edo[\u0027opt_value\u0027]:"},{"line_number":197,"context_line":"                    LOG.warning(\u0027The DHCP value %(opt_value)s \u0027"},{"line_number":198,"context_line":"                                \u0027has quotes, ignoring it\u0027,"},{"line_number":199,"context_line":"                                {\u0027opt_value\u0027: edo[\u0027opt_value\u0027]})"},{"line_number":200,"context_line":"                else:"},{"line_number":201,"context_line":"                    edo[\u0027opt_value\u0027] \u003d \u0027\"%s\"\u0027 % edo[\u0027opt_value\u0027]"},{"line_number":202,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"f0a8e793_321be2f2","line":199,"range":{"start_line":196,"start_character":0,"end_line":199,"end_character":64},"updated":"2022-05-16 07:46:37.000000000","message":"I don\u0027t think we should be logging a WARNING for this. Warning\u0027s are seeing as errors and this is not an error, this just means the string already has the right value/format for it\u0027s type. I would suggest something like this:\n\ndef is_dhcp_option_quoted(opt):\n    return opt.startswith(\u0027\"\u0027) and opt.endswith(\u0027\"\u0027)\n\n...\n\nif not is_dhcp_option_quoted(opt[\u0027opt_value\u0027]):\n    edo[\u0027opt_value\u0027] \u003d \u0027\"%s\"\u0027 % edo[\u0027opt_value\u0027]\n\n...","commit_id":"e532e73dbf00f1fa19a568953be862c99b60cc3a"},{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"b2fff2bc2900b08fffc2dfc328ce5654799ce9aa","unresolved":false,"context_lines":[{"line_number":193,"context_line":"                            {\u0027opt_name\u0027: edo[\u0027opt_name\u0027], \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":194,"context_line":"                continue"},{"line_number":195,"context_line":"            if edo[\u0027opt_name\u0027] in constants.OVN_STR_TYPE_DHCP_OPTS:"},{"line_number":196,"context_line":"                if \u0027\"\u0027 in edo[\u0027opt_value\u0027]:"},{"line_number":197,"context_line":"                    LOG.warning(\u0027The DHCP value %(opt_value)s \u0027"},{"line_number":198,"context_line":"                                \u0027has quotes, ignoring it\u0027,"},{"line_number":199,"context_line":"                                {\u0027opt_value\u0027: edo[\u0027opt_value\u0027]})"},{"line_number":200,"context_line":"                else:"},{"line_number":201,"context_line":"                    edo[\u0027opt_value\u0027] \u003d \u0027\"%s\"\u0027 % edo[\u0027opt_value\u0027]"},{"line_number":202,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"d186015d_078578f2","line":199,"range":{"start_line":196,"start_character":0,"end_line":199,"end_character":64},"in_reply_to":"f0a8e793_321be2f2","updated":"2022-05-16 08:03:37.000000000","message":"Done","commit_id":"e532e73dbf00f1fa19a568953be862c99b60cc3a"},{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"13f6e69a65625af1d5adde057ea5c1df10d6b8ed","unresolved":true,"context_lines":[{"line_number":193,"context_line":"                            {\u0027opt_name\u0027: edo[\u0027opt_name\u0027], \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":194,"context_line":"                continue"},{"line_number":195,"context_line":"            if edo[\u0027opt_name\u0027] in constants.OVN_STR_TYPE_DHCP_OPTS:"},{"line_number":196,"context_line":"                if \u0027\"\u0027 in edo[\u0027opt_value\u0027]:"},{"line_number":197,"context_line":"                    LOG.warning(\u0027The DHCP value %(opt_value)s \u0027"},{"line_number":198,"context_line":"                                \u0027has quotes, ignoring it\u0027,"},{"line_number":199,"context_line":"                                {\u0027opt_value\u0027: edo[\u0027opt_value\u0027]})"},{"line_number":200,"context_line":"                else:"},{"line_number":201,"context_line":"                    edo[\u0027opt_value\u0027] \u003d \u0027\"%s\"\u0027 % edo[\u0027opt_value\u0027]"},{"line_number":202,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5236676e_d7564634","line":199,"range":{"start_line":196,"start_character":0,"end_line":199,"end_character":64},"in_reply_to":"f0a8e793_321be2f2","updated":"2022-05-16 08:01:27.000000000","message":"yeah, good suggest! I will put a patch to update it.","commit_id":"e532e73dbf00f1fa19a568953be862c99b60cc3a"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3928632c44fcff73f6f04b226d9b7bbd7fc7dd8c","unresolved":true,"context_lines":[{"line_number":196,"context_line":"                            \u0027is not suppported by OVN, ignoring it\u0027,"},{"line_number":197,"context_line":"                            {\u0027opt_name\u0027: edo[\u0027opt_name\u0027], \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":198,"context_line":"                continue"},{"line_number":199,"context_line":"            if edo[\u0027opt_name\u0027] in constants.OVN_STR_TYPE_DHCP_OPTS and \\"},{"line_number":200,"context_line":"                    not is_dhcp_option_quoted(opt[\u0027opt_value\u0027]):"},{"line_number":201,"context_line":"                edo[\u0027opt_value\u0027] \u003d \u0027\"%s\"\u0027 % edo[\u0027opt_value\u0027]"},{"line_number":202,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"d987766e_01965213","line":199,"range":{"start_line":199,"start_character":71,"end_line":199,"end_character":72},"updated":"2022-05-16 08:15:33.000000000","message":"nit: Line should be wrapped around parenthesis instead of backslash for continuation as per PEP8 [0]\n\n\"\nThe preferred way of wrapping long lines is by using Python’s implied line continuation inside parentheses, brackets and braces. Long lines can be broken over multiple lines by wrapping expressions in parentheses. These should be used in preference to using a backslash for line continuation.\n\"\n\n[0] https://peps.python.org/pep-0008/#maximum-line-length","commit_id":"fe433b8ce3d1a6d4b3f6f9ed439478b5ba9f2a53"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ea227b73dbd191e9b01889cd4ee813fc1151df99","unresolved":false,"context_lines":[{"line_number":196,"context_line":"                            \u0027is not suppported by OVN, ignoring it\u0027,"},{"line_number":197,"context_line":"                            {\u0027opt_name\u0027: edo[\u0027opt_name\u0027], \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":198,"context_line":"                continue"},{"line_number":199,"context_line":"            if edo[\u0027opt_name\u0027] in constants.OVN_STR_TYPE_DHCP_OPTS and \\"},{"line_number":200,"context_line":"                    not is_dhcp_option_quoted(opt[\u0027opt_value\u0027]):"},{"line_number":201,"context_line":"                edo[\u0027opt_value\u0027] \u003d \u0027\"%s\"\u0027 % edo[\u0027opt_value\u0027]"},{"line_number":202,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"f9d39a97_d008b965","line":199,"range":{"start_line":199,"start_character":71,"end_line":199,"end_character":72},"in_reply_to":"8eef4224_0daa53a3","updated":"2022-05-16 12:35:34.000000000","message":"Done","commit_id":"fe433b8ce3d1a6d4b3f6f9ed439478b5ba9f2a53"},{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"b0fcd3d8391cbdb8726420f108f195ddade115bc","unresolved":false,"context_lines":[{"line_number":196,"context_line":"                            \u0027is not suppported by OVN, ignoring it\u0027,"},{"line_number":197,"context_line":"                            {\u0027opt_name\u0027: edo[\u0027opt_name\u0027], \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":198,"context_line":"                continue"},{"line_number":199,"context_line":"            if edo[\u0027opt_name\u0027] in constants.OVN_STR_TYPE_DHCP_OPTS and \\"},{"line_number":200,"context_line":"                    not is_dhcp_option_quoted(opt[\u0027opt_value\u0027]):"},{"line_number":201,"context_line":"                edo[\u0027opt_value\u0027] \u003d \u0027\"%s\"\u0027 % edo[\u0027opt_value\u0027]"},{"line_number":202,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1075108b_d148ac3e","line":199,"range":{"start_line":199,"start_character":71,"end_line":199,"end_character":72},"in_reply_to":"d987766e_01965213","updated":"2022-05-16 12:45:26.000000000","message":"Done","commit_id":"fe433b8ce3d1a6d4b3f6f9ed439478b5ba9f2a53"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"313da45672c5e80a2982368fb7ca0c4ba32b22df","unresolved":true,"context_lines":[{"line_number":196,"context_line":"                            \u0027is not suppported by OVN, ignoring it\u0027,"},{"line_number":197,"context_line":"                            {\u0027opt_name\u0027: edo[\u0027opt_name\u0027], \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":198,"context_line":"                continue"},{"line_number":199,"context_line":"            if edo[\u0027opt_name\u0027] in constants.OVN_STR_TYPE_DHCP_OPTS and \\"},{"line_number":200,"context_line":"                    not is_dhcp_option_quoted(opt[\u0027opt_value\u0027]):"},{"line_number":201,"context_line":"                edo[\u0027opt_value\u0027] \u003d \u0027\"%s\"\u0027 % edo[\u0027opt_value\u0027]"},{"line_number":202,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"8eef4224_0daa53a3","line":199,"range":{"start_line":199,"start_character":71,"end_line":199,"end_character":72},"in_reply_to":"d987766e_01965213","updated":"2022-05-16 12:34:54.000000000","message":"The OVN_STR_TYPE_DHCP_OPTS in constants.py would be:\n\n OVN_STR_TYPE_DHCP_OPTS \u003d [\n     \u0027domain_name\u0027,\n     \u0027bootfile_name\u0027,\n     \u0027path_prefix\u0027,\n     \u0027wpad\u0027,\n     \u0027tftp_server\u0027]","commit_id":"fe433b8ce3d1a6d4b3f6f9ed439478b5ba9f2a53"},{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"b0fcd3d8391cbdb8726420f108f195ddade115bc","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                            {\u0027opt_name\u0027: edo[\u0027opt_name\u0027], \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":198,"context_line":"                continue"},{"line_number":199,"context_line":"            if (edo[\u0027opt_name\u0027] in constants.OVN_STR_TYPE_DHCP_OPTS"},{"line_number":200,"context_line":"                    and not is_dhcp_option_quoted(edo[\u0027opt_value\u0027])):"},{"line_number":201,"context_line":"                edo[\u0027opt_value\u0027] \u003d \u0027\"%s\"\u0027 % edo[\u0027opt_value\u0027]"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"            opt \u003d mapping[edo[\u0027opt_name\u0027]]"}],"source_content_type":"text/x-python","patch_set":7,"id":"59d3221f_aeee4156","line":200,"in_reply_to":"dbbf73c5_f7d177b0","updated":"2022-05-16 12:45:26.000000000","message":"\u003e pep8: W503 line break before binary operator\n\nPlease fix.","commit_id":"c70b3db46de0a5a3278fe1974344655ccfa38f83"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"bd8e57a707ca2d9ec3a375c013716b1c908e2a25","unresolved":true,"context_lines":[{"line_number":196,"context_line":"                            \u0027is not suppported by OVN, ignoring it\u0027,"},{"line_number":197,"context_line":"                            {\u0027opt_name\u0027: edo[\u0027opt_name\u0027], \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":198,"context_line":"                continue"},{"line_number":199,"context_line":"            if (edo[\u0027opt_name\u0027] in constants.OVN_STR_TYPE_DHCP_OPTS and"},{"line_number":200,"context_line":"                    not is_dhcp_option_quoted(edo[\u0027opt_value\u0027])):"},{"line_number":201,"context_line":"                edo[\u0027opt_value\u0027] \u003d \u0027\"%s\"\u0027 % edo[\u0027opt_value\u0027]"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"            opt \u003d mapping[edo[\u0027opt_name\u0027]]"},{"line_number":204,"context_line":"            lsp_dhcp_opts[opt] \u003d edo[\u0027opt_value\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"e1a0611c_8c6d1591","line":201,"range":{"start_line":199,"start_character":0,"end_line":201,"end_character":60},"updated":"2022-05-16 12:32:25.000000000","message":"I was actually thinking about this change, wouldn\u0027t be better to do it on the mapped version of the config option instead ?\n\nThat way the OVN_STR_TYPE_DHCP_OPTS will have half of it\u0027s size as the option is already normalized for OVN (no more \u002767\u0027 and \u0027bootfile-name\u0027 in the same list)\n\nWhat I mean is something like:\n\n opt \u003d mapping[edo[\u0027opt_name\u0027]]\n\n if (opt in constants.OVN_STR_TYPE_DHCP_OPTS and\n        not is_dhcp_option_quoted(edo[\u0027opt_value\u0027])):\n    edo[\u0027opt_value\u0027] \u003d \u0027\"%s\"\u0027 % edo[\u0027opt_value\u0027]\n\n lsp_dhcp_opts[opt] \u003d edo[\u0027opt_value\u0027]","commit_id":"3baad63deeb5ef5fed7fc092df30341e1df63009"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ea227b73dbd191e9b01889cd4ee813fc1151df99","unresolved":true,"context_lines":[{"line_number":196,"context_line":"                            \u0027is not suppported by OVN, ignoring it\u0027,"},{"line_number":197,"context_line":"                            {\u0027opt_name\u0027: edo[\u0027opt_name\u0027], \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":198,"context_line":"                continue"},{"line_number":199,"context_line":"            if (edo[\u0027opt_name\u0027] in constants.OVN_STR_TYPE_DHCP_OPTS and"},{"line_number":200,"context_line":"                    not is_dhcp_option_quoted(edo[\u0027opt_value\u0027])):"},{"line_number":201,"context_line":"                edo[\u0027opt_value\u0027] \u003d \u0027\"%s\"\u0027 % edo[\u0027opt_value\u0027]"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"            opt \u003d mapping[edo[\u0027opt_name\u0027]]"},{"line_number":204,"context_line":"            lsp_dhcp_opts[opt] \u003d edo[\u0027opt_value\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"ee5add89_de947a38","line":201,"range":{"start_line":199,"start_character":0,"end_line":201,"end_character":60},"in_reply_to":"e1a0611c_8c6d1591","updated":"2022-05-16 12:35:34.000000000","message":"The OVN_STR_TYPE_DHCP_OPTS in constants.py would be:\n\n OVN_STR_TYPE_DHCP_OPTS \u003d [\n     \u0027domain_name\u0027,\n     \u0027bootfile_name\u0027,\n     \u0027path_prefix\u0027,\n     \u0027wpad\u0027,\n     \u0027tftp_server\u0027]","commit_id":"3baad63deeb5ef5fed7fc092df30341e1df63009"},{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"b0fcd3d8391cbdb8726420f108f195ddade115bc","unresolved":false,"context_lines":[{"line_number":196,"context_line":"                            \u0027is not suppported by OVN, ignoring it\u0027,"},{"line_number":197,"context_line":"                            {\u0027opt_name\u0027: edo[\u0027opt_name\u0027], \u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":198,"context_line":"                continue"},{"line_number":199,"context_line":"            if (edo[\u0027opt_name\u0027] in constants.OVN_STR_TYPE_DHCP_OPTS and"},{"line_number":200,"context_line":"                    not is_dhcp_option_quoted(edo[\u0027opt_value\u0027])):"},{"line_number":201,"context_line":"                edo[\u0027opt_value\u0027] \u003d \u0027\"%s\"\u0027 % edo[\u0027opt_value\u0027]"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"            opt \u003d mapping[edo[\u0027opt_name\u0027]]"},{"line_number":204,"context_line":"            lsp_dhcp_opts[opt] \u003d edo[\u0027opt_value\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"cc63e2c7_c05fd74d","line":201,"range":{"start_line":199,"start_character":0,"end_line":201,"end_character":60},"in_reply_to":"ee5add89_de947a38","updated":"2022-05-16 12:45:26.000000000","message":"Thanks for your suggests. OK, let me put a patch to update it.","commit_id":"3baad63deeb5ef5fed7fc092df30341e1df63009"}]}
