)]}'
{"nova/virt/baremetal/pxe.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"59579c9ff8bf503bf0996723cbbc13fa6735c186","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        template \u003d \"ip\u003d%(address)s::%(gateway)s:%(netmask)s::%(name)s:off \""},{"line_number":89,"context_line":"    else:"},{"line_number":90,"context_line":"        template \u003d \"ip\u003d[%(address_v6)s]::[%(gateway_v6)s]:\" +\\"},{"line_number":91,"context_line":"        \"[%(netmask_v6)s]::%(name)s:off \""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    net_config \u003d \u0027\u0027"},{"line_number":94,"context_line":"    for iface in interfaces:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPX%2F%2F5II%3D","line":91,"updated":"2013-06-06 16:20:02.000000000","message":"indent","commit_id":"3bfdb40bc4cfdc74be3f954fbefa7b751cb7b7bb"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"ed04f2b7cb2d5aa18066f62acc240c3ad7f04c2a","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        template \u003d \"ip\u003d%(address)s::%(gateway)s:%(netmask)s::%(name)s:off \""},{"line_number":89,"context_line":"    else:"},{"line_number":90,"context_line":"        template \u003d \"ip\u003d[%(address_v6)s]::[%(gateway_v6)s]:\" + \\"},{"line_number":91,"context_line":"                   \"[%(netmask_v6)s]::%(name)s:off \""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    net_config \u003d \u0027\u0027"},{"line_number":94,"context_line":"    for iface in interfaces:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2Frvc%3D","line":91,"updated":"2013-06-12 20:44:28.000000000","message":"Enclose in parentheses to eliminate the backslash continuation.  Also, you don\u0027t need \u0027+\u0027; Python does adjacent string literal folding, just like C.","commit_id":"171d809e91b2e7aad89b0b8df94ed8e4df1813cb"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"ed04f2b7cb2d5aa18066f62acc240c3ad7f04c2a","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    net_config \u003d \u0027\u0027"},{"line_number":94,"context_line":"    for iface in interfaces:"},{"line_number":95,"context_line":"        net_config +\u003d template % iface"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    return net_config"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2FrvY%3D","line":95,"updated":"2013-06-12 20:44:28.000000000","message":"Let me suggest instead something like this:\n\n    net_config \u003d [template % iface for iface in interfaces]\n    return \u0027 \u0027.join(net_config)\n\nNote that this eliminates the need to have trailing spaces in your template strings, too.","commit_id":"171d809e91b2e7aad89b0b8df94ed8e4df1813cb"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"62c31fbf2eb8fbf74b703fcaa11596339b3c3455","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        template \u003d \"ip\u003d%(address)s::%(gateway)s:%(netmask)s::%(name)s:off\""},{"line_number":89,"context_line":"    else:"},{"line_number":90,"context_line":"        template \u003d (\"ip\u003d[%(address_v6)s]::[%(gateway_v6)s]:\""},{"line_number":91,"context_line":"                    \"[%(netmask_v6)s]::%(name)s:off\")"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    net_config \u003d [template % iface for iface in interfaces]"},{"line_number":94,"context_line":"    return \u0027 \u0027.join(net_config)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2F5%2FA%3D","line":91,"updated":"2013-06-18 15:48:07.000000000","message":"These templates should be configurable, no? AIUI support for this is userspace specific on a given distro, so it\u0027s a per-image behaviour.","commit_id":"68e9b487bf6798efdb5146bcab7579c50bed0687"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5420380fade6f4c4aaf8ecbd6a58a329326f2a3a","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        template \u003d \"ip\u003d%(address)s::%(gateway)s:%(netmask)s::%(name)s:off\""},{"line_number":89,"context_line":"    else:"},{"line_number":90,"context_line":"        template \u003d (\"ip\u003d[%(address_v6)s]::[%(gateway_v6)s]:\""},{"line_number":91,"context_line":"                    \"[%(netmask_v6)s]::%(name)s:off\")"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    net_config \u003d [template % iface for iface in interfaces]"},{"line_number":94,"context_line":"    return \u0027 \u0027.join(net_config)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2F0xI%3D","line":91,"in_reply_to":"AAAAPn%2F%2F5%2FA%3D","updated":"2013-06-20 11:14:02.000000000","message":"This syntax is part of the official kernel boot param specification: https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt (search for \"ip\u003d\")\n\nBoth initramfs and dracut mimick that syntax, so I don\u0027t think it should be configurable.","commit_id":"68e9b487bf6798efdb5146bcab7579c50bed0687"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"3c9841b2e12ccdadb05fe7b20d02c54992a7dc7e","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            \u0027aki_path\u0027: aki_path,"},{"line_number":122,"context_line":"            \u0027ari_path\u0027: ari_path,"},{"line_number":123,"context_line":"            \u0027pxe_append_params\u0027: CONF.baremetal.pxe_append_params,"},{"line_number":124,"context_line":"            \u0027pxe_network_config\u0027: network_config,"},{"line_number":125,"context_line":"            }"},{"line_number":126,"context_line":"    cheetah \u003d _get_cheetah()"},{"line_number":127,"context_line":"    pxe_config \u003d str(cheetah("}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FyYk%3D","line":124,"updated":"2013-06-21 09:33:48.000000000","message":"FWIW, I double checked that pxe_network_config \u003d None gets substituted in as an empty string by cheetah","commit_id":"68e9b487bf6798efdb5146bcab7579c50bed0687"}],"nova/virt/baremetal/utils.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"59579c9ff8bf503bf0996723cbbc13fa6735c186","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    try:"},{"line_number":90,"context_line":"        assert isinstance(network_info, list)"},{"line_number":91,"context_line":"    except AssertionError:"},{"line_number":92,"context_line":"        network_info \u003d [network_info]"},{"line_number":93,"context_line":"    interfaces \u003d []"},{"line_number":94,"context_line":"    for id, (network, mapping) in enumerate(network_info):"},{"line_number":95,"context_line":"        address_v6 \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPX%2F%2F5IQ%3D","line":92,"updated":"2013-06-06 16:20:02.000000000","message":"This should just be an if, not a try.  Remember that asserts are disabled when running in optimized mode.","commit_id":"3bfdb40bc4cfdc74be3f954fbefa7b751cb7b7bb"}]}
