)]}'
{"nova/network/model.py":[{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"be976999909500d8164dce54f6760c6b8e065ecc","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                                                    False)"},{"line_number":381,"context_line":"            should_create_vlan \u003d network.get_meta(\u0027should_create_vlan\u0027, False)"},{"line_number":382,"context_line":"            gateway \u003d get_ip(subnet_v4[\u0027gateway\u0027])"},{"line_number":383,"context_line":"            dhcp_server \u003d subnet_v4.get_meta(\u0027dhcp_server\u0027, \u0027\u0027)"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"            network_dict \u003d {"},{"line_number":386,"context_line":"                \u0027bridge\u0027: network[\u0027bridge\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FZcc%3D","line":383,"updated":"2013-05-10 21:33:46.000000000","message":"This is a change in behavior that I think is going to need a lot more justification, and should probably be done on its own if being done at all","commit_id":"445b9650f639969059c9df56436ef31881511554"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"f436d9370c4edf8be6b34e48b3d5ba2afa3f33d5","unresolved":false,"context_lines":[{"line_number":296,"context_line":"def get_netmask(ip, subnet):"},{"line_number":297,"context_line":"    if ip[\u0027version\u0027] \u003d\u003d 4:"},{"line_number":298,"context_line":"        return str(subnet.as_netaddr().netmask)"},{"line_number":299,"context_line":"    return subnet.as_netaddr()._prefixlen"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"class NetworkInfo(list):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAOn%2F%2FWHg%3D","line":299,"updated":"2013-05-14 02:24:18.000000000","message":"I guess the same method doesn\u0027t work for ipv6?","commit_id":"03f8c3df6a9de532d316291638491721548189fe"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"9b381337dccba6f24c1bde2c392f2590e40629f7","unresolved":false,"context_lines":[{"line_number":296,"context_line":"def get_netmask(ip, subnet):"},{"line_number":297,"context_line":"    if ip[\u0027version\u0027] \u003d\u003d 4:"},{"line_number":298,"context_line":"        return str(subnet.as_netaddr().netmask)"},{"line_number":299,"context_line":"    return subnet.as_netaddr()._prefixlen"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"class NetworkInfo(list):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAOn%2F%2FUrs%3D","line":299,"in_reply_to":"AAAAOn%2F%2FWHg%3D","updated":"2013-05-14 18:32:59.000000000","message":"It doesn\u0027t seem to.  I\u0027m not familiar with IPv6 interface configuration, but according to the examples I can find online the netmask in the interfaces file is supposed to be the bits of the mask rather than the mask itself.  For example, using subnet.as_netaddr().netmask seems to return \"ffff::\" whereas what we need for that example is \"16\".\n\nMostly I was just trying to maintain the same behavior as the existing code.  If someone who knows IPv6 better wants to suggest improvements I\u0027m happy to make the changes.\n\nAlso, I\u0027ll add a docstring here to explain what this is for.","commit_id":"03f8c3df6a9de532d316291638491721548189fe"}],"nova/network/quantumv2/api.py":[{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"59b43d6bbcaa7869630146f913cd8336ad3a380d","unresolved":false,"context_lines":[{"line_number":838,"context_line":"            devname \u003d devname[:network_model.NIC_NAME_LEN]"},{"line_number":839,"context_line":""},{"line_number":840,"context_line":"            inject \u003d CONF.flat_injected"},{"line_number":841,"context_line":"            for subnet in subnets:"},{"line_number":842,"context_line":"                # Should never inject static network settings when on"},{"line_number":843,"context_line":"                # a network using DHCP."},{"line_number":844,"context_line":"                if \u0027dhcp_server\u0027 in subnet[\u0027meta\u0027]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOX%2F%2F%2B34%3D","line":841,"updated":"2013-04-03 16:57:14.000000000","message":"if inject is false, do we really need to go through the loop?","commit_id":"ae8dab2c7785a37da2841392657f68995359cf00"},{"author":{"_account_id":642,"name":"Matt Dietz","email":"matthew.dietz@gmail.com","username":"cerberus"},"change_message_id":"521e243af657e6600d43f9119059649400cb5655","unresolved":false,"context_lines":[{"line_number":843,"context_line":"                    # Should never inject static network settings when on"},{"line_number":844,"context_line":"                    # a network using DHCP."},{"line_number":845,"context_line":"                    if \u0027dhcp_server\u0027 in subnet[\u0027meta\u0027]:"},{"line_number":846,"context_line":"                        inject \u003d False"},{"line_number":847,"context_line":""},{"line_number":848,"context_line":"            network \u003d network_model.Network("},{"line_number":849,"context_line":"                id\u003dport[\u0027network_id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOX%2F%2F%2BnU%3D","line":846,"updated":"2013-04-03 19:55:26.000000000","message":"Rescinding my plus 2, I missed this. If we end up setting inject, we should break from the loop. No need to continue looking","commit_id":"832706e769493a9cc3b20c3b7fd7e3901741494b"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"3cb839e868c152321dda9d331301283f9a2713d7","unresolved":false,"context_lines":[{"line_number":843,"context_line":"                    # Should never inject static network settings when on"},{"line_number":844,"context_line":"                    # a network using DHCP."},{"line_number":845,"context_line":"                    if \u0027dhcp_server\u0027 in subnet[\u0027meta\u0027]:"},{"line_number":846,"context_line":"                        inject \u003d False"},{"line_number":847,"context_line":""},{"line_number":848,"context_line":"            network \u003d network_model.Network("},{"line_number":849,"context_line":"                id\u003dport[\u0027network_id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOX%2F%2F%2Bhs%3D","line":846,"in_reply_to":"AAAAOX%2F%2F%2Bls%3D","updated":"2013-04-03 20:42:20.000000000","message":"Whoops, didn\u0027t see Trey\u0027s comment before I submitted the new patch set.\n\ninject is never set back to True inside the loop, so this would check all of the subnets, wouldn\u0027t it?  You\u0027re correct about what I intended.\n\nTo be honest though, when testing this I never actually got more than one subnet passed in for the injection case.  Even when I booted with a nic on a network that has two subnets only the one in which the server\u0027s port got created was actually passed to this function.\n\nI guess I\u0027m not sure if it\u0027s possible to have two conflicting subnets for the purposes of injection, and I don\u0027t know how that _should_ be handled so I went with this.  If you prefer, I\u0027m happy to change the logic so it injects if it finds a static network instead of not injecting if it finds a dynamic one.  Either way would have the same practical effect from what I\u0027ve seen.","commit_id":"832706e769493a9cc3b20c3b7fd7e3901741494b"},{"author":{"_account_id":191,"name":"Trey Morris","email":"trey.morris@rackspace.com","username":"tr3buchet"},"change_message_id":"9b7030a171ff23b3067e15c61d86c4ef4b99d47a","unresolved":false,"context_lines":[{"line_number":843,"context_line":"                    # Should never inject static network settings when on"},{"line_number":844,"context_line":"                    # a network using DHCP."},{"line_number":845,"context_line":"                    if \u0027dhcp_server\u0027 in subnet[\u0027meta\u0027]:"},{"line_number":846,"context_line":"                        inject \u003d False"},{"line_number":847,"context_line":""},{"line_number":848,"context_line":"            network \u003d network_model.Network("},{"line_number":849,"context_line":"                id\u003dport[\u0027network_id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOX%2F%2F%2Bls%3D","line":846,"in_reply_to":"AAAAOX%2F%2F%2BnU%3D","updated":"2013-04-03 20:07:06.000000000","message":"Agree with dietz about the break, this checks to see if the last subnet in subnets has `dhcp_server` in `subnet[\u0027meta\u0027]`. \n\nIt think you meant \"if any subnet in subnets has `dhcp_server in subnet[\u0027meta\u0027]`\", set inject to False.\n\nAlthough I\u0027m a bit concerned because what happens if some of them don\u0027t have `dhcp_server`? It almost seems like you want to do it the opposite of that: \"if any subnet in subnets doesn\u0027t have `dhcp_server in subnet[\u0027meta\u0027]`\" then set inject to True.\n\nAre you assuming either they all have it or none of them have it?","commit_id":"832706e769493a9cc3b20c3b7fd7e3901741494b"}],"nova/virt/netutils.py":[{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"2e796be4ef2b35598a1b8ed2b1d3360904c7211e","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        # server address here.  We should not inject a static configuration"},{"line_number":87,"context_line":"        # for dynamic networks."},{"line_number":88,"context_line":"        if (not network_ref[\u0027injected\u0027] or"},{"line_number":89,"context_line":"                mapping[\u0027dhcp_server\u0027] !\u003d mapping[\u0027gateway\u0027]):"},{"line_number":90,"context_line":"            continue"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        have_injected_networks \u003d True"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2FhaY%3D","line":89,"updated":"2013-05-06 23:36:27.000000000","message":"This seems like an unreliable check ... are you implying that it\u0027s not possible to have the gateway and dhcp_server share the same IP?","commit_id":"9de63cbe456758375e3b0922bc87a792ddea4ce9"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"3a88bf13873e4abbcc170e1cf7c3446c166fce65","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        # server address here.  We should not inject a static configuration"},{"line_number":87,"context_line":"        # for dynamic networks."},{"line_number":88,"context_line":"        if (not network_ref[\u0027injected\u0027] or"},{"line_number":89,"context_line":"                mapping[\u0027dhcp_server\u0027] !\u003d mapping[\u0027gateway\u0027]):"},{"line_number":90,"context_line":"            continue"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        have_injected_networks \u003d True"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2FgJQ%3D","line":89,"in_reply_to":"AAAAOn%2F%2FhaY%3D","updated":"2013-05-07 16:24:10.000000000","message":"Hmm, good point.  My home network is actually set up that way.  I will have to find a different way to do this.","commit_id":"9de63cbe456758375e3b0922bc87a792ddea4ce9"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"f436d9370c4edf8be6b34e48b3d5ba2afa3f33d5","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import netaddr"},{"line_number":26,"context_line":"from nova.network import model"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from oslo.config import cfg"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAOn%2F%2FWH0%3D","line":26,"updated":"2013-05-14 02:24:18.000000000","message":"should be below 29","commit_id":"03f8c3df6a9de532d316291638491721548189fe"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"9b381337dccba6f24c1bde2c392f2590e40629f7","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import netaddr"},{"line_number":26,"context_line":"from nova.network import model"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from oslo.config import cfg"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAOn%2F%2FUqk%3D","line":26,"in_reply_to":"AAAAOn%2F%2FWH0%3D","updated":"2013-05-14 18:32:59.000000000","message":"Oops.  Fixed.","commit_id":"03f8c3df6a9de532d316291638491721548189fe"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"f436d9370c4edf8be6b34e48b3d5ba2afa3f33d5","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    :param template: Path to the interfaces template file."},{"line_number":75,"context_line":"    \"\"\""},{"line_number":76,"context_line":"    if network_info is None or template is None:"},{"line_number":77,"context_line":"        return None"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    nets \u003d []"},{"line_number":80,"context_line":"    ifc_num \u003d -1"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAOn%2F%2FWHs%3D","line":77,"updated":"2013-05-14 02:24:18.000000000","message":"nit: none is implied; return","commit_id":"03f8c3df6a9de532d316291638491721548189fe"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"9b381337dccba6f24c1bde2c392f2590e40629f7","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    :param template: Path to the interfaces template file."},{"line_number":75,"context_line":"    \"\"\""},{"line_number":76,"context_line":"    if network_info is None or template is None:"},{"line_number":77,"context_line":"        return None"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    nets \u003d []"},{"line_number":80,"context_line":"    ifc_num \u003d -1"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAOn%2F%2FUoo%3D","line":77,"in_reply_to":"AAAAOn%2F%2FWHs%3D","updated":"2013-05-14 18:32:59.000000000","message":"Done","commit_id":"03f8c3df6a9de532d316291638491721548189fe"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"13b35604d277c57f76a7619f3ebe3255d98412f3","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    # If we\u0027re passed new network_info, make use of it instead of forcing"},{"line_number":162,"context_line":"    # it to legacy format."},{"line_number":163,"context_line":"    if hasattr(network_info, \u0027legacy\u0027):"},{"line_number":164,"context_line":"        return get_non_legacy_network_template(network_info,"},{"line_number":165,"context_line":"                                               use_ipv6,"},{"line_number":166,"context_line":"                                               template)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAO3%2F%2F%2FlQ%3D","line":163,"updated":"2013-05-15 10:34:28.000000000","message":"Wonder if:  isinstance(model.NetworkInfo) is more clear.","commit_id":"3b4233f19305c1dd0359c8c7c97cb34ae1a6c3d4"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"8a5f3ace8a8e25856409d9a2383a687f82a2343f","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    # If we\u0027re passed new network_info, make use of it instead of forcing"},{"line_number":162,"context_line":"    # it to legacy format."},{"line_number":163,"context_line":"    if hasattr(network_info, \u0027legacy\u0027):"},{"line_number":164,"context_line":"        return get_non_legacy_network_template(network_info,"},{"line_number":165,"context_line":"                                               use_ipv6,"},{"line_number":166,"context_line":"                                               template)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAO3%2F%2F%2B5g%3D","line":163,"in_reply_to":"AAAAO3%2F%2F%2FlQ%3D","updated":"2013-05-15 15:54:17.000000000","message":"Agreed.  For the new code it makes more sense that way.","commit_id":"3b4233f19305c1dd0359c8c7c97cb34ae1a6c3d4"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"0991bc1a205ecf1dfef0c42ab5064a20c4619516","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        even if an IPv6 subnet is present in network_info."},{"line_number":75,"context_line":"    :param template: Path to the interfaces template file."},{"line_number":76,"context_line":"    \"\"\""},{"line_number":77,"context_line":"    if network_info is None or template is None:"},{"line_number":78,"context_line":"        return"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    nets \u003d []"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAO3%2F%2F92k%3D","line":77,"updated":"2013-05-15 22:47:32.000000000","message":"nit: if not (network_info and template):","commit_id":"c5a2891d4329f26d3c4647487507496b62bfb32a"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"f9d1e663b3784852ad326a02e92942648eb3bfaa","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        even if an IPv6 subnet is present in network_info."},{"line_number":75,"context_line":"    :param template: Path to the interfaces template file."},{"line_number":76,"context_line":"    \"\"\""},{"line_number":77,"context_line":"    if network_info is None or template is None:"},{"line_number":78,"context_line":"        return"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    nets \u003d []"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAO3%2F%2F8eY%3D","line":77,"in_reply_to":"AAAAO3%2F%2F918%3D","updated":"2013-05-16 14:58:53.000000000","message":"Actually, I see that I messed up the template check.  It was originally just \"not template\" and when I moved it I changed it to check for None.  TBH, if network_info is an object that evaluates to false we probably shouldn\u0027t continue either.  I\u0027ll make the change you suggested in your first comment.","commit_id":"c5a2891d4329f26d3c4647487507496b62bfb32a"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"767505893a9c353804dd0d2d505bb3148cf144ff","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        even if an IPv6 subnet is present in network_info."},{"line_number":75,"context_line":"    :param template: Path to the interfaces template file."},{"line_number":76,"context_line":"    \"\"\""},{"line_number":77,"context_line":"    if network_info is None or template is None:"},{"line_number":78,"context_line":"        return"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    nets \u003d []"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAO3%2F%2F918%3D","line":77,"in_reply_to":"AAAAO3%2F%2F92k%3D","updated":"2013-05-15 22:48:47.000000000","message":"nvm you probably want the None type checking.","commit_id":"c5a2891d4329f26d3c4647487507496b62bfb32a"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"0991bc1a205ecf1dfef0c42ab5064a20c4619516","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    ipv6_is_available \u003d False"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    for vif in network_info:"},{"line_number":85,"context_line":"        if not vif[\u0027network\u0027] or not vif[\u0027network\u0027][\u0027subnets\u0027]:"},{"line_number":86,"context_line":"            continue"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        network \u003d vif[\u0027network\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAO3%2F%2F92M%3D","line":85,"updated":"2013-05-15 22:47:32.000000000","message":"ditto","commit_id":"c5a2891d4329f26d3c4647487507496b62bfb32a"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"f9d1e663b3784852ad326a02e92942648eb3bfaa","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    ipv6_is_available \u003d False"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    for vif in network_info:"},{"line_number":85,"context_line":"        if not vif[\u0027network\u0027] or not vif[\u0027network\u0027][\u0027subnets\u0027]:"},{"line_number":86,"context_line":"            continue"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        network \u003d vif[\u0027network\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAO3%2F%2F8eQ%3D","line":85,"in_reply_to":"AAAAO3%2F%2F92M%3D","updated":"2013-05-16 14:58:53.000000000","message":"Just for reference, this one has to be this way to short-circuit the second check if vif[\u0027network\u0027] is None.","commit_id":"c5a2891d4329f26d3c4647487507496b62bfb32a"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"1759f67c0cca0e472b7ec3f78d2cf06382e56120","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    ipv6_is_available \u003d False"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    for vif in network_info:"},{"line_number":85,"context_line":"        if not vif[\u0027network\u0027] or not vif[\u0027network\u0027][\u0027subnets\u0027]:"},{"line_number":86,"context_line":"            continue"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        network \u003d vif[\u0027network\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAO3%2F%2F8NA%3D","line":85,"updated":"2013-05-16 16:27:56.000000000","message":"Actually, in \"if not (vif[\u0027network\u0027] and vif[\u0027network\u0027][\u0027subnets\u0027])\", if vif[\u0027network\u0027] is None, the \"and\" short-circuits and the parenthesized expression returns False; this is inverted to True by the \"not\" operator, and the \"then\" branch of the \"if\" condition triggers, so either way, the logic is the same.\n\nThat said, I don\u0027t care exactly how this is done, and I actually slightly like the more explicit format that it\u0027s currently in, so…","commit_id":"2807ea5464e610b4ac77d95f9216b86b5f36bde0"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"e0b3e19f291c3aed119f17765d9adf76ee1fecb8","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    ipv6_is_available \u003d False"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    for vif in network_info:"},{"line_number":85,"context_line":"        if not vif[\u0027network\u0027] or not vif[\u0027network\u0027][\u0027subnets\u0027]:"},{"line_number":86,"context_line":"            continue"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        network \u003d vif[\u0027network\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAO3%2F%2F8LI%3D","line":85,"in_reply_to":"AAAAO3%2F%2F8NA%3D","updated":"2013-05-16 16:35:47.000000000","message":"Whoops, you\u0027re right.  I messed up the logic and left the or in there when I tested it.","commit_id":"2807ea5464e610b4ac77d95f9216b86b5f36bde0"}]}
