)]}'
{"nova/tests/unit/network/test_network_info.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7088abcf969a15303cd51d62f84efaca92b5c342","unresolved":false,"context_lines":[{"line_number":1136,"context_line":"                        }"},{"line_number":1137,"context_line":"                    ],"},{"line_number":1138,"context_line":"                   \u0027services\u0027: [{\u0027address\u0027: \u00271.2.3.4\u0027, \u0027type\u0027: \u0027dns\u0027},"},{"line_number":1139,"context_line":"                                {\u0027address\u0027: \u00272.3.4.5\u0027, \u0027type\u0027: \u0027dns\u0027}], "},{"line_number":1140,"context_line":"                    \"type\": \"ipv4\""},{"line_number":1141,"context_line":"                },"},{"line_number":1142,"context_line":"                {"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff0f0b1f_d1f20a70","line":1139,"updated":"2017-05-24 19:54:59.000000000","message":"Whitespace :)","commit_id":"fd0c749b3863566ee6d96b603074e27db74a7d29"}],"nova/virt/netutils.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7088abcf969a15303cd51d62f84efaca92b5c342","unresolved":false,"context_lines":[{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    services \u003d _get_dns_services(subnet)"},{"line_number":304,"context_line":"    if services:"},{"line_number":305,"context_line":"        net_info[\u0027services\u0027] \u003d services"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    return net_info"},{"line_number":308,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff0f0b1f_51b4ba7f","line":305,"updated":"2017-05-24 19:54:59.000000000","message":"Personally, I\u0027d rather this be an empty list if it\u0027s unspecified for a network, just because if I\u0027m writing janky jq shell scripts I want more predictable input. Aside from the \"if not dhcp\" thing above, the output of this method is pretty stable, so I\u0027d tend to keep it that way. Not sure how others feel.","commit_id":"fd0c749b3863566ee6d96b603074e27db74a7d29"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3ffee15d808e0e2f4bc1dc54e71837d4eedc9215","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        if subnet_v4 and subnet_v4.get(\u0027ips\u0027):"},{"line_number":209,"context_line":"            net_num +\u003d 1"},{"line_number":210,"context_line":"            nets.append(_get_nets(vif, subnet_v4, 4, net_num, link[\u0027id\u0027]))"},{"line_number":211,"context_line":"            services +\u003d [dns for dns in _get_dns_services(subnet_v4)"},{"line_number":212,"context_line":"                         if dns not in services]"},{"line_number":213,"context_line":"        if subnet_v6 and subnet_v6.get(\u0027ips\u0027):"},{"line_number":214,"context_line":"            net_num +\u003d 1"},{"line_number":215,"context_line":"            nets.append(_get_nets(vif, subnet_v6, 6, net_num, link[\u0027id\u0027]))"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_a7b03bdf","line":212,"range":{"start_line":211,"start_character":12,"end_line":212,"end_character":48},"updated":"2017-07-20 17:34:48.000000000","message":"And per subnet here.","commit_id":"4b333b989dfc778a8b61db4a1b8552e988a10471"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3ffee15d808e0e2f4bc1dc54e71837d4eedc9215","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    return {"},{"line_number":220,"context_line":"        \"links\": links,"},{"line_number":221,"context_line":"        \"networks\": nets,"},{"line_number":222,"context_line":"        \"services\": services"},{"line_number":223,"context_line":"    }"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_c7bb37c2","line":222,"range":{"start_line":222,"start_character":8,"end_line":222,"end_character":28},"updated":"2017-07-20 17:34:48.000000000","message":"OK so it\u0027s global here.","commit_id":"4b333b989dfc778a8b61db4a1b8552e988a10471"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3ffee15d808e0e2f4bc1dc54e71837d4eedc9215","unresolved":false,"context_lines":[{"line_number":281,"context_line":"    elif version \u003d\u003d 6:"},{"line_number":282,"context_line":"        netmask \u003d str(subnet.as_netaddr().netmask)"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    net_info \u003d {"},{"line_number":285,"context_line":"        \u0027id\u0027: \u0027network%d\u0027 % net_num,"},{"line_number":286,"context_line":"        \u0027type\u0027: \u0027ipv%d%s\u0027 % (version, net_type),"},{"line_number":287,"context_line":"        \u0027link\u0027: link_id,"},{"line_number":288,"context_line":"        \u0027ip_address\u0027: address,"},{"line_number":289,"context_line":"        \u0027netmask\u0027: netmask,"},{"line_number":290,"context_line":"        \u0027routes\u0027: _get_default_route(version, subnet),"},{"line_number":291,"context_line":"        \u0027network_id\u0027: vif[\u0027network\u0027][\u0027id\u0027]"},{"line_number":292,"context_line":"    }"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    # Add any additional routes beyond the default route"},{"line_number":295,"context_line":"    for route in subnet[\u0027routes\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_a7339b62","line":292,"range":{"start_line":284,"start_character":4,"end_line":292,"end_character":5},"updated":"2017-07-20 17:34:48.000000000","message":"Would be nice to just throw it in here rather than leave it out separately at the end.","commit_id":"4b333b989dfc778a8b61db4a1b8552e988a10471"}]}
