)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"8aebe8460ae35e21fa75169bdaf64f40fd0ae7a8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixed pass wrong cidr check during create subnet"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"neutron should vertify the subnet create request, and check whether"},{"line_number":10,"context_line":"cidr of subnet which will be created is valid.This fix return error"},{"line_number":11,"context_line":"when the cidr of subnet like \u00270.*.*.*/*\u0027."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3a50d1a3_9b712be3","line":9,"updated":"2015-07-21 12:38:07.000000000","message":"verify","commit_id":"4f6af3fb294578c9e85be81687a20871f63753ab"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"e8d7ac3905425064949e38ba2e14840734f1a551","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixed pass wrong cidr check during create subnet"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"neutron should vertify the subnet create request, and check whether"},{"line_number":10,"context_line":"cidr of subnet which will be created is valid.This fix return error"},{"line_number":11,"context_line":"when the cidr of subnet like \u00270.*.*.*/*\u0027."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3a50d1a3_dc1e490b","line":9,"in_reply_to":"3a50d1a3_9b712be3","updated":"2015-07-23 12:21:28.000000000","message":"Thank you very much for review.Done","commit_id":"4f6af3fb294578c9e85be81687a20871f63753ab"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"c99f562256eda3cf5fdb2d9b628864ad1fe09d12","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"neutron should verify the subnet create request, and check whether"},{"line_number":10,"context_line":"cidr of subnet which will be created is valid.This fix return error"},{"line_number":11,"context_line":"when the cidr of subnet like \u00270.*.*.*/*\u0027."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id1c51fe6070e09325cd83218ff56a69f8a3dd947"},{"line_number":14,"context_line":"Closes-Bug: #1471957"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3a50d1a3_8d3946db","line":11,"updated":"2015-07-24 02:45:47.000000000","message":"You mean \"when the cidr of subnet like \u00270.*.*.*/*\u0027 except 0.0.0.0/0.\"?","commit_id":"503bbdff8b58c9c8bebd756f0b515118a72d69ea"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"cc21a45121d69316a7d2571afe32fdd177c9bb2d","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"neutron should verify the subnet create request, and check whether"},{"line_number":10,"context_line":"cidr of subnet which will be created is valid.This fix return error"},{"line_number":11,"context_line":"when the cidr of subnet like \u00270.*.*.*/*\u0027."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id1c51fe6070e09325cd83218ff56a69f8a3dd947"},{"line_number":14,"context_line":"Closes-Bug: #1471957"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3a50d1a3_d43b5237","line":11,"in_reply_to":"3a50d1a3_8d3946db","updated":"2015-07-24 05:44:47.000000000","message":"Thanks.The check about prefix will be done by the following logic process.","commit_id":"503bbdff8b58c9c8bebd756f0b515118a72d69ea"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"b550bca49aac4ac3cf78c50eccd3b970206b89cf","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"neutron should verify the subnet create request, and check whether"},{"line_number":10,"context_line":"cidr of subnet which will be created is valid.This fix return error"},{"line_number":11,"context_line":"when the cidr of subnet like \u00270.*.*.*/*\u0027."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id1c51fe6070e09325cd83218ff56a69f8a3dd947"},{"line_number":14,"context_line":"Closes-Bug: #1471957"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3a50d1a3_377398b6","line":11,"in_reply_to":"3a50d1a3_d43b5237","updated":"2015-07-24 06:11:48.000000000","message":"I got it.","commit_id":"503bbdff8b58c9c8bebd756f0b515118a72d69ea"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"bc4add479d145596d4b14ea7e5121cf5553679ce","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"neutron should verify the subnet create request, and check whether"},{"line_number":10,"context_line":"cidr of subnet which will be created is valid.This fix return error"},{"line_number":11,"context_line":"when the cidr of subnet like \u00270.*.*.*/*\u0027."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id1c51fe6070e09325cd83218ff56a69f8a3dd947"},{"line_number":14,"context_line":"Closes-Bug: #1471957"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3a50d1a3_83bb4475","line":11,"updated":"2015-07-24 12:08:06.000000000","message":"you should clarify that it concerns 0.*.*.*/* except 0.0.0.0/0","commit_id":"a562b04d742d584dfbdb19c53a1ec16783d1f384"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"ceab70ddbbd5cb1203bec1f96ab4a18c5c5448ad","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"neutron should verify the subnet create request, and check whether"},{"line_number":10,"context_line":"cidr of subnet which will be created is valid.This fix return error"},{"line_number":11,"context_line":"when the cidr of subnet like \u00270.*.*.*/*\u0027."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id1c51fe6070e09325cd83218ff56a69f8a3dd947"},{"line_number":14,"context_line":"Closes-Bug: #1471957"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3a50d1a3_3785aa58","line":11,"in_reply_to":"3a50d1a3_83bb4475","updated":"2015-07-24 23:52:18.000000000","message":"Thank you for review.Yeah, your suggestion will make this patch more specific.Thank you.I will add it in.","commit_id":"a562b04d742d584dfbdb19c53a1ec16783d1f384"}],"neutron/api/v2/attributes.py":[{"author":{"_account_id":1923,"name":"Mohammad Banikazemi","email":"mbanikazemi@gmail.com","username":"mb-s"},"change_message_id":"e25438ade6ea2de85c4edc0e7cb9193519a39248","unresolved":false,"context_lines":[{"line_number":324,"context_line":"        elif ((re.match(r\"^0\\.*.*\", data) and"},{"line_number":325,"context_line":"               net.version \u003d\u003d constants.IP_VERSION_4 and"},{"line_number":326,"context_line":"               data !\u003d constants.IPv4_ANY)):"},{"line_number":327,"context_line":"            msg \u003d _(\" \u0027%s\u0027 is invalid cidr value\") % data"},{"line_number":328,"context_line":"        else:"},{"line_number":329,"context_line":"            return"},{"line_number":330,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_44178554","line":327,"updated":"2015-07-17 02:29:23.000000000","message":"is an invalid","commit_id":"7589cebce0b88acd0ef92f9cf1f22f0d49d7d15f"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"c37613004cf0744f974f9b26377cad40dee69dcd","unresolved":false,"context_lines":[{"line_number":324,"context_line":"        elif ((re.match(r\"^0\\.*.*\", data) and"},{"line_number":325,"context_line":"               net.version \u003d\u003d constants.IP_VERSION_4 and"},{"line_number":326,"context_line":"               data !\u003d constants.IPv4_ANY)):"},{"line_number":327,"context_line":"            msg \u003d _(\" \u0027%s\u0027 is invalid cidr value\") % data"},{"line_number":328,"context_line":"        else:"},{"line_number":329,"context_line":"            return"},{"line_number":330,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_9b088793","line":327,"in_reply_to":"9a41bdd9_44178554","updated":"2015-07-17 03:29:45.000000000","message":"Done","commit_id":"7589cebce0b88acd0ef92f9cf1f22f0d49d7d15f"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"8aebe8460ae35e21fa75169bdaf64f40fd0ae7a8","unresolved":false,"context_lines":[{"line_number":321,"context_line":"            msg \u003d _(\"\u0027%(data)s\u0027 isn\u0027t a recognized IP subnet cidr,\""},{"line_number":322,"context_line":"                    \" \u0027%(cidr)s\u0027 is recommended\") % {\"data\": data,"},{"line_number":323,"context_line":"                                                     \"cidr\": net.cidr}"},{"line_number":324,"context_line":"        elif ((re.match(r\"^0\\.*.*\", data) and"},{"line_number":325,"context_line":"               net.version \u003d\u003d constants.IP_VERSION_4 and"},{"line_number":326,"context_line":"               data !\u003d constants.IPv4_ANY)):"},{"line_number":327,"context_line":"            msg \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % data"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a50d1a3_1eaae970","line":324,"updated":"2015-07-21 12:38:07.000000000","message":"It\u0027s not working with 00.0.0.0/24, prefer:\n\n  if (str(net).startswith(\u00270.\u0027) and ...)","commit_id":"4f6af3fb294578c9e85be81687a20871f63753ab"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"e8d7ac3905425064949e38ba2e14840734f1a551","unresolved":false,"context_lines":[{"line_number":321,"context_line":"            msg \u003d _(\"\u0027%(data)s\u0027 isn\u0027t a recognized IP subnet cidr,\""},{"line_number":322,"context_line":"                    \" \u0027%(cidr)s\u0027 is recommended\") % {\"data\": data,"},{"line_number":323,"context_line":"                                                     \"cidr\": net.cidr}"},{"line_number":324,"context_line":"        elif ((re.match(r\"^0\\.*.*\", data) and"},{"line_number":325,"context_line":"               net.version \u003d\u003d constants.IP_VERSION_4 and"},{"line_number":326,"context_line":"               data !\u003d constants.IPv4_ANY)):"},{"line_number":327,"context_line":"            msg \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % data"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a50d1a3_17b6caf8","line":324,"in_reply_to":"3a50d1a3_1eaae970","updated":"2015-07-23 12:21:28.000000000","message":"It\u0027s a good suggestion.Thank you.I didn\u0027t realized the view you mentioned.","commit_id":"4f6af3fb294578c9e85be81687a20871f63753ab"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"c99f562256eda3cf5fdb2d9b628864ad1fe09d12","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                                                     \"cidr\": net.cidr}"},{"line_number":324,"context_line":"        elif (str(net).startswith(\u00270.\u0027) and"},{"line_number":325,"context_line":"               net.version \u003d\u003d constants.IP_VERSION_4 and"},{"line_number":326,"context_line":"               data !\u003d constants.IPv4_ANY):"},{"line_number":327,"context_line":"            msg \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % data"},{"line_number":328,"context_line":"        else:"},{"line_number":329,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a50d1a3_b2081d2f","line":326,"updated":"2015-07-24 02:45:47.000000000","message":"nit: Why do we allow subnet 0.0.0.0/0?","commit_id":"503bbdff8b58c9c8bebd756f0b515118a72d69ea"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"f7387828b6004f3c0b5e47a89d94a8196e8eee02","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                                                     \"cidr\": net.cidr}"},{"line_number":324,"context_line":"        elif (str(net).startswith(\u00270.\u0027) and"},{"line_number":325,"context_line":"               net.version \u003d\u003d constants.IP_VERSION_4 and"},{"line_number":326,"context_line":"               data !\u003d constants.IPv4_ANY):"},{"line_number":327,"context_line":"            msg \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % data"},{"line_number":328,"context_line":"        else:"},{"line_number":329,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a50d1a3_43678625","line":326,"in_reply_to":"3a50d1a3_17721cae","updated":"2015-07-24 08:23:18.000000000","message":"Yeah.It\u0027s my mistake.I will rework it.Thank you very much.","commit_id":"503bbdff8b58c9c8bebd756f0b515118a72d69ea"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"b550bca49aac4ac3cf78c50eccd3b970206b89cf","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                                                     \"cidr\": net.cidr}"},{"line_number":324,"context_line":"        elif (str(net).startswith(\u00270.\u0027) and"},{"line_number":325,"context_line":"               net.version \u003d\u003d constants.IP_VERSION_4 and"},{"line_number":326,"context_line":"               data !\u003d constants.IPv4_ANY):"},{"line_number":327,"context_line":"            msg \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % data"},{"line_number":328,"context_line":"        else:"},{"line_number":329,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a50d1a3_17721cae","line":326,"in_reply_to":"3a50d1a3_94ee2ab3","updated":"2015-07-24 06:11:48.000000000","message":"I got it.\n\nAnyway it seems pep8 test shows indent errors here.","commit_id":"503bbdff8b58c9c8bebd756f0b515118a72d69ea"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"cc21a45121d69316a7d2571afe32fdd177c9bb2d","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                                                     \"cidr\": net.cidr}"},{"line_number":324,"context_line":"        elif (str(net).startswith(\u00270.\u0027) and"},{"line_number":325,"context_line":"               net.version \u003d\u003d constants.IP_VERSION_4 and"},{"line_number":326,"context_line":"               data !\u003d constants.IPv4_ANY):"},{"line_number":327,"context_line":"            msg \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % data"},{"line_number":328,"context_line":"        else:"},{"line_number":329,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a50d1a3_94ee2ab3","line":326,"in_reply_to":"3a50d1a3_b2081d2f","updated":"2015-07-24 05:44:47.000000000","message":"Thanks for review.As 0.0.0.0/0 will be checked by prefix later(Can\u0027t create subnet which its dirs is X.X.X.X/0).So this patch won\u0027t check any X.X.X.X/0.The work will be done by the following logic process which check the prefix.","commit_id":"503bbdff8b58c9c8bebd756f0b515118a72d69ea"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"bc4add479d145596d4b14ea7e5121cf5553679ce","unresolved":false,"context_lines":[{"line_number":324,"context_line":"        elif ((str(net).startswith(\u00270.\u0027) and"},{"line_number":325,"context_line":"               net.version \u003d\u003d constants.IP_VERSION_4 and"},{"line_number":326,"context_line":"               data !\u003d constants.IPv4_ANY)):"},{"line_number":327,"context_line":"            msg \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % data"},{"line_number":328,"context_line":"        else:"},{"line_number":329,"context_line":"            return"},{"line_number":330,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a50d1a3_c3a94c26","line":327,"updated":"2015-07-24 12:08:06.000000000","message":"use:\n\n  str(net) !\u003d constants.IPv4_ANY","commit_id":"a562b04d742d584dfbdb19c53a1ec16783d1f384"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"ceab70ddbbd5cb1203bec1f96ab4a18c5c5448ad","unresolved":false,"context_lines":[{"line_number":324,"context_line":"        elif ((str(net).startswith(\u00270.\u0027) and"},{"line_number":325,"context_line":"               net.version \u003d\u003d constants.IP_VERSION_4 and"},{"line_number":326,"context_line":"               data !\u003d constants.IPv4_ANY)):"},{"line_number":327,"context_line":"            msg \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % data"},{"line_number":328,"context_line":"        else:"},{"line_number":329,"context_line":"            return"},{"line_number":330,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a50d1a3_f77e6269","line":327,"in_reply_to":"3a50d1a3_c3a94c26","updated":"2015-07-24 23:52:18.000000000","message":"Agree.Thank you.","commit_id":"a562b04d742d584dfbdb19c53a1ec16783d1f384"},{"author":{"_account_id":15736,"name":"Ritesh Anand","email":"tellrit@gmail.com","username":"ritesh"},"change_message_id":"b7900d21970d69a780f28f5169bfe7fd505e3442","unresolved":false,"context_lines":[{"line_number":320,"context_line":"                    \" \u0027%(cidr)s\u0027 is recommended\") % {\"data\": data,"},{"line_number":321,"context_line":"                                                     \"cidr\": net.cidr}"},{"line_number":322,"context_line":"        elif ((str(net).startswith(\u00270.\u0027) and"},{"line_number":323,"context_line":"               net.version \u003d\u003d constants.IP_VERSION_4 and"},{"line_number":324,"context_line":"               str(net) !\u003d constants.IPv4_ANY)):"},{"line_number":325,"context_line":"            msg \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % data"},{"line_number":326,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a4dcd0f_a5744bfd","line":323,"updated":"2015-08-04 01:34:28.000000000","message":"If (str(net).startswith(\u00270.\u0027) is True, won\u0027t (net.version \u003d\u003d constants.IP_VERSION_4) be always True ? We may avoid that condition.","commit_id":"b466a630c71b07e4b96ed1fe91e9f0ba950d0927"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"ac14fb542c381fa84698504eef309ae8b9a905a1","unresolved":false,"context_lines":[{"line_number":320,"context_line":"                    \" \u0027%(cidr)s\u0027 is recommended\") % {\"data\": data,"},{"line_number":321,"context_line":"                                                     \"cidr\": net.cidr}"},{"line_number":322,"context_line":"        elif ((str(net).startswith(\u00270.\u0027) and"},{"line_number":323,"context_line":"               net.version \u003d\u003d constants.IP_VERSION_4 and"},{"line_number":324,"context_line":"               str(net) !\u003d constants.IPv4_ANY)):"},{"line_number":325,"context_line":"            msg \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % data"},{"line_number":326,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a4dcd0f_48eb12b1","line":323,"in_reply_to":"1a4dcd0f_a5744bfd","updated":"2015-08-10 01:50:49.000000000","message":"Thank you very much for review.It is true that when the \"(str(net).startswith(\u00270.\u0027) is True\",\"net.version \u003d\u003d constants.IP_VERSION_4\" will be always true.I agree with U.","commit_id":"b466a630c71b07e4b96ed1fe91e9f0ba950d0927"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"1912b5c785bf07c63da1a23347a5ab37d596b339","unresolved":false,"context_lines":[{"line_number":320,"context_line":"            msg \u003d _(\"\u0027%(data)s\u0027 isn\u0027t a recognized IP subnet cidr,\""},{"line_number":321,"context_line":"                    \" \u0027%(cidr)s\u0027 is recommended\") % {\"data\": data,"},{"line_number":322,"context_line":"                                                     \"cidr\": net.cidr}"},{"line_number":323,"context_line":"        elif ((str(net).startswith(\u00270.\u0027) and"},{"line_number":324,"context_line":"               str(net) !\u003d constants.IPv4_ANY)):"},{"line_number":325,"context_line":"            msg \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % data"},{"line_number":326,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba15a1d1_2bd063c8","line":323,"updated":"2015-09-17 20:06:03.000000000","message":"I\u0027m not thrilled about the string stuff here.  Isn\u0027t there a way to get netaddr to do the checking you need in a more IP addressy, less stringy, way?","commit_id":"23085cb4f51475c882d91f8ad0d098ff9699d29b"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"1912b5c785bf07c63da1a23347a5ab37d596b339","unresolved":false,"context_lines":[{"line_number":321,"context_line":"                    \" \u0027%(cidr)s\u0027 is recommended\") % {\"data\": data,"},{"line_number":322,"context_line":"                                                     \"cidr\": net.cidr}"},{"line_number":323,"context_line":"        elif ((str(net).startswith(\u00270.\u0027) and"},{"line_number":324,"context_line":"               str(net) !\u003d constants.IPv4_ANY)):"},{"line_number":325,"context_line":"            msg \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % data"},{"line_number":326,"context_line":"        else:"},{"line_number":327,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba15a1d1_0b01df37","line":324,"updated":"2015-09-17 20:06:03.000000000","message":"I don\u0027t believe this check applies correctly to all places where _validate_subnet is used to validate.  For example, say I want to validate 0.0.0.0/1 as the destination part of a host route [1].  This would break that otherwise valid case.\n\n [1] https://github.com/openstack/neutron/blob/693db7cf7cac4c0fc4aeaffd113b9d833a950a52/neutron/api/v2/attributes.py#L301","commit_id":"23085cb4f51475c882d91f8ad0d098ff9699d29b"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"ec5f397ddc5c546a338ac9dd040000617d31f41f","unresolved":false,"context_lines":[{"line_number":321,"context_line":"                    \" \u0027%(cidr)s\u0027 is recommended\") % {\"data\": data,"},{"line_number":322,"context_line":"                                                     \"cidr\": net.cidr}"},{"line_number":323,"context_line":"        elif ((str(net).startswith(\u00270.\u0027) and"},{"line_number":324,"context_line":"               str(net) !\u003d constants.IPv4_ANY)):"},{"line_number":325,"context_line":"            msg \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % data"},{"line_number":326,"context_line":"        else:"},{"line_number":327,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a29b11f_c14a9c55","line":324,"in_reply_to":"7a2fa921_a8054614","updated":"2015-10-26 03:10:17.000000000","message":"Thanks very much for kind suggestion. I\u0027m sorry for return so late.I will commit an new one. Could you please help to review it? Thank you.","commit_id":"23085cb4f51475c882d91f8ad0d098ff9699d29b"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"3437c00c2ac626c2d119394a291a5c4ec7f532f0","unresolved":false,"context_lines":[{"line_number":321,"context_line":"                    \" \u0027%(cidr)s\u0027 is recommended\") % {\"data\": data,"},{"line_number":322,"context_line":"                                                     \"cidr\": net.cidr}"},{"line_number":323,"context_line":"        elif ((str(net).startswith(\u00270.\u0027) and"},{"line_number":324,"context_line":"               str(net) !\u003d constants.IPv4_ANY)):"},{"line_number":325,"context_line":"            msg \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % data"},{"line_number":326,"context_line":"        else:"},{"line_number":327,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":15,"id":"7a2fa921_a8054614","line":324,"in_reply_to":"ba15a1d1_0b01df37","updated":"2015-10-09 16:12:39.000000000","message":"I think the right answer here would be to add a new second method to validate subnets to be used on an L2 network.  Leave this one alone so that it still correctly validates extra routes destinations.  Use the new method in contexts where you know that the subnet is going to be used on an L2 network.\n\nThe new method might start something like this:\n\n  def _validate_subnet_for_network(data, valid_values\u003dNone):\n      msg \u003d _validate_subnet(data, valid_values)\n      if msg:\n          return msg\n\n      # Insert extra validation here for subnets to be used on a network.","commit_id":"23085cb4f51475c882d91f8ad0d098ff9699d29b"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"3aadd043a8b3e94d3987fe70f54d23e4cc461fcb","unresolved":false,"context_lines":[{"line_number":320,"context_line":"    msg \u003d None"},{"line_number":321,"context_line":"    try:"},{"line_number":322,"context_line":"        net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":323,"context_line":"        if \u0027/\u0027 not in data:"},{"line_number":324,"context_line":"            msg \u003d _(\"\u0027%(data)s\u0027 isn\u0027t a recognized IP subnet cidr,\""},{"line_number":325,"context_line":"                    \" \u0027%(cidr)s\u0027 is recommended\") % {\"data\": data,"},{"line_number":326,"context_line":"                                                     \"cidr\": net.cidr}"}],"source_content_type":"text/x-python","patch_set":18,"id":"3a29b11f_aa5f2274","line":323,"updated":"2015-10-27 00:34:58.000000000","message":"Why is this being changed?","commit_id":"337f5171a6f31b417fe79b48e4f0022d43bd2f97"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"9dc5229f446d7388b163d529795b54e131526b6f","unresolved":false,"context_lines":[{"line_number":320,"context_line":"    msg \u003d None"},{"line_number":321,"context_line":"    try:"},{"line_number":322,"context_line":"        net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":323,"context_line":"        if \u0027/\u0027 not in data:"},{"line_number":324,"context_line":"            msg \u003d _(\"\u0027%(data)s\u0027 isn\u0027t a recognized IP subnet cidr,\""},{"line_number":325,"context_line":"                    \" \u0027%(cidr)s\u0027 is recommended\") % {\"data\": data,"},{"line_number":326,"context_line":"                                                     \"cidr\": net.cidr}"}],"source_content_type":"text/x-python","patch_set":18,"id":"3a29b11f_6059298e","line":323,"in_reply_to":"3a29b11f_aa5f2274","updated":"2015-10-27 01:48:34.000000000","message":"Thanks very much for review. I changed here as this check maybe make users confused set the subnet cidrs.For example,\nI set the code like now. And I input the cmd like : \nCASE 1\nINPUT: neutron subnet-create aa 00.00.0.0/8 \nRETURN: Invalid input for cidr. Reason: \u002700.00.0.0/8\u0027 isn\u0027t a recognized IP subnet cidr, \u00270.0.0.0/8\u0027 is recommended.\n\nCASE 2\nINPUT: neutron subnet-create aa 0.1/1\nRETURN: Invalid input for cidr. Reason: \u00270.1/1\u0027 isn\u0027t a recognized IP subnet cidr, \u00270.0.0.0/1\u0027 is recommended.\n\nAccording to the return message, user will use 0.0.0.0/8 to set to cidr. It will return: Invalid input for cidr. Reason:  \u00270.0.0.0/8\u0027 is an invalid cidr value for subnet to be used on a network.. I think users maybe confused that the system recommend this inputment, why it still get error?  So I think remove this check , and when user input the cidr, just return the cidr is correct or not. And now the inputment will back to support the inputment like \"20/24\" , \"20.22/24\" which don\u0027t support now. Maybe I miss something? If I make some mistakes , Could you help me to correct? Thanks very much.","commit_id":"337f5171a6f31b417fe79b48e4f0022d43bd2f97"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"3aadd043a8b3e94d3987fe70f54d23e4cc461fcb","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    return msg"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"def _validate_subnet_list(data, valid_values\u003dNone):"},{"line_number":353,"context_line":"    if not isinstance(data, list):"},{"line_number":354,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is not a list\") % data"},{"line_number":355,"context_line":"        LOG.debug(msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"3a29b11f_850d7739","line":352,"updated":"2015-10-27 00:34:58.000000000","message":"I wonder if this method name should be changed to this:\n\n  _validate_subnet_for_network_list","commit_id":"337f5171a6f31b417fe79b48e4f0022d43bd2f97"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"9dc5229f446d7388b163d529795b54e131526b6f","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    return msg"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"def _validate_subnet_list(data, valid_values\u003dNone):"},{"line_number":353,"context_line":"    if not isinstance(data, list):"},{"line_number":354,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is not a list\") % data"},{"line_number":355,"context_line":"        LOG.debug(msg)"}],"source_content_type":"text/x-python","patch_set":18,"id":"3a29b11f_40518d61","line":352,"in_reply_to":"3a29b11f_850d7739","updated":"2015-10-27 01:48:34.000000000","message":"Thanks for guidance. Your suggestion is correct. :-)","commit_id":"337f5171a6f31b417fe79b48e4f0022d43bd2f97"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"3aadd043a8b3e94d3987fe70f54d23e4cc461fcb","unresolved":false,"context_lines":[{"line_number":366,"context_line":"            return msg"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"def _validate_subnet_or_none(data, valid_values\u003dNone):"},{"line_number":370,"context_line":"    if data is not None:"},{"line_number":371,"context_line":"        return _validate_subnet_for_network(data, valid_values)"},{"line_number":372,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"3a29b11f_aa62c214","line":369,"updated":"2015-10-27 00:34:58.000000000","message":"I wonder if this method name should be changed to this:\n\n  _validate_subnet_for_network_or_none","commit_id":"337f5171a6f31b417fe79b48e4f0022d43bd2f97"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"9dc5229f446d7388b163d529795b54e131526b6f","unresolved":false,"context_lines":[{"line_number":366,"context_line":"            return msg"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"def _validate_subnet_or_none(data, valid_values\u003dNone):"},{"line_number":370,"context_line":"    if data is not None:"},{"line_number":371,"context_line":"        return _validate_subnet_for_network(data, valid_values)"},{"line_number":372,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"3a29b11f_004b95b1","line":369,"in_reply_to":"3a29b11f_aa62c214","updated":"2015-10-27 01:48:34.000000000","message":"Thanks for guidance. Your suggestion is correct. :-)\nAnd I think the UT name related with this function should be updated, either..","commit_id":"337f5171a6f31b417fe79b48e4f0022d43bd2f97"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"3aadd043a8b3e94d3987fe70f54d23e4cc461fcb","unresolved":false,"context_lines":[{"line_number":641,"context_line":"              \u0027type:not_empty_string\u0027: _validate_not_empty_string,"},{"line_number":642,"context_line":"              \u0027type:not_empty_string_or_none\u0027:"},{"line_number":643,"context_line":"              _validate_not_empty_string_or_none,"},{"line_number":644,"context_line":"              \u0027type:subnet\u0027: _validate_subnet_for_network,"},{"line_number":645,"context_line":"              \u0027type:subnet_list\u0027: _validate_subnet_list,"},{"line_number":646,"context_line":"              \u0027type:subnet_or_none\u0027: _validate_subnet_or_none,"},{"line_number":647,"context_line":"              \u0027type:subnetpool_id\u0027: _validate_subnetpool_id,"}],"source_content_type":"text/x-python","patch_set":18,"id":"3a29b11f_ea92faf5","line":644,"updated":"2015-10-27 00:34:58.000000000","message":"I think that we should leave type:subnet alone and add a new type:\n\n  \u0027type:subnet_for_network\u0027: _validate_subnet_for_network,","commit_id":"337f5171a6f31b417fe79b48e4f0022d43bd2f97"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"9dc5229f446d7388b163d529795b54e131526b6f","unresolved":false,"context_lines":[{"line_number":641,"context_line":"              \u0027type:not_empty_string\u0027: _validate_not_empty_string,"},{"line_number":642,"context_line":"              \u0027type:not_empty_string_or_none\u0027:"},{"line_number":643,"context_line":"              _validate_not_empty_string_or_none,"},{"line_number":644,"context_line":"              \u0027type:subnet\u0027: _validate_subnet_for_network,"},{"line_number":645,"context_line":"              \u0027type:subnet_list\u0027: _validate_subnet_list,"},{"line_number":646,"context_line":"              \u0027type:subnet_or_none\u0027: _validate_subnet_or_none,"},{"line_number":647,"context_line":"              \u0027type:subnetpool_id\u0027: _validate_subnetpool_id,"}],"source_content_type":"text/x-python","patch_set":18,"id":"3a29b11f_80d565ba","line":644,"in_reply_to":"3a29b11f_ea92faf5","updated":"2015-10-27 01:48:34.000000000","message":"Thanks for review. This can be more accurate.","commit_id":"337f5171a6f31b417fe79b48e4f0022d43bd2f97"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"7b70e8a0924decdaa3fa04ea3177a20b054c2d70","unresolved":false,"context_lines":[{"line_number":342,"context_line":"    net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":343,"context_line":"    if ((str(net).startswith(\u00270.\u0027) and"},{"line_number":344,"context_line":"         str(net) !\u003d constants.IPv4_ANY)):"},{"line_number":345,"context_line":"        msg \u003d _(\" \u0027%s\u0027 is an invalid cidr value for subnet to be\""},{"line_number":346,"context_line":"                \" used on a network\") % data"},{"line_number":347,"context_line":"    if msg:"},{"line_number":348,"context_line":"        LOG.debug(msg)"}],"source_content_type":"text/x-python","patch_set":20,"id":"1a26ad4f_0c7ce61d","line":345,"updated":"2015-10-31 22:40:42.000000000","message":"You should remove the space at the beginning of the string","commit_id":"d5f35147f76194f5142d6eae5755ae18e990a2dc"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"703de2ebb8776b64a8215097bd00535141c4ff6e","unresolved":false,"context_lines":[{"line_number":342,"context_line":"    net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":343,"context_line":"    if ((str(net).startswith(\u00270.\u0027) and"},{"line_number":344,"context_line":"         str(net) !\u003d constants.IPv4_ANY)):"},{"line_number":345,"context_line":"        msg \u003d _(\" \u0027%s\u0027 is an invalid cidr value for subnet to be\""},{"line_number":346,"context_line":"                \" used on a network\") % data"},{"line_number":347,"context_line":"    if msg:"},{"line_number":348,"context_line":"        LOG.debug(msg)"}],"source_content_type":"text/x-python","patch_set":20,"id":"1a26ad4f_164b8d2b","line":345,"in_reply_to":"1a26ad4f_0c7ce61d","updated":"2015-11-02 00:46:14.000000000","message":"Thanks very much for review. I will remove it later.Thanks","commit_id":"d5f35147f76194f5142d6eae5755ae18e990a2dc"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"2395dcec5bd33b0a1a384b3c299d2789fc80a963","unresolved":false,"context_lines":[{"line_number":320,"context_line":"    msg \u003d None"},{"line_number":321,"context_line":"    try:"},{"line_number":322,"context_line":"        net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":323,"context_line":"        if \u0027/\u0027 not in data:"},{"line_number":324,"context_line":"            msg \u003d _(\"\u0027%(data)s\u0027 isn\u0027t a recognized IP subnet cidr,\""},{"line_number":325,"context_line":"                    \" \u0027%(cidr)s\u0027 is recommended\") % {\"data\": data,"},{"line_number":326,"context_line":"                                                     \"cidr\": net.cidr}"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a26ad4f_892e9b41","line":323,"updated":"2015-11-02 08:27:07.000000000","message":"you have changed the previous behavior here with no justification. the unit test Gary pointed out should not have been changed without a justification of why 10/24 is now valid.","commit_id":"af2a289751a9f291d22fa29c1ffc1ee5fd9501ef"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"7e861aab57a0e5eeeee0cbfa2ad111d3c90ec1a8","unresolved":false,"context_lines":[{"line_number":320,"context_line":"    msg \u003d None"},{"line_number":321,"context_line":"    try:"},{"line_number":322,"context_line":"        net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":323,"context_line":"        if \u0027/\u0027 not in data:"},{"line_number":324,"context_line":"            msg \u003d _(\"\u0027%(data)s\u0027 isn\u0027t a recognized IP subnet cidr,\""},{"line_number":325,"context_line":"                    \" \u0027%(cidr)s\u0027 is recommended\") % {\"data\": data,"},{"line_number":326,"context_line":"                                                     \"cidr\": net.cidr}"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a26ad4f_ed2dcd46","line":323,"in_reply_to":"1a26ad4f_044ef23a","updated":"2015-11-02 15:15:52.000000000","message":"We specifically want the current behavior. See:\n\n- https://review.openstack.org/219187\n- http://lists.openstack.org/pipermail/openstack-dev/2015-August/072610.html","commit_id":"af2a289751a9f291d22fa29c1ffc1ee5fd9501ef"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"0dee5d81ebdd3e60779a5899b89c25e00dbeefc3","unresolved":false,"context_lines":[{"line_number":320,"context_line":"    msg \u003d None"},{"line_number":321,"context_line":"    try:"},{"line_number":322,"context_line":"        net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":323,"context_line":"        if \u0027/\u0027 not in data:"},{"line_number":324,"context_line":"            msg \u003d _(\"\u0027%(data)s\u0027 isn\u0027t a recognized IP subnet cidr,\""},{"line_number":325,"context_line":"                    \" \u0027%(cidr)s\u0027 is recommended\") % {\"data\": data,"},{"line_number":326,"context_line":"                                                     \"cidr\": net.cidr}"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a26ad4f_044ef23a","line":323,"in_reply_to":"1a26ad4f_892e9b41","updated":"2015-11-02 08:56:31.000000000","message":"Hi , thanks for review. I remove the condition (net.version \u003d\u003d 4 and str(net) !\u003d data in PS18. In my opnion, I changed here as this check maybe make users confused set the subnet cidrs.For example, I set the code like now. And I input the cmd like : CASE 1 INPUT: neutron subnet-create aa 00.00.0.0/8 RETURN: Invalid input for cidr. Reason: \u002700.00.0.0/8\u0027 isn\u0027t a recognized IP subnet cidr, \u00270.0.0.0/8\u0027 is recommended. CASE 2 INPUT: neutron subnet-create aa 0.1/1 RETURN: Invalid input for cidr. Reason: \u00270.1/1\u0027 isn\u0027t a recognized IP subnet cidr, \u00270.0.0.0/1\u0027 is recommended. According to the return message, user will use 0.0.0.0/8 to set to cidr. It will return: Invalid input for cidr. Reason: \u00270.0.0.0/8\u0027 is an invalid cidr value for subnet to be used on a network.. I think users maybe confused that the system recommend this inputment, why it still get error? So I think remove this check , and when user input the cidr, just return the cidr is correct or not. And now the inputment will back to support the inputment like \"20/24\" , \"20.22/24\" which don\u0027t support now. Could you help me to make this patch right? I\u0027m confused about that. Which way is correct ? Thanks.","commit_id":"af2a289751a9f291d22fa29c1ffc1ee5fd9501ef"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"6cc1e89c20a83c18062c3f16385c9de09ac74a82","unresolved":false,"context_lines":[{"line_number":320,"context_line":"    msg \u003d None"},{"line_number":321,"context_line":"    try:"},{"line_number":322,"context_line":"        net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":323,"context_line":"        if \u0027/\u0027 not in data:"},{"line_number":324,"context_line":"            msg \u003d _(\"\u0027%(data)s\u0027 isn\u0027t a recognized IP subnet cidr,\""},{"line_number":325,"context_line":"                    \" \u0027%(cidr)s\u0027 is recommended\") % {\"data\": data,"},{"line_number":326,"context_line":"                                                     \"cidr\": net.cidr}"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa80f949_fd72d77b","line":323,"in_reply_to":"1a26ad4f_ed2dcd46","updated":"2015-11-04 00:58:49.000000000","message":"@Henry Gessau, thanks for review. I know I make a mistake. I will update this patch asap. And will need your kind review.\n:-)","commit_id":"af2a289751a9f291d22fa29c1ffc1ee5fd9501ef"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"7e861aab57a0e5eeeee0cbfa2ad111d3c90ec1a8","unresolved":false,"context_lines":[{"line_number":334,"context_line":""},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"def _validate_subnet_for_network(data, valid_values\u003dNone):"},{"line_number":337,"context_line":"    msg \u003d _validate_subnet(data, valid_values)"},{"line_number":338,"context_line":"    if msg:"},{"line_number":339,"context_line":"        return msg"},{"line_number":340,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"1a26ad4f_304c7ac7","line":337,"updated":"2015-11-02 15:15:52.000000000","message":"Consider a common method that accepts invalid values to check for.","commit_id":"af2a289751a9f291d22fa29c1ffc1ee5fd9501ef"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"c1dce0b5fbf76ee1f898538639d1ec5733e6e5e7","unresolved":false,"context_lines":[{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    # validation for subnets to be used on a network"},{"line_number":342,"context_line":"    net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":343,"context_line":"    if ((str(net).startswith(\u00270.\u0027) and"},{"line_number":344,"context_line":"         str(net) !\u003d constants.IPv4_ANY)):"},{"line_number":345,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is an invalid cidr value for subnet to be \""},{"line_number":346,"context_line":"                \"used on a network\") % data"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a26ad4f_3e969b93","line":343,"updated":"2015-11-02 07:25:00.000000000","message":"Query : Should you not be processing for IPv6 CIDRs?","commit_id":"af2a289751a9f291d22fa29c1ffc1ee5fd9501ef"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"7e861aab57a0e5eeeee0cbfa2ad111d3c90ec1a8","unresolved":false,"context_lines":[{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    # validation for subnets to be used on a network"},{"line_number":342,"context_line":"    net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":343,"context_line":"    if ((str(net).startswith(\u00270.\u0027) and"},{"line_number":344,"context_line":"         str(net) !\u003d constants.IPv4_ANY)):"},{"line_number":345,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is an invalid cidr value for subnet to be \""},{"line_number":346,"context_line":"                \"used on a network\") % data"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a26ad4f_8de69913","line":343,"in_reply_to":"1a26ad4f_04e03228","updated":"2015-11-02 15:15:52.000000000","message":"I will not approve any code that ignores IPv6. I don\u0027t care if the bug is only about IPv4. The fix must take both into account.","commit_id":"af2a289751a9f291d22fa29c1ffc1ee5fd9501ef"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"97b47e038348bddbfd1a18c5732080f9b5004c1b","unresolved":false,"context_lines":[{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    # validation for subnets to be used on a network"},{"line_number":342,"context_line":"    net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":343,"context_line":"    if ((str(net).startswith(\u00270.\u0027) and"},{"line_number":344,"context_line":"         str(net) !\u003d constants.IPv4_ANY)):"},{"line_number":345,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is an invalid cidr value for subnet to be \""},{"line_number":346,"context_line":"                \"used on a network\") % data"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a26ad4f_844f626a","line":343,"in_reply_to":"1a26ad4f_3e969b93","updated":"2015-11-02 08:51:05.000000000","message":"Hi, thanks for review. As this patch based on a bug related with IPv4 cidrs, so I think I should fix the ipv4 first. And there is no case about ipv6, so I\u0027m not sure which is wrong.","commit_id":"af2a289751a9f291d22fa29c1ffc1ee5fd9501ef"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"2a7981639c135ea238eb53ae381955362c788850","unresolved":false,"context_lines":[{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    # validation for subnets to be used on a network"},{"line_number":342,"context_line":"    net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":343,"context_line":"    if ((str(net).startswith(\u00270.\u0027) and"},{"line_number":344,"context_line":"         str(net) !\u003d constants.IPv4_ANY)):"},{"line_number":345,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is an invalid cidr value for subnet to be \""},{"line_number":346,"context_line":"                \"used on a network\") % data"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a26ad4f_04e03228","line":343,"in_reply_to":"1a26ad4f_844f626a","updated":"2015-11-02 08:56:37.000000000","message":"I understand, but maybe we should consider fixing all CIDRs and not only for IPv4.\nThat is because CIDR invalidty is not just covered by IPv4 addresses. It can exist in IPv6 addresses as well.\nPlease consider the same.","commit_id":"af2a289751a9f291d22fa29c1ffc1ee5fd9501ef"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"6cc1e89c20a83c18062c3f16385c9de09ac74a82","unresolved":false,"context_lines":[{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    # validation for subnets to be used on a network"},{"line_number":342,"context_line":"    net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":343,"context_line":"    if ((str(net).startswith(\u00270.\u0027) and"},{"line_number":344,"context_line":"         str(net) !\u003d constants.IPv4_ANY)):"},{"line_number":345,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is an invalid cidr value for subnet to be \""},{"line_number":346,"context_line":"                \"used on a network\") % data"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa80f949_5d1443f4","line":343,"in_reply_to":"1a26ad4f_8de69913","updated":"2015-11-04 00:58:49.000000000","message":"@Reedip , Henry Gessau, thanks for suggestion. I will rework it.","commit_id":"af2a289751a9f291d22fa29c1ffc1ee5fd9501ef"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"0db28842213b2499a5aba3ecd12ca06c9c34717a","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    return msg"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"def _validate_subnet_for_network_list(data, valid_values\u003dNone):"},{"line_number":353,"context_line":"    if not isinstance(data, list):"},{"line_number":354,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is not a list\") % data"},{"line_number":355,"context_line":"        LOG.debug(msg)"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a26ad4f_0e44ad18","line":352,"updated":"2015-11-03 02:39:30.000000000","message":"Besides other comments, this method name should be _validate_subnet_list_for_network.","commit_id":"af2a289751a9f291d22fa29c1ffc1ee5fd9501ef"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"6cc1e89c20a83c18062c3f16385c9de09ac74a82","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    return msg"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"def _validate_subnet_for_network_list(data, valid_values\u003dNone):"},{"line_number":353,"context_line":"    if not isinstance(data, list):"},{"line_number":354,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is not a list\") % data"},{"line_number":355,"context_line":"        LOG.debug(msg)"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa80f949_dd0033ad","line":352,"in_reply_to":"1a26ad4f_0e44ad18","updated":"2015-11-04 00:58:49.000000000","message":"thanks for correct me. I will check it and other mistakes.Thanks","commit_id":"af2a289751a9f291d22fa29c1ffc1ee5fd9501ef"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"45016919e0c78f863dcf379541ab21050116ba25","unresolved":false,"context_lines":[{"line_number":339,"context_line":"        return msg"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    # validation for subnets to be used on a network"},{"line_number":342,"context_line":"    net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":343,"context_line":"    if ((str(net).startswith(\u00270.\u0027) and str(net) !\u003d constants.IPv4_ANY) or"},{"line_number":344,"context_line":"       (str(net.network) \u003d\u003d \u0027::\u0027 and str(net) !\u003d constants.IPv6_ANY)):"},{"line_number":345,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is an invalid cidr value for subnet to be \""}],"source_content_type":"text/x-python","patch_set":23,"id":"fa80f949_0c42a8ae","line":342,"updated":"2015-11-06 05:36:25.000000000","message":"_validate_subnet_for_network looks very similar with _validate_subnet. And it also invoke the later one. There are some duplicated calls here. Why not just use one function here?","commit_id":"9fdac82dd700e74565f3c3b9390c7d41b49dbf39"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"5dbff6abccf2b0d0a51ecd46bcd9199c33d921e3","unresolved":false,"context_lines":[{"line_number":339,"context_line":"        return msg"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    # validation for subnets to be used on a network"},{"line_number":342,"context_line":"    net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":343,"context_line":"    if ((str(net).startswith(\u00270.\u0027) and str(net) !\u003d constants.IPv4_ANY) or"},{"line_number":344,"context_line":"       (str(net.network) \u003d\u003d \u0027::\u0027 and str(net) !\u003d constants.IPv6_ANY)):"},{"line_number":345,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is an invalid cidr value for subnet to be \""}],"source_content_type":"text/x-python","patch_set":23,"id":"7a740942_a8264e14","line":342,"in_reply_to":"7a740942_95094334","updated":"2015-12-04 01:12:56.000000000","message":"@Carl Baldwin, Hi carl, thanks very much for standing out to show the direction. I will clear up doubt to continue working on it. Thanks.","commit_id":"9fdac82dd700e74565f3c3b9390c7d41b49dbf39"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"d4a7557b305be5ec20247e058832a4c9f628bfe4","unresolved":false,"context_lines":[{"line_number":339,"context_line":"        return msg"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    # validation for subnets to be used on a network"},{"line_number":342,"context_line":"    net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":343,"context_line":"    if ((str(net).startswith(\u00270.\u0027) and str(net) !\u003d constants.IPv4_ANY) or"},{"line_number":344,"context_line":"       (str(net.network) \u003d\u003d \u0027::\u0027 and str(net) !\u003d constants.IPv6_ANY)):"},{"line_number":345,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is an invalid cidr value for subnet to be \""}],"source_content_type":"text/x-python","patch_set":23,"id":"7a740942_95094334","line":342,"in_reply_to":"ba8a016a_096701ea","updated":"2015-12-03 17:00:29.000000000","message":"I see one duplicated call.  That is L342.  The rest is unique.  So, to save this duplication you (reviewers) want to combine the methods with an extra parameter using a default value that\u0027s overridden depending on the context and then used in an if / elif tree.  I\u0027m sorry but this strikes me as ridiculous.\n\n_validate_subnet and _validate_subnet_for_network have different purposes.  There is a validation that this one does that can\u0027t be done in all of the contexts where _validate_subnet is used.\n\nHonestly, I think this method is fine.  Certainly not worthy of seven -1s.  I vote to keep it as it is and focus your energy on fixing the tests.","commit_id":"9fdac82dd700e74565f3c3b9390c7d41b49dbf39"},{"author":{"_account_id":16788,"name":"Ramanjaneya Reddy Palleti","email":"ramanjaneya.palleti@huawei.com","username":"Ramanjaneya"},"change_message_id":"36d1db65fbedf315fbb25129258566da80a85940","unresolved":false,"context_lines":[{"line_number":339,"context_line":"        return msg"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    # validation for subnets to be used on a network"},{"line_number":342,"context_line":"    net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":343,"context_line":"    if ((str(net).startswith(\u00270.\u0027) and str(net) !\u003d constants.IPv4_ANY) or"},{"line_number":344,"context_line":"       (str(net.network) \u003d\u003d \u0027::\u0027 and str(net) !\u003d constants.IPv6_ANY)):"},{"line_number":345,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is an invalid cidr value for subnet to be \""}],"source_content_type":"text/x-python","patch_set":23,"id":"ba8a016a_096701ea","line":342,"in_reply_to":"ba8a016a_422db0fc","updated":"2015-11-24 08:54:38.000000000","message":"+1","commit_id":"9fdac82dd700e74565f3c3b9390c7d41b49dbf39"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"456c9955e68baff757fb5e881d820085bfcca244","unresolved":false,"context_lines":[{"line_number":339,"context_line":"        return msg"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    # validation for subnets to be used on a network"},{"line_number":342,"context_line":"    net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":343,"context_line":"    if ((str(net).startswith(\u00270.\u0027) and str(net) !\u003d constants.IPv4_ANY) or"},{"line_number":344,"context_line":"       (str(net.network) \u003d\u003d \u0027::\u0027 and str(net) !\u003d constants.IPv6_ANY)):"},{"line_number":345,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is an invalid cidr value for subnet to be \""}],"source_content_type":"text/x-python","patch_set":23,"id":"fa80f949_ba0f0087","line":342,"in_reply_to":"fa80f949_0c42a8ae","updated":"2015-11-06 12:46:29.000000000","message":"+1, I guess you could do...\n\n\n    def _validate_subnet(data, valid_values\u003dNone, on_network\u003dFalse):\n        ...\n        net \u003d netaddr.IPNetwork(...)\n        if \u0027/\u0027 not in data ...\n        elif on_network and ((str(net).startswith(\u00270.\u0027) and ...):\n                msg \u003d _(\"\u0027%s\u0027 is an invalid cidr value for subnet to be \"\n                        \"used on a network\") % data\n        else:\n            return\n        ...\n        \n    def _validate_subnet_for_network(data, valid_values\u003dNone):\n        return _validate_subnet(data, valid_values, on_network\u003dTrue)","commit_id":"9fdac82dd700e74565f3c3b9390c7d41b49dbf39"},{"author":{"_account_id":16707,"name":"Mohankumar","email":"nmohankumar1011@gmail.com","username":"mohankumar_n"},"change_message_id":"c7e2f7be3a16e9625108227e12afa7ec56146f0d","unresolved":false,"context_lines":[{"line_number":339,"context_line":"        return msg"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    # validation for subnets to be used on a network"},{"line_number":342,"context_line":"    net \u003d netaddr.IPNetwork(_validate_no_whitespace(data))"},{"line_number":343,"context_line":"    if ((str(net).startswith(\u00270.\u0027) and str(net) !\u003d constants.IPv4_ANY) or"},{"line_number":344,"context_line":"       (str(net.network) \u003d\u003d \u0027::\u0027 and str(net) !\u003d constants.IPv6_ANY)):"},{"line_number":345,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is an invalid cidr value for subnet to be \""}],"source_content_type":"text/x-python","patch_set":23,"id":"ba8a016a_422db0fc","line":342,"in_reply_to":"fa80f949_0c42a8ae","updated":"2015-11-19 06:16:53.000000000","message":"Agree with Hong,  common function would be good","commit_id":"9fdac82dd700e74565f3c3b9390c7d41b49dbf39"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"35cfc6b790060ea8e14691856ab8221fc7234fd8","unresolved":false,"context_lines":[{"line_number":364,"context_line":"    return msg"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"def _validate_subnet_for_network(data, valid_values\u003dNone):"},{"line_number":368,"context_line":"    msg \u003d _validate_subnet(data, valid_values)"},{"line_number":369,"context_line":"    if msg:"},{"line_number":370,"context_line":"        return msg"}],"source_content_type":"text/x-python","patch_set":24,"id":"da6ed579_076e2e95","line":367,"updated":"2016-01-13 14:02:51.000000000","message":"Can you remove the underscores from these two new validators? Making them private makes it harder to migrate to neutron-lib repo.\n\nSee: https://review.openstack.org/#/c/259053/","commit_id":"a3e2b0ef36f45be04b96ed5b3cd2b1b14e8884f2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"5952de8279890dee46882749c41f0bbded00dd5c","unresolved":false,"context_lines":[{"line_number":392,"context_line":""},{"line_number":393,"context_line":"    for item in data:"},{"line_number":394,"context_line":"        msg \u003d _validate_subnet_for_network(item)"},{"line_number":395,"context_line":"        if msg:"},{"line_number":396,"context_line":"            return msg"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"da6ed579_d94c7a72","line":395,"updated":"2016-01-13 14:36:18.000000000","message":"missing debug message here","commit_id":"a3e2b0ef36f45be04b96ed5b3cd2b1b14e8884f2"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"97db46a4f83a32da9a1ca39d7675d4ddac67bc46","unresolved":false,"context_lines":[{"line_number":392,"context_line":""},{"line_number":393,"context_line":"    for item in data:"},{"line_number":394,"context_line":"        msg \u003d _validate_subnet_for_network(item)"},{"line_number":395,"context_line":"        if msg:"},{"line_number":396,"context_line":"            return msg"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"da6ed579_82974beb","line":395,"in_reply_to":"da6ed579_d94c7a72","updated":"2016-01-14 02:04:59.000000000","message":"Thanks very much. I will add it.","commit_id":"a3e2b0ef36f45be04b96ed5b3cd2b1b14e8884f2"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"76202581e8187e56178116960764d3f4cdde4e6c","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        LOG.debug(msg)"},{"line_number":386,"context_line":"        return msg"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"    if len(set(data)) !\u003d len(data):"},{"line_number":389,"context_line":"        msg \u003d _(\"Duplicate items in the list: \u0027%s\u0027\") % \u0027, \u0027.join(data)"},{"line_number":390,"context_line":"        LOG.debug(msg)"},{"line_number":391,"context_line":"        return msg"}],"source_content_type":"text/x-python","patch_set":26,"id":"da6ed579_636c5935","line":388,"range":{"start_line":388,"start_character":15,"end_line":388,"end_character":19},"updated":"2016-01-15 00:10:43.000000000","message":"you should check formatted data not raw data as the same cidr can be written differently in ipv6?","commit_id":"9a9c2e8a5cbe88820f6c67e2642a5de9b8a8f43c"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"3fa5ffd022668b1c100bccb2ce7837813403eaa2","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        LOG.debug(msg)"},{"line_number":386,"context_line":"        return msg"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"    if len(set(data)) !\u003d len(data):"},{"line_number":389,"context_line":"        msg \u003d _(\"Duplicate items in the list: \u0027%s\u0027\") % \u0027, \u0027.join(data)"},{"line_number":390,"context_line":"        LOG.debug(msg)"},{"line_number":391,"context_line":"        return msg"}],"source_content_type":"text/x-python","patch_set":26,"id":"da6ed579_4f62940b","line":388,"range":{"start_line":388,"start_character":15,"end_line":388,"end_character":19},"in_reply_to":"da6ed579_636c5935","updated":"2016-01-15 02:36:46.000000000","message":"Sorry? the validate func is used for subnetpool creation now. If when u create subnetpool with ipv6 cidrs like 1::0/24 and 1:0::0/16, the data here is [\u00271::0/24\u0027,\u00271:0::0/16\u0027] even with same /24 and it will get the biggest cidr into subnetpool in following logic of subnetpool creation, I think here is just for input validation, so I think the work here is done. Do you agree? Or any kind suggesion? Thanks.","commit_id":"9a9c2e8a5cbe88820f6c67e2642a5de9b8a8f43c"}],"neutron/api/v2/base.py":[{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"63894516721de10f48dd74c63b1c049864512f5d","unresolved":false,"context_lines":[{"line_number":397,"context_line":"                               retry_on_deadlock\u003dTrue)"},{"line_number":398,"context_line":"    def create(self, request, body\u003dNone, **kwargs):"},{"line_number":399,"context_line":"        \"\"\"Creates a new instance of the requested entity.\"\"\""},{"line_number":400,"context_line":"        self.check_resource_values(self._resource, body)"},{"line_number":401,"context_line":"        parent_id \u003d kwargs.get(self._parent_id_name)"},{"line_number":402,"context_line":"        self._notifier.info(request.context,"},{"line_number":403,"context_line":"                            self._resource + \u0027.create.start\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_79765ed8","line":400,"updated":"2015-07-15 08:49:36.000000000","message":"should not check here, it is better to add this check to file attributes.py","commit_id":"5155461b2a0e30080357c4bc3603933b8467774e"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"02d02f6c14a17e695dea501b7adae33844e80929","unresolved":false,"context_lines":[{"line_number":397,"context_line":"                               retry_on_deadlock\u003dTrue)"},{"line_number":398,"context_line":"    def create(self, request, body\u003dNone, **kwargs):"},{"line_number":399,"context_line":"        \"\"\"Creates a new instance of the requested entity.\"\"\""},{"line_number":400,"context_line":"        self.check_resource_values(self._resource, body)"},{"line_number":401,"context_line":"        parent_id \u003d kwargs.get(self._parent_id_name)"},{"line_number":402,"context_line":"        self._notifier.info(request.context,"},{"line_number":403,"context_line":"                            self._resource + \u0027.create.start\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_4c460c7c","line":400,"in_reply_to":"9a41bdd9_79765ed8","updated":"2015-07-16 00:24:52.000000000","message":"Thank you. I will rework it.","commit_id":"5155461b2a0e30080357c4bc3603933b8467774e"}],"neutron/tests/unit/api/v2/test_attributes.py":[{"author":{"_account_id":1923,"name":"Mohammad Banikazemi","email":"mbanikazemi@gmail.com","username":"mb-s"},"change_message_id":"e25438ade6ea2de85c4edc0e7cb9193519a39248","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        self.assertEqual(error, msg)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        # Invalid - abbreviated IPv4 address begin with zero"},{"line_number":508,"context_line":"        for pre in range(0, 3):"},{"line_number":509,"context_line":"            cidr \u003d \"0/%s\" % pre"},{"line_number":510,"context_line":"            error \u003d _(\" \u0027%s\u0027 is invalid cidr value\") % cidr"},{"line_number":511,"context_line":"            msg \u003d validator(cidr, None)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_5f866c66","line":508,"updated":"2015-07-17 02:29:23.000000000","message":"why range(0, 3)?","commit_id":"7589cebce0b88acd0ef92f9cf1f22f0d49d7d15f"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"c37613004cf0744f974f9b26377cad40dee69dcd","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        self.assertEqual(error, msg)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        # Invalid - abbreviated IPv4 address begin with zero"},{"line_number":508,"context_line":"        for pre in range(0, 3):"},{"line_number":509,"context_line":"            cidr \u003d \"0/%s\" % pre"},{"line_number":510,"context_line":"            error \u003d _(\" \u0027%s\u0027 is invalid cidr value\") % cidr"},{"line_number":511,"context_line":"            msg \u003d validator(cidr, None)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_5ba3df4f","line":508,"in_reply_to":"9a41bdd9_5f866c66","updated":"2015-07-17 03:29:45.000000000","message":"Thank you very much for your review.As I want to test the views when creat subnet with \u00270/0\u0027,\u00270/1\u0027,\u00270/2\u0027,and I think the result in these views should be error.So this is the circle come from.","commit_id":"7589cebce0b88acd0ef92f9cf1f22f0d49d7d15f"},{"author":{"_account_id":1923,"name":"Mohammad Banikazemi","email":"mbanikazemi@gmail.com","username":"mb-s"},"change_message_id":"e25438ade6ea2de85c4edc0e7cb9193519a39248","unresolved":false,"context_lines":[{"line_number":507,"context_line":"        # Invalid - abbreviated IPv4 address begin with zero"},{"line_number":508,"context_line":"        for pre in range(0, 3):"},{"line_number":509,"context_line":"            cidr \u003d \"0/%s\" % pre"},{"line_number":510,"context_line":"            error \u003d _(\" \u0027%s\u0027 is invalid cidr value\") % cidr"},{"line_number":511,"context_line":"            msg \u003d validator(cidr, None)"},{"line_number":512,"context_line":"            self.assertEqual(error, msg)"},{"line_number":513,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_c40b952a","line":510,"updated":"2015-07-17 02:29:23.000000000","message":"is an invalid","commit_id":"7589cebce0b88acd0ef92f9cf1f22f0d49d7d15f"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"c37613004cf0744f974f9b26377cad40dee69dcd","unresolved":false,"context_lines":[{"line_number":507,"context_line":"        # Invalid - abbreviated IPv4 address begin with zero"},{"line_number":508,"context_line":"        for pre in range(0, 3):"},{"line_number":509,"context_line":"            cidr \u003d \"0/%s\" % pre"},{"line_number":510,"context_line":"            error \u003d _(\" \u0027%s\u0027 is invalid cidr value\") % cidr"},{"line_number":511,"context_line":"            msg \u003d validator(cidr, None)"},{"line_number":512,"context_line":"            self.assertEqual(error, msg)"},{"line_number":513,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_1b86b7b9","line":510,"in_reply_to":"9a41bdd9_c40b952a","updated":"2015-07-17 03:29:45.000000000","message":"Done","commit_id":"7589cebce0b88acd0ef92f9cf1f22f0d49d7d15f"},{"author":{"_account_id":1923,"name":"Mohammad Banikazemi","email":"mbanikazemi@gmail.com","username":"mb-s"},"change_message_id":"e25438ade6ea2de85c4edc0e7cb9193519a39248","unresolved":false,"context_lines":[{"line_number":515,"context_line":"        for i in range(1, 4):"},{"line_number":516,"context_line":"            cidr \u003d cidr + \u0027.%s\u0027 % i"},{"line_number":517,"context_line":"            cidr_full \u003d cidr + \u0027/%s\u0027 % i"},{"line_number":518,"context_line":"            if i \u003d\u003d 0:"},{"line_number":519,"context_line":"                msg \u003d validator(cidr_full, None)"},{"line_number":520,"context_line":"                self.assertIsNone(msg)"},{"line_number":521,"context_line":"            error \u003d _(\" \u0027%s\u0027 is invalid cidr value\") % cidr_full"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_9f47144b","line":518,"updated":"2015-07-17 02:29:23.000000000","message":"What is intended here? Why comparing with 0?","commit_id":"7589cebce0b88acd0ef92f9cf1f22f0d49d7d15f"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"c37613004cf0744f974f9b26377cad40dee69dcd","unresolved":false,"context_lines":[{"line_number":515,"context_line":"        for i in range(1, 4):"},{"line_number":516,"context_line":"            cidr \u003d cidr + \u0027.%s\u0027 % i"},{"line_number":517,"context_line":"            cidr_full \u003d cidr + \u0027/%s\u0027 % i"},{"line_number":518,"context_line":"            if i \u003d\u003d 0:"},{"line_number":519,"context_line":"                msg \u003d validator(cidr_full, None)"},{"line_number":520,"context_line":"                self.assertIsNone(msg)"},{"line_number":521,"context_line":"            error \u003d _(\" \u0027%s\u0027 is invalid cidr value\") % cidr_full"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_3bb5bb7d","line":518,"in_reply_to":"9a41bdd9_9f47144b","updated":"2015-07-17 03:29:45.000000000","message":"Thank you, this is my mistake. I will recheck it.","commit_id":"7589cebce0b88acd0ef92f9cf1f22f0d49d7d15f"},{"author":{"_account_id":1923,"name":"Mohammad Banikazemi","email":"mbanikazemi@gmail.com","username":"mb-s"},"change_message_id":"e25438ade6ea2de85c4edc0e7cb9193519a39248","unresolved":false,"context_lines":[{"line_number":518,"context_line":"            if i \u003d\u003d 0:"},{"line_number":519,"context_line":"                msg \u003d validator(cidr_full, None)"},{"line_number":520,"context_line":"                self.assertIsNone(msg)"},{"line_number":521,"context_line":"            error \u003d _(\" \u0027%s\u0027 is invalid cidr value\") % cidr_full"},{"line_number":522,"context_line":"            msg \u003d validator(cidr_full, None)"},{"line_number":523,"context_line":"            self.assertEqual(error, msg)"},{"line_number":524,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_df0fdc2c","line":521,"updated":"2015-07-17 02:29:23.000000000","message":"is an invalid","commit_id":"7589cebce0b88acd0ef92f9cf1f22f0d49d7d15f"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"c37613004cf0744f974f9b26377cad40dee69dcd","unresolved":false,"context_lines":[{"line_number":518,"context_line":"            if i \u003d\u003d 0:"},{"line_number":519,"context_line":"                msg \u003d validator(cidr_full, None)"},{"line_number":520,"context_line":"                self.assertIsNone(msg)"},{"line_number":521,"context_line":"            error \u003d _(\" \u0027%s\u0027 is invalid cidr value\") % cidr_full"},{"line_number":522,"context_line":"            msg \u003d validator(cidr_full, None)"},{"line_number":523,"context_line":"            self.assertEqual(error, msg)"},{"line_number":524,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_5bbaff6f","line":521,"in_reply_to":"9a41bdd9_df0fdc2c","updated":"2015-07-17 03:29:45.000000000","message":"Done","commit_id":"7589cebce0b88acd0ef92f9cf1f22f0d49d7d15f"},{"author":{"_account_id":1923,"name":"Mohammad Banikazemi","email":"mbanikazemi@gmail.com","username":"mb-s"},"change_message_id":"e25438ade6ea2de85c4edc0e7cb9193519a39248","unresolved":false,"context_lines":[{"line_number":524,"context_line":""},{"line_number":525,"context_line":"        # Invalid - Full IPv4 address begin with zero"},{"line_number":526,"context_line":"        cidr \u003d \u00270.0.0.0/8\u0027"},{"line_number":527,"context_line":"        error \u003d _(\" \u0027%s\u0027 is invalid cidr value\") % cidr"},{"line_number":528,"context_line":"        msg \u003d validator(cidr, None)"},{"line_number":529,"context_line":"        self.assertEqual(error, msg)"},{"line_number":530,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_3f25a8ad","line":527,"updated":"2015-07-17 02:29:23.000000000","message":"is an invalid","commit_id":"7589cebce0b88acd0ef92f9cf1f22f0d49d7d15f"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"c37613004cf0744f974f9b26377cad40dee69dcd","unresolved":false,"context_lines":[{"line_number":524,"context_line":""},{"line_number":525,"context_line":"        # Invalid - Full IPv4 address begin with zero"},{"line_number":526,"context_line":"        cidr \u003d \u00270.0.0.0/8\u0027"},{"line_number":527,"context_line":"        error \u003d _(\" \u0027%s\u0027 is invalid cidr value\") % cidr"},{"line_number":528,"context_line":"        msg \u003d validator(cidr, None)"},{"line_number":529,"context_line":"        self.assertEqual(error, msg)"},{"line_number":530,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_fbaf5329","line":527,"in_reply_to":"9a41bdd9_3f25a8ad","updated":"2015-07-17 03:29:45.000000000","message":"Done","commit_id":"7589cebce0b88acd0ef92f9cf1f22f0d49d7d15f"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"ebdd6d6eaf7b63d7d0418c391cbad1b7abf3da1e","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        self.assertEqual(error, msg)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        # Invalid - abbreviated IPv4 address begin with zero"},{"line_number":508,"context_line":"        for pre in range(0, 2):"},{"line_number":509,"context_line":"            cidr \u003d \"0/%s\" % pre"},{"line_number":510,"context_line":"            if pre \u003d\u003d 0:"},{"line_number":511,"context_line":"                error \u003d None"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_bc0626cc","line":508,"updated":"2015-08-11 21:34:51.000000000","message":"can just say range(2)","commit_id":"2248a82b71d85d56fb42cc6bbff725e02fe32946"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"62e4e6196b4189656f6dcd72e333e8961cc83475","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        self.assertEqual(error, msg)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        # Invalid - abbreviated IPv4 address begin with zero"},{"line_number":508,"context_line":"        for pre in range(0, 2):"},{"line_number":509,"context_line":"            cidr \u003d \"0/%s\" % pre"},{"line_number":510,"context_line":"            if pre \u003d\u003d 0:"},{"line_number":511,"context_line":"                error \u003d None"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_6ba8d28c","line":508,"in_reply_to":"1a4dcd0f_bc0626cc","updated":"2015-08-12 00:48:56.000000000","message":"Thanks for review.I think the comments below is the right opinion, it is true that will be easy to read code.","commit_id":"2248a82b71d85d56fb42cc6bbff725e02fe32946"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"ebdd6d6eaf7b63d7d0418c391cbad1b7abf3da1e","unresolved":false,"context_lines":[{"line_number":508,"context_line":"        for pre in range(0, 2):"},{"line_number":509,"context_line":"            cidr \u003d \"0/%s\" % pre"},{"line_number":510,"context_line":"            if pre \u003d\u003d 0:"},{"line_number":511,"context_line":"                error \u003d None"},{"line_number":512,"context_line":"            else:"},{"line_number":513,"context_line":"                error \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % cidr"},{"line_number":514,"context_line":"            msg \u003d validator(cidr, None)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_9cdfaa39","line":511,"updated":"2015-08-11 21:34:51.000000000","message":"nit: expected vs error for each of these.","commit_id":"2248a82b71d85d56fb42cc6bbff725e02fe32946"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"62e4e6196b4189656f6dcd72e333e8961cc83475","unresolved":false,"context_lines":[{"line_number":508,"context_line":"        for pre in range(0, 2):"},{"line_number":509,"context_line":"            cidr \u003d \"0/%s\" % pre"},{"line_number":510,"context_line":"            if pre \u003d\u003d 0:"},{"line_number":511,"context_line":"                error \u003d None"},{"line_number":512,"context_line":"            else:"},{"line_number":513,"context_line":"                error \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % cidr"},{"line_number":514,"context_line":"            msg \u003d validator(cidr, None)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_2b972a49","line":511,"in_reply_to":"1a4dcd0f_9cdfaa39","updated":"2015-08-12 00:48:56.000000000","message":"agree","commit_id":"2248a82b71d85d56fb42cc6bbff725e02fe32946"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"ebdd6d6eaf7b63d7d0418c391cbad1b7abf3da1e","unresolved":false,"context_lines":[{"line_number":511,"context_line":"                error \u003d None"},{"line_number":512,"context_line":"            else:"},{"line_number":513,"context_line":"                error \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % cidr"},{"line_number":514,"context_line":"            msg \u003d validator(cidr, None)"},{"line_number":515,"context_line":"            self.assertEqual(error, msg)"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        cidr \u003d \"0\""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_1ca87a76","line":514,"updated":"2015-08-11 21:34:51.000000000","message":"Just a thought, rather than looping and having conditionals, could do:\n\n    self.assertEqual(None, validator(\"0/0\", None))\n    expected \u003d _(\" \u00270/1\u0027 is an invalid cidr value\")\n    self.assertEqual(expected, validator(\"0/1\", None))","commit_id":"2248a82b71d85d56fb42cc6bbff725e02fe32946"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"62e4e6196b4189656f6dcd72e333e8961cc83475","unresolved":false,"context_lines":[{"line_number":511,"context_line":"                error \u003d None"},{"line_number":512,"context_line":"            else:"},{"line_number":513,"context_line":"                error \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % cidr"},{"line_number":514,"context_line":"            msg \u003d validator(cidr, None)"},{"line_number":515,"context_line":"            self.assertEqual(error, msg)"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        cidr \u003d \"0\""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_eb9ce26b","line":514,"in_reply_to":"1a4dcd0f_1ca87a76","updated":"2015-08-12 00:48:56.000000000","message":"agree","commit_id":"2248a82b71d85d56fb42cc6bbff725e02fe32946"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"ebdd6d6eaf7b63d7d0418c391cbad1b7abf3da1e","unresolved":false,"context_lines":[{"line_number":515,"context_line":"            self.assertEqual(error, msg)"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        cidr \u003d \"0\""},{"line_number":518,"context_line":"        for i in range(1, 4):"},{"line_number":519,"context_line":"            cidr \u003d cidr + \u0027.%s\u0027 % i"},{"line_number":520,"context_line":"            cidr_full \u003d cidr + \u0027/%s\u0027 % i"},{"line_number":521,"context_line":"            error \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % cidr_full"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_9c000a68","line":518,"updated":"2015-08-11 21:34:51.000000000","message":"Here you could do like on L526. It makes it easier to read, IMHO:\n\n    for cidr in [\u00270.1\u0027, \u00270.1.2\u0027, \u00270.1.3\u0027]:\n        expected \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % cidr\n        self.assertEqual(expected, validator(cidr, None))","commit_id":"2248a82b71d85d56fb42cc6bbff725e02fe32946"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"62e4e6196b4189656f6dcd72e333e8961cc83475","unresolved":false,"context_lines":[{"line_number":515,"context_line":"            self.assertEqual(error, msg)"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        cidr \u003d \"0\""},{"line_number":518,"context_line":"        for i in range(1, 4):"},{"line_number":519,"context_line":"            cidr \u003d cidr + \u0027.%s\u0027 % i"},{"line_number":520,"context_line":"            cidr_full \u003d cidr + \u0027/%s\u0027 % i"},{"line_number":521,"context_line":"            error \u003d _(\" \u0027%s\u0027 is an invalid cidr value\") % cidr_full"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_cb8ec62d","line":518,"in_reply_to":"1a4dcd0f_9c000a68","updated":"2015-08-12 00:48:56.000000000","message":"agree","commit_id":"2248a82b71d85d56fb42cc6bbff725e02fe32946"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1a51b079cb4f2c8a08656af27d52d68a7ffc218c","unresolved":false,"context_lines":[{"line_number":499,"context_line":"        self.assertIsNone(msg)"},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"        # Invalid - abbreviated ipv4 address"},{"line_number":502,"context_line":"        cidr \u003d \"10/24\""},{"line_number":503,"context_line":"        msg \u003d validator(cidr, None)"},{"line_number":504,"context_line":"        self.assertIsNone(msg)"},{"line_number":505,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"1a26ad4f_9ec9ef28","line":502,"updated":"2015-11-02 07:56:45.000000000","message":"so this is now a valid subnet?","commit_id":"af2a289751a9f291d22fa29c1ffc1ee5fd9501ef"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"97b47e038348bddbfd1a18c5732080f9b5004c1b","unresolved":false,"context_lines":[{"line_number":499,"context_line":"        self.assertIsNone(msg)"},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"        # Invalid - abbreviated ipv4 address"},{"line_number":502,"context_line":"        cidr \u003d \"10/24\""},{"line_number":503,"context_line":"        msg \u003d validator(cidr, None)"},{"line_number":504,"context_line":"        self.assertIsNone(msg)"},{"line_number":505,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"1a26ad4f_09b28b4c","line":502,"in_reply_to":"1a26ad4f_9ec9ef28","updated":"2015-11-02 08:51:05.000000000","message":"Thanks for review. As I rework the function _validate_subnet in attributes.py, I remove the condition (net.version \u003d\u003d 4 and str(net) !\u003d data in PS18. In my opnion, I changed here as this check maybe make users confused set the subnet cidrs.For example, I set the code like now. And I input the cmd like : CASE 1 INPUT: neutron subnet-create aa 00.00.0.0/8 RETURN: Invalid input for cidr. Reason: \u002700.00.0.0/8\u0027 isn\u0027t a recognized IP subnet cidr, \u00270.0.0.0/8\u0027 is recommended.\nCASE 2 INPUT: neutron subnet-create aa 0.1/1 RETURN: Invalid input for cidr. Reason: \u00270.1/1\u0027 isn\u0027t a recognized IP subnet cidr, \u00270.0.0.0/1\u0027 is recommended.\nAccording to the return message, user will use 0.0.0.0/8 to set to cidr. It will return: Invalid input for cidr. Reason: \u00270.0.0.0/8\u0027 is an invalid cidr value for subnet to be used on a network.. I think users maybe confused that the system recommend this inputment, why it still get error? So I think remove this check , and when user input the cidr, just return the cidr is correct or not. And now the inputment will back to support the inputment like \"20/24\" , \"20.22/24\" which don\u0027t support now.","commit_id":"af2a289751a9f291d22fa29c1ffc1ee5fd9501ef"},{"author":{"_account_id":15070,"name":"Ruijing","email":"ruijing.guo@intel.com","username":"ruijing"},"change_message_id":"ee3c2c600d62b8b492b63a7ea9e1cb14628784a1","unresolved":false,"context_lines":[{"line_number":563,"context_line":"        # to be used on an L2 network."},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"        # Invalid - Full IPv4 address begin with zero"},{"line_number":566,"context_line":"        cidrs \u003d [\u00270.0.0.0/8\u0027, \u00270.0.1.1/2\u0027, \u00270.1.2.3/3\u0027]"},{"line_number":567,"context_line":"        for cidr in cidrs:"},{"line_number":568,"context_line":"            expected \u003d _(\"\u0027%s\u0027 is an invalid cidr value for subnet to be \""},{"line_number":569,"context_line":"                         \"used on a network\") % cidr"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba8a016a_e676f1a2","line":566,"updated":"2015-11-20 08:22:40.000000000","message":"possibly you mean 0.0.1.1/16, 0.1.2.3/24","commit_id":"9fdac82dd700e74565f3c3b9390c7d41b49dbf39"},{"author":{"_account_id":15070,"name":"Ruijing","email":"ruijing.guo@intel.com","username":"ruijing"},"change_message_id":"ee3c2c600d62b8b492b63a7ea9e1cb14628784a1","unresolved":false,"context_lines":[{"line_number":571,"context_line":"            self.assertEqual(expected, msg)"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"        # Invalid - Full IPv6 address with IPv6 network \"::\""},{"line_number":574,"context_line":"        cidrs \u003d [\u0027::/1\u0027, \u00271::/1\u0027, \u00270:1::/1\u0027, \u0027::9:8:3/9\u0027, \u0027::9/1\u0027]"},{"line_number":575,"context_line":"        for cidr in cidrs:"},{"line_number":576,"context_line":"            expected \u003d _(\"\u0027%s\u0027 is an invalid cidr value for subnet to be \""},{"line_number":577,"context_line":"                         \"used on a network\") % cidr"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba8a016a_465c9d18","line":574,"updated":"2015-11-20 08:22:40.000000000","message":"save with above comments","commit_id":"9fdac82dd700e74565f3c3b9390c7d41b49dbf39"},{"author":{"_account_id":15070,"name":"Ruijing","email":"ruijing.guo@intel.com","username":"ruijing"},"change_message_id":"ee3c2c600d62b8b492b63a7ea9e1cb14628784a1","unresolved":false,"context_lines":[{"line_number":591,"context_line":"                                   allow_none\u003dTrue)"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"    def _test_validate_regex(self, validator, allow_none\u003dFalse):"},{"line_number":594,"context_line":"        pattern \u003d \u0027[hc]at\u0027"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"        data \u003d None"},{"line_number":597,"context_line":"        msg \u003d validator(data, pattern)"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba8a016a_a39d3b0b","line":594,"updated":"2015-11-20 08:22:40.000000000","message":"Chang nearby code may cause rebase difficult","commit_id":"9fdac82dd700e74565f3c3b9390c7d41b49dbf39"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"35cfc6b790060ea8e14691856ab8221fc7234fd8","unresolved":false,"context_lines":[{"line_number":603,"context_line":"        error \u003d \"\u0027%s\u0027 is not a valid IP subnet\" % cidr"},{"line_number":604,"context_line":"        self.assertEqual(error, msg)"},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"    def _test_validate_subnet_for_network(self, validator, allow_none\u003dFalse):"},{"line_number":607,"context_line":"        # As function validate_subnet_for_network is used for validation of"},{"line_number":608,"context_line":"        # subnets on network. So the tests in test_validate_subnet is the"},{"line_number":609,"context_line":"        # common cases. The tests here check the extra validation for subnet"}],"source_content_type":"text/x-python","patch_set":24,"id":"da6ed579_07838e99","line":606,"range":{"start_line":606,"start_character":59,"end_line":606,"end_character":69},"updated":"2016-01-13 14:02:51.000000000","message":"purpose of this? It is set on L630 as well.","commit_id":"a3e2b0ef36f45be04b96ed5b3cd2b1b14e8884f2"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"97db46a4f83a32da9a1ca39d7675d4ddac67bc46","unresolved":false,"context_lines":[{"line_number":603,"context_line":"        error \u003d \"\u0027%s\u0027 is not a valid IP subnet\" % cidr"},{"line_number":604,"context_line":"        self.assertEqual(error, msg)"},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"    def _test_validate_subnet_for_network(self, validator, allow_none\u003dFalse):"},{"line_number":607,"context_line":"        # As function validate_subnet_for_network is used for validation of"},{"line_number":608,"context_line":"        # subnets on network. So the tests in test_validate_subnet is the"},{"line_number":609,"context_line":"        # common cases. The tests here check the extra validation for subnet"}],"source_content_type":"text/x-python","patch_set":24,"id":"da6ed579_02fb5b7a","line":606,"range":{"start_line":606,"start_character":59,"end_line":606,"end_character":69},"in_reply_to":"da6ed579_07838e99","updated":"2016-01-14 02:04:59.000000000","message":"Thanks, nice catch. I miss to remove it. It is true that meanless.","commit_id":"a3e2b0ef36f45be04b96ed5b3cd2b1b14e8884f2"}]}
