)]}'
{"quantum/agent/linux/interface.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"49c56402fca95e0cc6df4873210517223315fe9a","unresolved":false,"context_lines":[{"line_number":297,"context_line":"            LOG.error(_(\"Failed unplugging interface \u0027%s\u0027\") %"},{"line_number":298,"context_line":"                      device_name)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        if namespace:"},{"line_number":301,"context_line":"            ip \u003d ip_lib.IPWrapper(self.conf.root_helper, namespace)"},{"line_number":302,"context_line":"            ip.garbage_collect_namespace()"},{"line_number":303,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FcD8%3D","line":300,"updated":"2012-09-11 13:25:21.000000000","message":"Can you please remove the garbage collection. When using the l3 agent with ovs the deletion of the namespace causes an exception.","commit_id":"09efa0c470eed8b3f6fc9f513ca59c225187a48a"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":297,"context_line":"            LOG.error(_(\"Failed unplugging interface \u0027%s\u0027\") %"},{"line_number":298,"context_line":"                      device_name)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        if namespace:"},{"line_number":301,"context_line":"            ip \u003d ip_lib.IPWrapper(self.conf.root_helper, namespace)"},{"line_number":302,"context_line":"            ip.garbage_collect_namespace()"},{"line_number":303,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FcDQ%3D","line":300,"in_reply_to":"AAAALH%2F%2FcD8%3D","updated":"2012-09-11 13:43:08.000000000","message":"I also confirmed that behavior. Should I remove garbage collection from not only OVSVethInterfaceDriver but also OVSInterfaceDriver?","commit_id":"09efa0c470eed8b3f6fc9f513ca59c225187a48a"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":297,"context_line":"            LOG.error(_(\"Failed unplugging interface \u0027%s\u0027\") %"},{"line_number":298,"context_line":"                      device_name)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        if namespace:"},{"line_number":301,"context_line":"            ip \u003d ip_lib.IPWrapper(self.conf.root_helper, namespace)"},{"line_number":302,"context_line":"            ip.garbage_collect_namespace()"},{"line_number":303,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FcBw%3D","line":300,"in_reply_to":"AAAALH%2F%2FcDQ%3D","updated":"2012-09-11 14:16:17.000000000","message":"I checked https://review.openstack.org/#/c/12691/ and understand your comment. This patch removes garbage collection from the existing interface drivers.","commit_id":"09efa0c470eed8b3f6fc9f513ca59c225187a48a"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":120,"context_line":"                \u0027external-ids:iface-status\u003dactive\u0027,"},{"line_number":121,"context_line":"                \u0027--\u0027, \u0027set\u0027, \u0027Interface\u0027, device_name,"},{"line_number":122,"context_line":"                \u0027external-ids:attached-mac\u003d%s\u0027 % mac_address]"},{"line_number":123,"context_line":"        #LOG.debug(\u0027_ovs_add_port: %s\u0027 % cmd)"},{"line_number":124,"context_line":"        utils.execute(cmd, self.conf.root_helper)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def plug(self, network_id, port_id, device_name, mac_address,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2Fb6U%3D","line":123,"updated":"2012-09-11 16:31:52.000000000","message":"pls remove this line if/when you rebase","commit_id":"6c77ce7ef9e14ae3304972d7b96727dc585eebcf"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":120,"context_line":"                \u0027external-ids:iface-status\u003dactive\u0027,"},{"line_number":121,"context_line":"                \u0027--\u0027, \u0027set\u0027, \u0027Interface\u0027, device_name,"},{"line_number":122,"context_line":"                \u0027external-ids:attached-mac\u003d%s\u0027 % mac_address]"},{"line_number":123,"context_line":"        #LOG.debug(\u0027_ovs_add_port: %s\u0027 % cmd)"},{"line_number":124,"context_line":"        utils.execute(cmd, self.conf.root_helper)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def plug(self, network_id, port_id, device_name, mac_address,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2Fb38%3D","line":123,"in_reply_to":"AAAALH%2F%2Fb6U%3D","updated":"2012-09-11 17:09:48.000000000","message":"Wil fix.","commit_id":"6c77ce7ef9e14ae3304972d7b96727dc585eebcf"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":256,"context_line":"            self._ovs_add_port(bridge, tap_name, port_id, mac_address,"},{"line_number":257,"context_line":"                               internal\u003dFalse)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"            ns_veth.link.set_address(mac_address)"},{"line_number":260,"context_line":"            if self.conf.network_device_mtu:"},{"line_number":261,"context_line":"                ns_veth.link.set_mtu(self.conf.network_device_mtu)"},{"line_number":262,"context_line":"                root_veth.link.set_mtu(self.conf.network_device_mtu)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2Fb6A%3D","line":259,"updated":"2012-09-11 16:31:52.000000000","message":"is setting mac only needed on one of the two veth devices, or both?  I\u0027m not sure, but figured I would raise the question.","commit_id":"6c77ce7ef9e14ae3304972d7b96727dc585eebcf"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":256,"context_line":"            self._ovs_add_port(bridge, tap_name, port_id, mac_address,"},{"line_number":257,"context_line":"                               internal\u003dFalse)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"            ns_veth.link.set_address(mac_address)"},{"line_number":260,"context_line":"            if self.conf.network_device_mtu:"},{"line_number":261,"context_line":"                ns_veth.link.set_mtu(self.conf.network_device_mtu)"},{"line_number":262,"context_line":"                root_veth.link.set_mtu(self.conf.network_device_mtu)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2Fb4I%3D","line":259,"in_reply_to":"AAAALH%2F%2Fb6A%3D","updated":"2012-09-11 17:09:48.000000000","message":"I think we need to set mac to the veth peer device moved to a namespace since this net device is an IP endpoint and mac address set to the device is used as mac address of a termianl. On the other hand, the other peer of veth pair is connected to OVS and a mac of this peer is never referred. Thus I set mac address only to the former device (ns_veth). Does it make sense?","commit_id":"6c77ce7ef9e14ae3304972d7b96727dc585eebcf"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":283,"context_line":"            ovs.delete_port(tap_name)"},{"line_number":284,"context_line":"            device \u003d ip_lib.IPDevice(device_name, self.conf.root_helper,"},{"line_number":285,"context_line":"                                     namespace)"},{"line_number":286,"context_line":"            device.link.delete()"},{"line_number":287,"context_line":"            LOG.debug(_(\"Unplugged interface \u0027%s\u0027\") % device_name)"},{"line_number":288,"context_line":"        except RuntimeError:"},{"line_number":289,"context_line":"            LOG.error(_(\"Failed unplugging interface \u0027%s\u0027\") %"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2Fb54%3D","line":286,"updated":"2012-09-11 16:31:52.000000000","message":"don\u0027t you have two devices to delete now?","commit_id":"6c77ce7ef9e14ae3304972d7b96727dc585eebcf"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":283,"context_line":"            ovs.delete_port(tap_name)"},{"line_number":284,"context_line":"            device \u003d ip_lib.IPDevice(device_name, self.conf.root_helper,"},{"line_number":285,"context_line":"                                     namespace)"},{"line_number":286,"context_line":"            device.link.delete()"},{"line_number":287,"context_line":"            LOG.debug(_(\"Unplugged interface \u0027%s\u0027\") % device_name)"},{"line_number":288,"context_line":"        except RuntimeError:"},{"line_number":289,"context_line":"            LOG.error(_(\"Failed unplugging interface \u0027%s\u0027\") %"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2Fb5U%3D","line":286,"in_reply_to":"AAAALH%2F%2Fb54%3D","updated":"2012-09-11 17:09:48.000000000","message":"In case of veth, when one peer device is removed the other peer device is automatically removed.","commit_id":"6c77ce7ef9e14ae3304972d7b96727dc585eebcf"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        if namespace:"},{"line_number":293,"context_line":"            ip \u003d ip_lib.IPWrapper(self.conf.root_helper, namespace)"},{"line_number":294,"context_line":"            ip.garbage_collect_namespace()"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"class MetaInterfaceDriver(LinuxInterfaceDriver):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2Fb7w%3D","line":294,"updated":"2012-09-11 16:01:47.000000000","message":"Another change under review removes the code for garbage collecting the namespace (https://review.openstack.org/#/c/12691/8/quantum/agent/linux/interface.py)\n\nthe same should probably happen here as well.\n\nThis is just a reminder for the rebase you\u0027re going to do - as it will not show up as a conflict.","commit_id":"6c77ce7ef9e14ae3304972d7b96727dc585eebcf"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        if namespace:"},{"line_number":293,"context_line":"            ip \u003d ip_lib.IPWrapper(self.conf.root_helper, namespace)"},{"line_number":294,"context_line":"            ip.garbage_collect_namespace()"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"class MetaInterfaceDriver(LinuxInterfaceDriver):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2Fb40%3D","line":294,"in_reply_to":"AAAALH%2F%2Fb7w%3D","updated":"2012-09-11 17:09:48.000000000","message":"Thanks, I forgot to remove it when I rebased.","commit_id":"6c77ce7ef9e14ae3304972d7b96727dc585eebcf"}],"quantum/tests/unit/test_linux_interface.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":171,"context_line":"                                     mock.call().delete_port(\u0027tap0\u0027)])"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class TestOVSVethInterfaceDriver(TestBase):"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def test_get_device_name(self):"},{"line_number":177,"context_line":"        br \u003d interface.OVSVethInterfaceDriver(self.conf)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2Fb7s%3D","line":174,"updated":"2012-09-11 16:01:47.000000000","message":"Looks like you can inherit from TestOVSInterfaceDriver to avoid duplicating tests.","commit_id":"6c77ce7ef9e14ae3304972d7b96727dc585eebcf"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":171,"context_line":"                                     mock.call().delete_port(\u0027tap0\u0027)])"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class TestOVSVethInterfaceDriver(TestBase):"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def test_get_device_name(self):"},{"line_number":177,"context_line":"        br \u003d interface.OVSVethInterfaceDriver(self.conf)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2Fb30%3D","line":174,"in_reply_to":"AAAALH%2F%2Fb7s%3D","updated":"2012-09-11 17:09:48.000000000","message":"I will do it.","commit_id":"6c77ce7ef9e14ae3304972d7b96727dc585eebcf"}]}
