)]}'
{"neutron/api/v2/attributes.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"f775f65e515b6cc8e1a959782e39617730c089ea","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        # TODO(kevinbenton): just call netaddr.valid_mac directly once"},{"line_number":172,"context_line":"        # https://github.com/drkjam/netaddr/issues/114 is fixed."},{"line_number":173,"context_line":"        valid_mac_func \u003d netaddr.strategy.eui48.valid_str"},{"line_number":174,"context_line":"        valid_mac \u003d valid_mac_func(_validate_no_whitespace(data))"},{"line_number":175,"context_line":"    except Exception:"},{"line_number":176,"context_line":"        valid_mac \u003d False"},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_6b466e50","line":174,"updated":"2015-08-31 10:58:00.000000000","message":"I believe it\u0027s not needed anymore now that 0.7.17 is released with the fix for valid_mac.","commit_id":"a10033d00e6f677a2994698749599bc9a1aff2c8"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"e916ef51b55c05c3a1cd8a71bd7f9db8e3915c75","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        # TODO(kevinbenton): just call netaddr.valid_mac directly once"},{"line_number":172,"context_line":"        # https://github.com/drkjam/netaddr/issues/114 is fixed."},{"line_number":173,"context_line":"        valid_mac_func \u003d netaddr.strategy.eui48.valid_str"},{"line_number":174,"context_line":"        valid_mac \u003d valid_mac_func(_validate_no_whitespace(data))"},{"line_number":175,"context_line":"    except Exception:"},{"line_number":176,"context_line":"        valid_mac \u003d False"},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_0b39f2a3","line":174,"in_reply_to":"da20952f_6b466e50","updated":"2015-08-31 11:01:39.000000000","message":"good catch: let\u0027s unbreak gate, and then we follow up removing this if not needed.","commit_id":"a10033d00e6f677a2994698749599bc9a1aff2c8"}],"neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"cc8c7e908b01b5b271a7bd7cd8ca66c66272d75b","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            # Ensure the configured group address/range is valid and multicast"},{"line_number":145,"context_line":"            net \u003d netaddr.IPNetwork(cfg.CONF.VXLAN.vxlan_group)"},{"line_number":146,"context_line":"            if not all([net.is_multicast(), net.network.is_multicast(),"},{"line_number":147,"context_line":"                        (not net.broadcast or net.broadcast.is_multicast())]):"},{"line_number":148,"context_line":"                raise ValueError()"},{"line_number":149,"context_line":"            # Map the segmentation ID to (one of) the group address(es)"},{"line_number":150,"context_line":"            return str(net.network +"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_3c768ba4","line":147,"updated":"2015-08-31 05:54:48.000000000","message":"isn\u0027t net.is_multicast() enough?","commit_id":"0bcda02bc8a597a2fb5ac88626a857d9dc627c45"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"c8e0cb28b2e2fc06771459332b9ce8e806091795","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            # Ensure the configured group address/range is valid and multicast"},{"line_number":145,"context_line":"            net \u003d netaddr.IPNetwork(cfg.CONF.VXLAN.vxlan_group)"},{"line_number":146,"context_line":"            if not all([net.is_multicast(), net.network.is_multicast(),"},{"line_number":147,"context_line":"                        (not net.broadcast or net.broadcast.is_multicast())]):"},{"line_number":148,"context_line":"                raise ValueError()"},{"line_number":149,"context_line":"            # Map the segmentation ID to (one of) the group address(es)"},{"line_number":150,"context_line":"            return str(net.network +"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_5c657fb2","line":147,"in_reply_to":"da20952f_3c768ba4","updated":"2015-08-31 06:10:47.000000000","message":"same question","commit_id":"0bcda02bc8a597a2fb5ac88626a857d9dc627c45"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"b8ddf3c2adf80b7d2f059e7338c425112b36fefa","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            # Ensure the configured group address/range is valid and multicast"},{"line_number":145,"context_line":"            net \u003d netaddr.IPNetwork(cfg.CONF.VXLAN.vxlan_group)"},{"line_number":146,"context_line":"            if not all([net.is_multicast(), net.network.is_multicast(),"},{"line_number":147,"context_line":"                        (not net.broadcast or net.broadcast.is_multicast())]):"},{"line_number":148,"context_line":"                raise ValueError()"},{"line_number":149,"context_line":"            # Map the segmentation ID to (one of) the group address(es)"},{"line_number":150,"context_line":"            return str(net.network +"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_478048c0","line":147,"in_reply_to":"da20952f_5c657fb2","updated":"2015-08-31 06:55:43.000000000","message":"yes","commit_id":"0bcda02bc8a597a2fb5ac88626a857d9dc627c45"}],"neutron/tests/common/net_helpers.py":[{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"c9c7685ec62e89540b5232e61db8d9e71401c28b","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    net0 \u003d netaddr.IPNetwork(ip_cidr)"},{"line_number":70,"context_line":"    net \u003d netaddr.IPNetwork(ip_cidr)"},{"line_number":71,"context_line":"    net.value +\u003d offset"},{"line_number":72,"context_line":"    if not net0.network \u003c net.ip \u003c (net0.network + (net0.size - 1)):"},{"line_number":73,"context_line":"        tools.fail("},{"line_number":74,"context_line":"            \u0027Incorrect ip_cidr,offset tuple (%s,%s): \"incremented\" ip_cidr is \u0027"},{"line_number":75,"context_line":"            \u0027outside ip_cidr\u0027 % (ip_cidr, offset))"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_a77e0417","line":72,"updated":"2015-08-31 06:48:21.000000000","message":"no need to change it ... there is no valid ip strictly between network/broadcast for /31,/32 cidrs","commit_id":"82ad275041786ad9828c922341d93803d1bd2768"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"a89704e67551b097c0a30624340e08bff861e0e4","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    net0 \u003d netaddr.IPNetwork(ip_cidr)"},{"line_number":70,"context_line":"    net \u003d netaddr.IPNetwork(ip_cidr)"},{"line_number":71,"context_line":"    net.value +\u003d offset"},{"line_number":72,"context_line":"    if not net0.network \u003c net.ip \u003c net[-1]:"},{"line_number":73,"context_line":"        tools.fail("},{"line_number":74,"context_line":"            \u0027Incorrect ip_cidr,offset tuple (%s,%s): \"incremented\" ip_cidr is \u0027"},{"line_number":75,"context_line":"            \u0027outside ip_cidr\u0027 % (ip_cidr, offset))"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_07a2504b","line":72,"updated":"2015-08-31 07:03:16.000000000","message":"net0[-1] you mean?","commit_id":"4cb16cf83822ca1b71c64c37ec863fe722a73ad5"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"2b0b7cd3df506b077d694dbce6a9a427b791e8b1","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    net0 \u003d netaddr.IPNetwork(ip_cidr)"},{"line_number":70,"context_line":"    net \u003d netaddr.IPNetwork(ip_cidr)"},{"line_number":71,"context_line":"    net.value +\u003d offset"},{"line_number":72,"context_line":"    if not net0.network \u003c net.ip \u003c net[-1]:"},{"line_number":73,"context_line":"        tools.fail("},{"line_number":74,"context_line":"            \u0027Incorrect ip_cidr,offset tuple (%s,%s): \"incremented\" ip_cidr is \u0027"},{"line_number":75,"context_line":"            \u0027outside ip_cidr\u0027 % (ip_cidr, offset))"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_2db893c7","line":72,"in_reply_to":"da20952f_07a2504b","updated":"2015-08-31 08:11:50.000000000","message":"it should be.\n\nbut I think it will be better this way:\nnet0[int(net0.ip - net0[0])+offset]\n\nif the offset is out of the ipcidr, it will raise its own error:\nTraceback (most recent call last):\n  File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\n  File \"/usr/lib/python2.7/site-packages/netaddr/ip/__init__.py\", line 725, in __getitem__\n    raise IndexError(\u0027index out range for address range size!\u0027)\nIndexError: index out range for address range size!","commit_id":"4cb16cf83822ca1b71c64c37ec863fe722a73ad5"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"25c51e6f761768adc36493458cbf87014627e1f9","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    net0 \u003d netaddr.IPNetwork(ip_cidr)"},{"line_number":70,"context_line":"    net \u003d netaddr.IPNetwork(ip_cidr)"},{"line_number":71,"context_line":"    net.value +\u003d offset"},{"line_number":72,"context_line":"    if not net0.network \u003c net.ip \u003c net[-1]:"},{"line_number":73,"context_line":"        tools.fail("},{"line_number":74,"context_line":"            \u0027Incorrect ip_cidr,offset tuple (%s,%s): \"incremented\" ip_cidr is \u0027"},{"line_number":75,"context_line":"            \u0027outside ip_cidr\u0027 % (ip_cidr, offset))"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_70e09f96","line":72,"in_reply_to":"da20952f_2db893c7","updated":"2015-08-31 10:47:43.000000000","message":"Done","commit_id":"4cb16cf83822ca1b71c64c37ec863fe722a73ad5"}]}
