)]}'
{"oslo_utils/netutils.py":[{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"bd986e1855b7201be0cccdf78382512e21e8f470","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"def is_valid_cidr(address):"},{"line_number":115,"context_line":"    \"\"\"Check if address is valid"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    The provided address can be a IPv6 or a IPv4"},{"line_number":118,"context_line":"    CIDR address."}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_da3cb1e4","line":115,"range":{"start_line":115,"start_character":27,"end_line":115,"end_character":32},"updated":"2016-03-02 14:57:17.000000000","message":"missing period.\n\nand need describe parameter and returns as we did for above method is_valid_ipv6.\n\nAdd .. versionadded:: 3.8","commit_id":"28407b9b691784c5bb7f462fa4e78986799ac587"},{"author":{"_account_id":13248,"name":"Wenzhi Yu","email":"wenzhi_yu@163.com","username":"yuywz"},"change_message_id":"fb8c00bba7292b98045dd25e5707d6e8b43a8b1e","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"def is_valid_cidr(address):"},{"line_number":115,"context_line":"    \"\"\"Check if address is valid"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    The provided address can be a IPv6 or a IPv4"},{"line_number":118,"context_line":"    CIDR address."}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_6b38063e","line":115,"range":{"start_line":115,"start_character":27,"end_line":115,"end_character":32},"in_reply_to":"7af24918_da3cb1e4","updated":"2016-03-03 01:09:25.000000000","message":"Done, thanks for your comment, ChangBo.","commit_id":"28407b9b691784c5bb7f462fa4e78986799ac587"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"bd986e1855b7201be0cccdf78382512e21e8f470","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        # Validate the correct CIDR Address"},{"line_number":122,"context_line":"        netaddr.IPNetwork(address)"},{"line_number":123,"context_line":"    except netaddr.AddrFormatError:"},{"line_number":124,"context_line":"        return False"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    # Prior validation partially verify /xx part"},{"line_number":127,"context_line":"    # Verify it here"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_ddde6b3e","line":124,"range":{"start_line":124,"start_character":15,"end_line":124,"end_character":20},"updated":"2016-03-02 14:57:17.000000000","message":"yes, we don\u0027t need magnum\u0027s work around now. \nIn stable/kilo we have requirement netaddr\u003e\u003d0.7.12\n\nhttps://github.com/openstack/requirements/blob/stable/kilo/global-requirements.txt#L57","commit_id":"28407b9b691784c5bb7f462fa4e78986799ac587"},{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"4345170ce9eb1d490e300e8b282ac3b26b0c48bc","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    # Prior validation partially verify /xx part"},{"line_number":130,"context_line":"    # Verify it here"},{"line_number":131,"context_line":"    ip_segment \u003d address.split(\u0027/\u0027)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    if (len(ip_segment) \u003c\u003d 1 or"},{"line_number":134,"context_line":"            ip_segment[1] \u003d\u003d \u0027\u0027):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_7b1b8e73","line":131,"updated":"2016-04-06 22:01:41.000000000","message":"So, netaddr.IPNetwork() will validate / value if specified (e.g. /x, /33 etc), but if not specified at all, result is valid.\n\n\u003e\u003e\u003e netaddr.IPNetwork(\"10.0.0.0\")\nIPNetwork(\u002710.0.0.0/32\u0027)\n\nThis comment could be a little better to say this validates the presence of routing mask is mandatory.","commit_id":"6de2eb47e0a5d0b8a052a0d81edcc8f091b59b9f"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"8923c2dd97959f55a6bf211a3fece52ffc204138","unresolved":false,"context_lines":[{"line_number":131,"context_line":"    ip_segment \u003d address.split(\u0027/\u0027)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    if (len(ip_segment) \u003c\u003d 1 or"},{"line_number":134,"context_line":"            ip_segment[1] \u003d\u003d \u0027\u0027):"},{"line_number":135,"context_line":"        return False"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    return True"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_0c1b23cb","line":134,"range":{"start_line":134,"start_character":12,"end_line":134,"end_character":33},"updated":"2016-03-03 18:07:55.000000000","message":"nit: but there\u0027s no reason this can\u0027t be put on the line above","commit_id":"6de2eb47e0a5d0b8a052a0d81edcc8f091b59b9f"}]}
