)]}'
{"instack_undercloud/undercloud.py":[{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"25623ffe3d8e3f3f95581cd4c1cd84796a1f3bfd","unresolved":false,"context_lines":[{"line_number":782,"context_line":"    subnet_cidrs \u003d []"},{"line_number":783,"context_line":"    for subnet in CONF.subnets:"},{"line_number":784,"context_line":"        subnet_opts \u003d CONF.get(subnet)"},{"line_number":785,"context_line":"        params \u003d {opt.name: subnet_opts[opt.name] for opt in _subnets_opts}"},{"line_number":786,"context_line":""},{"line_number":787,"context_line":"        if any(_cidr_overlaps(x, netaddr.IPNetwork(subnet_opts.cidr))"},{"line_number":788,"context_line":"               for x in subnet_cidrs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_7d6da130","line":785,"range":{"start_line":785,"start_character":61,"end_line":785,"end_character":74},"updated":"2018-01-15 21:07:02.000000000","message":"I think this is missing from this patch, perhaps defined in another patch?","commit_id":"7a9ff3a87be90ffe0f65fdded2afd80583df8532"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"96e9cb7e33654244ce1153de488d8d49520d2024","unresolved":false,"context_lines":[{"line_number":782,"context_line":"    subnet_cidrs \u003d []"},{"line_number":783,"context_line":"    for subnet in CONF.subnets:"},{"line_number":784,"context_line":"        subnet_opts \u003d CONF.get(subnet)"},{"line_number":785,"context_line":"        params \u003d {opt.name: subnet_opts[opt.name] for opt in _subnets_opts}"},{"line_number":786,"context_line":""},{"line_number":787,"context_line":"        if any(_cidr_overlaps(x, netaddr.IPNetwork(subnet_opts.cidr))"},{"line_number":788,"context_line":"               for x in subnet_cidrs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_b28353cc","line":785,"range":{"start_line":785,"start_character":61,"end_line":785,"end_character":74},"in_reply_to":"7f96bb07_7d6da130","updated":"2018-01-15 22:13:36.000000000","message":"Never mind, because that was defined elsewhere I didn\u0027t see it the first time.","commit_id":"7a9ff3a87be90ffe0f65fdded2afd80583df8532"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"ceee3d785388d966126c1bf247a774afbe3946f1","unresolved":false,"context_lines":[{"line_number":782,"context_line":"    subnet_cidrs \u003d []"},{"line_number":783,"context_line":"    for subnet in CONF.subnets:"},{"line_number":784,"context_line":"        subnet_opts \u003d CONF.get(subnet)"},{"line_number":785,"context_line":"        params \u003d {opt.name: subnet_opts[opt.name] for opt in _subnets_opts}"},{"line_number":786,"context_line":""},{"line_number":787,"context_line":"        if any(_cidr_overlaps(x, netaddr.IPNetwork(subnet_opts.cidr))"},{"line_number":788,"context_line":"               for x in subnet_cidrs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_0fcb001e","line":785,"range":{"start_line":785,"start_character":61,"end_line":785,"end_character":74},"in_reply_to":"7f96bb07_7d6da130","updated":"2018-02-01 19:09:44.000000000","message":"yes, it is on L395 defined in the patch before this one. (https://review.openstack.org/#/c/533365)","commit_id":"7a9ff3a87be90ffe0f65fdded2afd80583df8532"}],"instack_undercloud/validator.py":[{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"25623ffe3d8e3f3f95581cd4c1cd84796a1f3bfd","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            try:"},{"line_number":64,"context_line":"                ip_net \u003d netaddr.IPNetwork(params[param])"},{"line_number":65,"context_line":"                if (ip_net.prefixlen \u003d\u003d 32) or (ip_net.prefixlen \u003d\u003d 0):"},{"line_number":66,"context_line":"                    raise netaddr.AddrFormatError(\u0027Invalid netmask\u0027)"},{"line_number":67,"context_line":"                # If IPv6 the ctlplane network uses the EUI-64 address format,"},{"line_number":68,"context_line":"                # which requires the prefix to be /64"},{"line_number":69,"context_line":"                if ip_net.version \u003d\u003d 6 and ip_net.prefixlen !\u003d 64:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_3dacf932","line":66,"range":{"start_line":66,"start_character":20,"end_line":66,"end_character":68},"updated":"2018-01-15 21:07:02.000000000","message":"This should probably call error_callback() instead of raising the exception.","commit_id":"7a9ff3a87be90ffe0f65fdded2afd80583df8532"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"ceee3d785388d966126c1bf247a774afbe3946f1","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            try:"},{"line_number":64,"context_line":"                ip_net \u003d netaddr.IPNetwork(params[param])"},{"line_number":65,"context_line":"                if (ip_net.prefixlen \u003d\u003d 32) or (ip_net.prefixlen \u003d\u003d 0):"},{"line_number":66,"context_line":"                    raise netaddr.AddrFormatError(\u0027Invalid netmask\u0027)"},{"line_number":67,"context_line":"                # If IPv6 the ctlplane network uses the EUI-64 address format,"},{"line_number":68,"context_line":"                # which requires the prefix to be /64"},{"line_number":69,"context_line":"                if ip_net.version \u003d\u003d 6 and ip_net.prefixlen !\u003d 64:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_72414b39","line":66,"range":{"start_line":66,"start_character":20,"end_line":66,"end_character":68},"in_reply_to":"7f96bb07_3dacf932","updated":"2018-02-01 19:09:44.000000000","message":"Done","commit_id":"7a9ff3a87be90ffe0f65fdded2afd80583df8532"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"25623ffe3d8e3f3f95581cd4c1cd84796a1f3bfd","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                # If IPv6 the ctlplane network uses the EUI-64 address format,"},{"line_number":68,"context_line":"                # which requires the prefix to be /64"},{"line_number":69,"context_line":"                if ip_net.version \u003d\u003d 6 and ip_net.prefixlen !\u003d 64:"},{"line_number":70,"context_line":"                    raise netaddr.AddrFormatError(\u0027Prefix must be 64 for IPv6\u0027)"},{"line_number":71,"context_line":"            except netaddr.core.AddrFormatError as e:"},{"line_number":72,"context_line":"                message \u003d (\u0027\"%s\" \"%s\" not valid: \"%s\" \u0027"},{"line_number":73,"context_line":"                           \u0027Value must be in CIDR format.\u0027 %"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_5da78550","line":70,"range":{"start_line":70,"start_character":20,"end_line":70,"end_character":79},"updated":"2018-01-15 21:07:02.000000000","message":"ditto","commit_id":"7a9ff3a87be90ffe0f65fdded2afd80583df8532"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"ceee3d785388d966126c1bf247a774afbe3946f1","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                # If IPv6 the ctlplane network uses the EUI-64 address format,"},{"line_number":68,"context_line":"                # which requires the prefix to be /64"},{"line_number":69,"context_line":"                if ip_net.version \u003d\u003d 6 and ip_net.prefixlen !\u003d 64:"},{"line_number":70,"context_line":"                    raise netaddr.AddrFormatError(\u0027Prefix must be 64 for IPv6\u0027)"},{"line_number":71,"context_line":"            except netaddr.core.AddrFormatError as e:"},{"line_number":72,"context_line":"                message \u003d (\u0027\"%s\" \"%s\" not valid: \"%s\" \u0027"},{"line_number":73,"context_line":"                           \u0027Value must be in CIDR format.\u0027 %"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_923c17c0","line":70,"range":{"start_line":70,"start_character":20,"end_line":70,"end_character":79},"in_reply_to":"7f96bb07_5da78550","updated":"2018-02-01 19:09:44.000000000","message":"Done","commit_id":"7a9ff3a87be90ffe0f65fdded2afd80583df8532"}]}
