)]}'
{"nova/network/linux_net.py":[{"author":{"_account_id":20223,"name":"zhaolihui","email":"zhaolh@awcloud.com","username":"zhaolihui"},"change_message_id":"d2122495c99e5e90121bff16ae7ebf815acb3b72","unresolved":false,"context_lines":[{"line_number":1352,"context_line":"        utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, dev, \u0027up\u0027, run_as_root\u003dTrue)"},{"line_number":1353,"context_line":"        utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, dev, \u0027promisc\u0027, \u0027on\u0027,"},{"line_number":1354,"context_line":"                      run_as_root\u003dTrue)"},{"line_number":1355,"context_line":"        _set_device_mtu(dev, mtu)"},{"line_number":1356,"context_line":""},{"line_number":1357,"context_line":""},{"line_number":1358,"context_line":"def _ovs_vsctl(args):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bae84128_0446414e","line":1355,"range":{"start_line":1355,"start_character":8,"end_line":1355,"end_character":33},"updated":"2016-02-24 08:25:19.000000000","message":"In \u0027_set_device_mtu(dev)\u0027 method the mtu\u0027s value is from conf file","commit_id":"95d50fdd10f9b3cf86613e70171a08f939320c87"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"4107c7e77e0ef73cdad8646dc48f44557a42215c","unresolved":false,"context_lines":[{"line_number":1352,"context_line":"        utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, dev, \u0027up\u0027, run_as_root\u003dTrue)"},{"line_number":1353,"context_line":"        utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, dev, \u0027promisc\u0027, \u0027on\u0027,"},{"line_number":1354,"context_line":"                      run_as_root\u003dTrue)"},{"line_number":1355,"context_line":"        _set_device_mtu(dev, mtu)"},{"line_number":1356,"context_line":""},{"line_number":1357,"context_line":""},{"line_number":1358,"context_line":"def _ovs_vsctl(args):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bae84128_b31a197b","line":1355,"range":{"start_line":1355,"start_character":8,"end_line":1355,"end_character":33},"in_reply_to":"bae84128_0446414e","updated":"2016-02-24 16:28:26.000000000","message":"it\u0027s only from a conf file if the MTU is None.","commit_id":"95d50fdd10f9b3cf86613e70171a08f939320c87"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"20d41a10b12b9e07d2a21e3e120965b66e9bdd79","unresolved":false,"context_lines":[{"line_number":144,"context_line":"CONF.import_opt(\u0027host\u0027, \u0027nova.netconf\u0027)"},{"line_number":145,"context_line":"CONF.import_opt(\u0027use_ipv6\u0027, \u0027nova.netconf\u0027)"},{"line_number":146,"context_line":"CONF.import_opt(\u0027my_ip\u0027, \u0027nova.netconf\u0027)"},{"line_number":147,"context_line":"CONF.import_opt(\u0027network_device_mtu\u0027, \u0027nova.objects.network\u0027)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"# NOTE(vish): Iptables supports chain names of up to 28 characters,  and we"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_46a2e69b","line":147,"range":{"start_line":147,"start_character":0,"end_line":147,"end_character":61},"updated":"2016-02-24 18:16:23.000000000","message":"The option was deprecated back in Juno in 44670135be0640622bf6ab74552aa4a9efd21b0c. We should probably thing about formally deprecating that option either in this change or one that builds on it by setting the deprecated_for_removal flag in the option def.  Then people would at least get warnings in the logs when using it and I think we could get more serious about removing it in N or O.","commit_id":"dc3422bc7b22c6338e9b2a8a237010f94ac8e5e4"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"8a567b390d105d7682192e0c0baad3fc897d6327","unresolved":false,"context_lines":[{"line_number":144,"context_line":"CONF.import_opt(\u0027host\u0027, \u0027nova.netconf\u0027)"},{"line_number":145,"context_line":"CONF.import_opt(\u0027use_ipv6\u0027, \u0027nova.netconf\u0027)"},{"line_number":146,"context_line":"CONF.import_opt(\u0027my_ip\u0027, \u0027nova.netconf\u0027)"},{"line_number":147,"context_line":"CONF.import_opt(\u0027network_device_mtu\u0027, \u0027nova.objects.network\u0027)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"# NOTE(vish): Iptables supports chain names of up to 28 characters,  and we"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_8f6b6185","line":147,"range":{"start_line":147,"start_character":0,"end_line":147,"end_character":61},"in_reply_to":"bae84128_46a2e69b","updated":"2016-02-24 19:11:40.000000000","message":"follow up change sounds good.","commit_id":"dc3422bc7b22c6338e9b2a8a237010f94ac8e5e4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d3ccedf9fc48ba666142925dffc3d75d23ecafb3","unresolved":false,"context_lines":[{"line_number":1331,"context_line":"def _set_device_mtu(dev, mtu\u003dNone):"},{"line_number":1332,"context_line":"    \"\"\"Set the device MTU.\"\"\""},{"line_number":1333,"context_line":""},{"line_number":1334,"context_line":"    if not mtu:"},{"line_number":1335,"context_line":"        mtu \u003d CONF.network_device_mtu"},{"line_number":1336,"context_line":"    if mtu:"},{"line_number":1337,"context_line":"        utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, dev, \u0027mtu\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_816de634","line":1334,"updated":"2016-03-01 16:01:14.000000000","message":"With Neutron before https://review.openstack.org/#/c/284407/ it will pass 0 for mtu by default, which would mean we\u0027d use the nova config option value, which defaults to None so we just wouldn\u0027t set mtu on the network. So I think we\u0027re OK with the defaults and upgrade scenarios.","commit_id":"69ec718b62db5766e43552cadfc7b659c7025ba4"}],"nova/network/neutronv2/api.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"20d41a10b12b9e07d2a21e3e120965b66e9bdd79","unresolved":false,"context_lines":[{"line_number":1630,"context_line":"            injected\u003dCONF.flat_injected,"},{"line_number":1631,"context_line":"            label\u003dnetwork_name,"},{"line_number":1632,"context_line":"            tenant_id\u003dtenant_id,"},{"line_number":1633,"context_line":"            mtu\u003dnetwork_mtu"},{"line_number":1634,"context_line":"            )"},{"line_number":1635,"context_line":"        network[\u0027subnets\u0027] \u003d subnets"},{"line_number":1636,"context_line":"        port_profile \u003d port.get(\u0027binding:profile\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_e615fa49","line":1633,"range":{"start_line":1633,"start_character":12,"end_line":1633,"end_character":27},"updated":"2016-02-24 18:16:23.000000000","message":"Would be nice to have a neutronv2 unit test that asserts we\u0027re actually setting this. There should probably already be an existing test you could just modify to set a fake mtu in a fake network that the test is using and then assert it shows up in the network object that\u0027s returned.","commit_id":"dc3422bc7b22c6338e9b2a8a237010f94ac8e5e4"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"8a567b390d105d7682192e0c0baad3fc897d6327","unresolved":false,"context_lines":[{"line_number":1630,"context_line":"            injected\u003dCONF.flat_injected,"},{"line_number":1631,"context_line":"            label\u003dnetwork_name,"},{"line_number":1632,"context_line":"            tenant_id\u003dtenant_id,"},{"line_number":1633,"context_line":"            mtu\u003dnetwork_mtu"},{"line_number":1634,"context_line":"            )"},{"line_number":1635,"context_line":"        network[\u0027subnets\u0027] \u003d subnets"},{"line_number":1636,"context_line":"        port_profile \u003d port.get(\u0027binding:profile\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_af08e5da","line":1633,"range":{"start_line":1633,"start_character":12,"end_line":1633,"end_character":27},"in_reply_to":"bae84128_e615fa49","updated":"2016-02-24 19:11:40.000000000","message":"Done","commit_id":"dc3422bc7b22c6338e9b2a8a237010f94ac8e5e4"}],"nova/virt/libvirt/vif.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"20d41a10b12b9e07d2a21e3e120965b66e9bdd79","unresolved":false,"context_lines":[{"line_number":501,"context_line":"                              check_exit_code\u003d[0, 1])"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"        if not linux_net.device_exists(v2_name):"},{"line_number":504,"context_line":"            mtu \u003d vif[\u0027network\u0027].get_meta(\u0027mtu\u0027, None)"},{"line_number":505,"context_line":"            linux_net._create_veth_pair(v1_name, v2_name, mtu)"},{"line_number":506,"context_line":"            utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, br_name, \u0027up\u0027, run_as_root\u003dTrue)"},{"line_number":507,"context_line":"            utils.execute(\u0027brctl\u0027, \u0027addif\u0027, br_name, v1_name, run_as_root\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_a6cad218","line":504,"range":{"start_line":504,"start_character":49,"end_line":504,"end_character":53},"updated":"2016-02-24 18:16:23.000000000","message":"I don\u0027t think you need this since it\u0027s already the default:\n\nhttps://github.com/openstack/nova/blob/master/nova/network/model.py#L142","commit_id":"dc3422bc7b22c6338e9b2a8a237010f94ac8e5e4"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"8a567b390d105d7682192e0c0baad3fc897d6327","unresolved":false,"context_lines":[{"line_number":501,"context_line":"                              check_exit_code\u003d[0, 1])"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"        if not linux_net.device_exists(v2_name):"},{"line_number":504,"context_line":"            mtu \u003d vif[\u0027network\u0027].get_meta(\u0027mtu\u0027, None)"},{"line_number":505,"context_line":"            linux_net._create_veth_pair(v1_name, v2_name, mtu)"},{"line_number":506,"context_line":"            utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, br_name, \u0027up\u0027, run_as_root\u003dTrue)"},{"line_number":507,"context_line":"            utils.execute(\u0027brctl\u0027, \u0027addif\u0027, br_name, v1_name, run_as_root\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_af2f453d","line":504,"range":{"start_line":504,"start_character":49,"end_line":504,"end_character":53},"in_reply_to":"bae84128_a6cad218","updated":"2016-02-24 19:11:40.000000000","message":"Done","commit_id":"dc3422bc7b22c6338e9b2a8a237010f94ac8e5e4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"20d41a10b12b9e07d2a21e3e120965b66e9bdd79","unresolved":false,"context_lines":[{"line_number":636,"context_line":"        dev \u003d self.get_vif_devname(vif)"},{"line_number":637,"context_line":"        mac \u003d vif[\u0027details\u0027].get(network_model.VIF_DETAILS_TAP_MAC_ADDRESS)"},{"line_number":638,"context_line":"        linux_net.create_tap_dev(dev, mac)"},{"line_number":639,"context_line":"        network \u003d vif.get(\u0027network\u0027)"},{"line_number":640,"context_line":"        mtu \u003d network.get_meta(\u0027mtu\u0027, None) if network else None"},{"line_number":641,"context_line":"        linux_net._set_device_mtu(dev, mtu)"},{"line_number":642,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_06b57e7d","line":639,"range":{"start_line":639,"start_character":18,"end_line":639,"end_character":36},"updated":"2016-02-24 18:16:23.000000000","message":"Hmm can network not be set in the vif at this point? I just noticed that you\u0027re being careful here but assuming it\u0027s set in the code above.","commit_id":"dc3422bc7b22c6338e9b2a8a237010f94ac8e5e4"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"8a567b390d105d7682192e0c0baad3fc897d6327","unresolved":false,"context_lines":[{"line_number":636,"context_line":"        dev \u003d self.get_vif_devname(vif)"},{"line_number":637,"context_line":"        mac \u003d vif[\u0027details\u0027].get(network_model.VIF_DETAILS_TAP_MAC_ADDRESS)"},{"line_number":638,"context_line":"        linux_net.create_tap_dev(dev, mac)"},{"line_number":639,"context_line":"        network \u003d vif.get(\u0027network\u0027)"},{"line_number":640,"context_line":"        mtu \u003d network.get_meta(\u0027mtu\u0027, None) if network else None"},{"line_number":641,"context_line":"        linux_net._set_device_mtu(dev, mtu)"},{"line_number":642,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_6fed3def","line":639,"range":{"start_line":639,"start_character":18,"end_line":639,"end_character":36},"in_reply_to":"bae84128_06b57e7d","updated":"2016-02-24 19:11:40.000000000","message":"I\u0027m not sure if it was just oversight in the test framework, but the vif object coming in had no network attached. I wasn\u0027t sure if there was a way to have a vif in a detached state, so I was being defensive.","commit_id":"dc3422bc7b22c6338e9b2a8a237010f94ac8e5e4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"20d41a10b12b9e07d2a21e3e120965b66e9bdd79","unresolved":false,"context_lines":[{"line_number":637,"context_line":"        mac \u003d vif[\u0027details\u0027].get(network_model.VIF_DETAILS_TAP_MAC_ADDRESS)"},{"line_number":638,"context_line":"        linux_net.create_tap_dev(dev, mac)"},{"line_number":639,"context_line":"        network \u003d vif.get(\u0027network\u0027)"},{"line_number":640,"context_line":"        mtu \u003d network.get_meta(\u0027mtu\u0027, None) if network else None"},{"line_number":641,"context_line":"        linux_net._set_device_mtu(dev, mtu)"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    def plug_vhostuser_fp(self, instance, vif):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_46dae6ea","line":640,"range":{"start_line":640,"start_character":38,"end_line":640,"end_character":42},"updated":"2016-02-24 18:16:23.000000000","message":"ditto","commit_id":"dc3422bc7b22c6338e9b2a8a237010f94ac8e5e4"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"8a567b390d105d7682192e0c0baad3fc897d6327","unresolved":false,"context_lines":[{"line_number":637,"context_line":"        mac \u003d vif[\u0027details\u0027].get(network_model.VIF_DETAILS_TAP_MAC_ADDRESS)"},{"line_number":638,"context_line":"        linux_net.create_tap_dev(dev, mac)"},{"line_number":639,"context_line":"        network \u003d vif.get(\u0027network\u0027)"},{"line_number":640,"context_line":"        mtu \u003d network.get_meta(\u0027mtu\u0027, None) if network else None"},{"line_number":641,"context_line":"        linux_net._set_device_mtu(dev, mtu)"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    def plug_vhostuser_fp(self, instance, vif):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_afbd85d9","line":640,"range":{"start_line":640,"start_character":38,"end_line":640,"end_character":42},"in_reply_to":"bae84128_46dae6ea","updated":"2016-02-24 19:11:40.000000000","message":"Done","commit_id":"dc3422bc7b22c6338e9b2a8a237010f94ac8e5e4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"20d41a10b12b9e07d2a21e3e120965b66e9bdd79","unresolved":false,"context_lines":[{"line_number":663,"context_line":"                                  dev, run_as_root\u003dTrue)"},{"line_number":664,"context_line":"                else:"},{"line_number":665,"context_line":"                    iface_id \u003d self.get_ovs_interfaceid(vif)"},{"line_number":666,"context_line":"                    mtu \u003d vif[\u0027network\u0027].get_meta(\u0027mtu\u0027, None)"},{"line_number":667,"context_line":"                    linux_net.create_ovs_vif_port(self.get_bridge_name(vif),"},{"line_number":668,"context_line":"                                                  dev, iface_id,"},{"line_number":669,"context_line":"                                                  vif[\u0027address\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_a6665227","line":666,"range":{"start_line":666,"start_character":57,"end_line":666,"end_character":61},"updated":"2016-02-24 18:16:23.000000000","message":"ditto","commit_id":"dc3422bc7b22c6338e9b2a8a237010f94ac8e5e4"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"8a567b390d105d7682192e0c0baad3fc897d6327","unresolved":false,"context_lines":[{"line_number":663,"context_line":"                                  dev, run_as_root\u003dTrue)"},{"line_number":664,"context_line":"                else:"},{"line_number":665,"context_line":"                    iface_id \u003d self.get_ovs_interfaceid(vif)"},{"line_number":666,"context_line":"                    mtu \u003d vif[\u0027network\u0027].get_meta(\u0027mtu\u0027, None)"},{"line_number":667,"context_line":"                    linux_net.create_ovs_vif_port(self.get_bridge_name(vif),"},{"line_number":668,"context_line":"                                                  dev, iface_id,"},{"line_number":669,"context_line":"                                                  vif[\u0027address\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_0fb3d10b","line":666,"range":{"start_line":666,"start_character":57,"end_line":666,"end_character":61},"in_reply_to":"bae84128_a6665227","updated":"2016-02-24 19:11:40.000000000","message":"Done","commit_id":"dc3422bc7b22c6338e9b2a8a237010f94ac8e5e4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"20d41a10b12b9e07d2a21e3e120965b66e9bdd79","unresolved":false,"context_lines":[{"line_number":676,"context_line":"        iface_id \u003d self.get_ovs_interfaceid(vif)"},{"line_number":677,"context_line":"        port_name \u003d os.path.basename("},{"line_number":678,"context_line":"            vif[\u0027details\u0027][network_model.VIF_DETAILS_VHOSTUSER_SOCKET])"},{"line_number":679,"context_line":"        mtu \u003d vif[\u0027network\u0027].get_meta(\u0027mtu\u0027, None)"},{"line_number":680,"context_line":"        linux_net.create_ovs_vif_port(self.get_bridge_name(vif),"},{"line_number":681,"context_line":"                                      port_name, iface_id, vif[\u0027address\u0027],"},{"line_number":682,"context_line":"                                      instance.uuid, mtu)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_66a60a55","line":679,"range":{"start_line":679,"start_character":45,"end_line":679,"end_character":49},"updated":"2016-02-24 18:16:23.000000000","message":"None is already the default.","commit_id":"dc3422bc7b22c6338e9b2a8a237010f94ac8e5e4"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"8a567b390d105d7682192e0c0baad3fc897d6327","unresolved":false,"context_lines":[{"line_number":676,"context_line":"        iface_id \u003d self.get_ovs_interfaceid(vif)"},{"line_number":677,"context_line":"        port_name \u003d os.path.basename("},{"line_number":678,"context_line":"            vif[\u0027details\u0027][network_model.VIF_DETAILS_VHOSTUSER_SOCKET])"},{"line_number":679,"context_line":"        mtu \u003d vif[\u0027network\u0027].get_meta(\u0027mtu\u0027, None)"},{"line_number":680,"context_line":"        linux_net.create_ovs_vif_port(self.get_bridge_name(vif),"},{"line_number":681,"context_line":"                                      port_name, iface_id, vif[\u0027address\u0027],"},{"line_number":682,"context_line":"                                      instance.uuid, mtu)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_efb78df3","line":679,"range":{"start_line":679,"start_character":45,"end_line":679,"end_character":49},"in_reply_to":"bae84128_66a60a55","updated":"2016-02-24 19:11:40.000000000","message":"Done","commit_id":"dc3422bc7b22c6338e9b2a8a237010f94ac8e5e4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"86dd6fa7bbcf791767853cd27504852d30c1e307","unresolved":false,"context_lines":[{"line_number":501,"context_line":"                              check_exit_code\u003d[0, 1])"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"        if not linux_net.device_exists(v2_name):"},{"line_number":504,"context_line":"            mtu \u003d vif[\u0027network\u0027].get_meta(\u0027mtu\u0027)"},{"line_number":505,"context_line":"            linux_net._create_veth_pair(v1_name, v2_name, mtu)"},{"line_number":506,"context_line":"            utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, br_name, \u0027up\u0027, run_as_root\u003dTrue)"},{"line_number":507,"context_line":"            utils.execute(\u0027brctl\u0027, \u0027addif\u0027, br_name, v1_name, run_as_root\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aed3d3a_d41c95c3","line":504,"range":{"start_line":504,"start_character":18,"end_line":504,"end_character":32},"updated":"2016-02-26 17:38:28.000000000","message":"Note to self, this is OK to expect \u0027network\u0027 will be in vif because below we call get_bridge_name and that does vif[\u0027network\u0027][\u0027bridge\u0027].","commit_id":"69ec718b62db5766e43552cadfc7b659c7025ba4"}]}
