)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"cf5a3c0ff82f27cce1f844ac7723724704c53f73","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add name spaces initializing interface driver."},{"line_number":8,"context_line":"This driver enables the namespace context, which is required for among others DNSMasq to work correctly."},{"line_number":9,"context_line":"It\u0027s intended to be used with non agent based forwarders (e.g. VPP), which attach to the interface created in a given namespace."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ieab92bde48742d6e174017c56d29adde9533538a"},{"line_number":12,"context_line":"Signed-off-by: Wojciech Dec \u003cwdec@cisco.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aa78d24_53d36638","line":10,"updated":"2016-07-11 14:30:31.000000000","message":"Could you correct this commit messages according with [1].\n\n 1. The first line should be limited to 50 characters and should not end with a period.\n 2. Subsequent lines should be wrapped at 72 characters.\n\n[1]: https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"0481b6f20a5c2a255e840e054b678317e2395f5f"},{"author":{"_account_id":18409,"name":"Wojciech Dec","email":"wdec@cisco.com","username":"wdec"},"change_message_id":"8c5ae15eec5a4b8ac64829eab30fce82be35c905","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add name spaces initializing interface driver."},{"line_number":8,"context_line":"This driver enables the namespace context, which is required for among others DNSMasq to work correctly."},{"line_number":9,"context_line":"It\u0027s intended to be used with non agent based forwarders (e.g. VPP), which attach to the interface created in a given namespace."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ieab92bde48742d6e174017c56d29adde9533538a"},{"line_number":12,"context_line":"Signed-off-by: Wojciech Dec \u003cwdec@cisco.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aa78d24_f196403d","line":10,"in_reply_to":"1aa78d24_53d36638","updated":"2016-07-13 18:17:45.000000000","message":"Done","commit_id":"0481b6f20a5c2a255e840e054b678317e2395f5f"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"cf5a3c0ff82f27cce1f844ac7723724704c53f73","unresolved":false,"context_lines":[{"line_number":9,"context_line":"It\u0027s intended to be used with non agent based forwarders (e.g. VPP), which attach to the interface created in a given namespace."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ieab92bde48742d6e174017c56d29adde9533538a"},{"line_number":12,"context_line":"Signed-off-by: Wojciech Dec \u003cwdec@cisco.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aa78d24_13771e3b","line":12,"updated":"2016-07-11 14:30:31.000000000","message":"I\u0027m not sure intention of this patch. Could you add the bug into Launchpad?","commit_id":"0481b6f20a5c2a255e840e054b678317e2395f5f"},{"author":{"_account_id":18409,"name":"Wojciech Dec","email":"wdec@cisco.com","username":"wdec"},"change_message_id":"8c5ae15eec5a4b8ac64829eab30fce82be35c905","unresolved":false,"context_lines":[{"line_number":9,"context_line":"It\u0027s intended to be used with non agent based forwarders (e.g. VPP), which attach to the interface created in a given namespace."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ieab92bde48742d6e174017c56d29adde9533538a"},{"line_number":12,"context_line":"Signed-off-by: Wojciech Dec \u003cwdec@cisco.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1aa78d24_315c484c","line":12,"in_reply_to":"1aa78d24_13771e3b","updated":"2016-07-13 18:17:45.000000000","message":"Done:\nhttps://bugs.launchpad.net/neutron/+bug/1602798","commit_id":"0481b6f20a5c2a255e840e054b678317e2395f5f"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"907c360681fcc77a41a310dfbfd66b903ef4536e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"among others DNSMasq to work correctly, without attaching them to a device."},{"line_number":11,"context_line":"It is intended to be used with non agent based devices (e.g. VPP) that"},{"line_number":12,"context_line":"will attach to the interface created using other means."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ieab92bde48742d6e174017c56d29adde9533538a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"1aa78d24_14077a1e","line":13,"updated":"2016-07-13 18:39:38.000000000","message":"Need to add:\nCloses-Bug: #1602798","commit_id":"b1100fab1c69b6015a339ba75b48146ac6d6fade"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"972680cee75f4a246b41880ec98dd32155b625a9","unresolved":false,"context_lines":[{"line_number":10,"context_line":"among others DNSMasq to work correctly, without attaching them to a device."},{"line_number":11,"context_line":"It is intended to be used with non agent based devices (e.g. VPP) that"},{"line_number":12,"context_line":"will attach to the interface created using other means."},{"line_number":13,"context_line":"Closes-Bug: #1602798"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ieab92bde48742d6e174017c56d29adde9533538a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"1aa78d24_a09a966c","line":13,"updated":"2016-07-13 23:26:06.000000000","message":"Closes-Bug is typically grouped with Change-Id.  There does need to be an empty line between the main paragraph and these directives.","commit_id":"5f6be17b390a1b49ba257b71619477992f8ae4bc"}],"neutron/agent/linux/interface.py":[{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"047b83b63fcc6f6768da1e0d7d2398b078358f37","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    def unplug(self, device_name, bridge\u003dNone, namespace\u003dNone, prefix\u003dNone):"},{"line_number":290,"context_line":"        pass"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"class NSDriver(LinuxInterfaceDriver):"},{"line_number":293,"context_line":"        #Networkspaces capable Driver"},{"line_number":294,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_ad3454fb","line":291,"updated":"2016-07-08 03:03:02.000000000","message":"two newlines between classes.","commit_id":"bb8f44b520d69b39e709d0fcdfc441c6f2588464"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"047b83b63fcc6f6768da1e0d7d2398b078358f37","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        pass"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"class NSDriver(LinuxInterfaceDriver):"},{"line_number":293,"context_line":"        #Networkspaces capable Driver"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def plug_new(self, network_id, port_id, device_name, mac_address,"},{"line_number":296,"context_line":"                bridge\u003dNone, namespace\u003dNone, prefix\u003dNone, mtu\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_2d5a2451","line":293,"range":{"start_line":293,"start_character":8,"end_line":293,"end_character":37},"updated":"2016-07-08 03:03:02.000000000","message":"You should use docstring convention.","commit_id":"bb8f44b520d69b39e709d0fcdfc441c6f2588464"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"047b83b63fcc6f6768da1e0d7d2398b078358f37","unresolved":false,"context_lines":[{"line_number":318,"context_line":"            LOG.error(_(\"Failed unplugging interface \u0027%s\u0027\"),"},{"line_number":319,"context_line":"                      device_name)"},{"line_number":320,"context_line":"        ip_lib.IPWrapper(namespace).garbage_collect_namespace()"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"class OVSInterfaceDriver(LinuxInterfaceDriver):"},{"line_number":323,"context_line":"    \"\"\"Driver for creating an internal interface on an OVS bridge.\"\"\""},{"line_number":324,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_4d24d0c5","line":321,"updated":"2016-07-08 03:03:02.000000000","message":"two newlines between classes","commit_id":"bb8f44b520d69b39e709d0fcdfc441c6f2588464"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9c1a047a13314df8a3d561d3c6a03899fcecf04a","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        if mtu:"},{"line_number":308,"context_line":"            ns_dev.link.set_mtu(mtu)"},{"line_number":309,"context_line":"        else:"},{"line_number":310,"context_line":"            LOG.warning(_LW(\"No MTU configured for port %s\"), port_id)"},{"line_number":311,"context_line":"        if namespace:"},{"line_number":312,"context_line":"            namespace_obj \u003d ip.ensure_namespace(namespace)"},{"line_number":313,"context_line":"            namespace_obj.add_device_to_namespace(ns_dev)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_52411fa8","line":310,"updated":"2016-07-13 15:27:51.000000000","message":"why does this need to be a warning?","commit_id":"85daa358573578ddd64f8a2f0035e2f8fd9d16e4"},{"author":{"_account_id":18409,"name":"Wojciech Dec","email":"wdec@cisco.com","username":"wdec"},"change_message_id":"1872ebf758dad43753641909ecea2f314300d62b","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        if mtu:"},{"line_number":308,"context_line":"            ns_dev.link.set_mtu(mtu)"},{"line_number":309,"context_line":"        else:"},{"line_number":310,"context_line":"            LOG.warning(_LW(\"No MTU configured for port %s\"), port_id)"},{"line_number":311,"context_line":"        if namespace:"},{"line_number":312,"context_line":"            namespace_obj \u003d ip.ensure_namespace(namespace)"},{"line_number":313,"context_line":"            namespace_obj.add_device_to_namespace(ns_dev)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_11078c1e","line":310,"in_reply_to":"1aa78d24_52411fa8","updated":"2016-07-13 18:16:46.000000000","message":"Done: Removed log.","commit_id":"85daa358573578ddd64f8a2f0035e2f8fd9d16e4"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9c1a047a13314df8a3d561d3c6a03899fcecf04a","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        try:"},{"line_number":319,"context_line":"            device \u003d ip_lib.IPDevice(device_name, namespace)"},{"line_number":320,"context_line":"            device.link.delete()"},{"line_number":321,"context_line":"            LOG.debug((\"Unplugged interface \u0027%s\u0027\"), device_name)"},{"line_number":322,"context_line":"        except RuntimeError:"},{"line_number":323,"context_line":"            LOG.error(_LE(\"Failed unplugging interface \u0027%s\u0027\"),"},{"line_number":324,"context_line":"                      device_name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_12fcb770","line":321,"updated":"2016-07-13 15:27:51.000000000","message":"you do not need the extra brackets here","commit_id":"85daa358573578ddd64f8a2f0035e2f8fd9d16e4"},{"author":{"_account_id":18409,"name":"Wojciech Dec","email":"wdec@cisco.com","username":"wdec"},"change_message_id":"1872ebf758dad43753641909ecea2f314300d62b","unresolved":false,"context_lines":[{"line_number":318,"context_line":"        try:"},{"line_number":319,"context_line":"            device \u003d ip_lib.IPDevice(device_name, namespace)"},{"line_number":320,"context_line":"            device.link.delete()"},{"line_number":321,"context_line":"            LOG.debug((\"Unplugged interface \u0027%s\u0027\"), device_name)"},{"line_number":322,"context_line":"        except RuntimeError:"},{"line_number":323,"context_line":"            LOG.error(_LE(\"Failed unplugging interface \u0027%s\u0027\"),"},{"line_number":324,"context_line":"                      device_name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_9401aa07","line":321,"in_reply_to":"1aa78d24_12fcb770","updated":"2016-07-13 18:16:46.000000000","message":"Done","commit_id":"85daa358573578ddd64f8a2f0035e2f8fd9d16e4"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"926fd4cbb4a6e60d7e258913deabc71eb2e2d2c2","unresolved":false,"context_lines":[{"line_number":292,"context_line":""},{"line_number":293,"context_line":"class NSDriver(LinuxInterfaceDriver):"},{"line_number":294,"context_line":"    \"\"\"Device independent driver enabling creation of a non device specific"},{"line_number":295,"context_line":"    interface in network spaces.  Attachment to the device is not performed."},{"line_number":296,"context_line":"    \"\"\""},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    def plug_new(self, network_id, port_id, device_name, mac_address,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_0a1e2e5f","line":295,"updated":"2016-07-13 20:31:22.000000000","message":"nit: s/spaces/namespaces","commit_id":"40d548f27010e7cd3a00a427997ea79ddb7227ee"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"1cfef10262c55b5b24b4862bc4c8bfaab58374f2","unresolved":false,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"class NSDriver(LinuxInterfaceDriver):"},{"line_number":294,"context_line":"    \"\"\"Device independent driver, enabling creation of a non device specific"},{"line_number":295,"context_line":"    interface in network namespaces. Attachment to the device is not performed."},{"line_number":296,"context_line":"    \"\"\""},{"line_number":297,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"dada55a8_b3710cab","line":294,"updated":"2016-07-25 14:48:11.000000000","message":"nit: Typically docstring would have one line with summary, period, blank like and then any additional docstring lines. Ref: PEP8","commit_id":"9cf53448a902d432e386fc4f42a0b143fa7c63ce"},{"author":{"_account_id":18409,"name":"Wojciech Dec","email":"wdec@cisco.com","username":"wdec"},"change_message_id":"b822419b19776a0db3781717c99a0d71abb28590","unresolved":false,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"class NSDriver(LinuxInterfaceDriver):"},{"line_number":294,"context_line":"    \"\"\"Device independent driver, enabling creation of a non device specific"},{"line_number":295,"context_line":"    interface in network namespaces. Attachment to the device is not performed."},{"line_number":296,"context_line":"    \"\"\""},{"line_number":297,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"dada55a8_2fe80410","line":294,"in_reply_to":"dada55a8_b3710cab","updated":"2016-07-25 17:12:50.000000000","message":"Done","commit_id":"9cf53448a902d432e386fc4f42a0b143fa7c63ce"},{"author":{"_account_id":16990,"name":"Tomas Cechvala","email":"tcechval@cisco.com","username":"tcechval"},"change_message_id":"5a164b7afafdf2d26eeaaafa844a6d046b75fd5f","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        ip \u003d ip_lib.IPWrapper()"},{"line_number":304,"context_line":"        ns_dev \u003d ip.device(device_name)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        ns_dev.link.set_address(mac_address)"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"        mtu \u003d self.conf.network_device_mtu or mtu"},{"line_number":309,"context_line":"        if mtu:"}],"source_content_type":"text/x-python","patch_set":14,"id":"3ac371cc_1fddd442","line":306,"range":{"start_line":306,"start_character":8,"end_line":306,"end_character":44},"updated":"2016-08-14 22:22:58.000000000","message":"Here we run into Runtime error if VPP will not create the tap port in time. We should at least wait for it in loop. \n\n2016-08-14 20:59:42.530 13633 DEBUG oslo_messaging._drivers.amqpdriver [-] CALL msg_id: 5458099572cb41b78af1727d36dc4ce9 exchange \u0027neutron\u0027 topic \u0027q-plugin\u0027 _send /usr/local/lib/python2.7/dist-packages/oslo_messaging/_drivers/amqpdriver.py:448\n2016-08-14 20:59:42.932 13633 DEBUG oslo_messaging._drivers.amqpdriver [-] received reply msg_id: 5458099572cb41b78af1727d36dc4ce9 __call__ /usr/local/lib/python2.7/dist-packages/oslo_messaging/_drivers/amqpdriver.py:296\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent [-] Unable to enable dhcp for 2d2bc52e-bf73-4e2c-adcb-d3ac967b5e3e.\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent Traceback (most recent call last):\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent   File \"/opt/stack/neutron/neutron/agent/dhcp/agent.py\", line 115, in call_driver\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent     getattr(driver, action)(**action_kwargs)\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent   File \"/opt/stack/neutron/neutron/agent/linux/dhcp.py\", line 211, in enable\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent     interface_name \u003d self.device_manager.setup(self.network)\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent   File \"/opt/stack/neutron/neutron/agent/linux/dhcp.py\", line 1240, in setup\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent     self.plugin.release_dhcp_port(network.id, port.device_id)\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent   File \"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py\", line 220, in __exit__\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent     self.force_reraise()\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent   File \"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py\", line 196, in force_reraise\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent     six.reraise(self.type_, self.value, self.tb)\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent   File \"/opt/stack/neutron/neutron/agent/linux/dhcp.py\", line 1234, in setup\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent     mtu\u003dnetwork.get(\u0027mtu\u0027))\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent   File \"/opt/stack/neutron/neutron/agent/linux/interface.py\", line 232, in plug\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent     bridge, namespace, prefix, mtu)\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent   File \"/opt/stack/neutron/neutron/agent/linux/interface.py\", line 287, in plug_new\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent     ns_dev.link.set_address(mac_address)\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent   File \"/opt/stack/neutron/neutron/agent/linux/ip_lib.py\", line 496, in set_address\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent     self._as_root([], (\u0027set\u0027, self.name, \u0027address\u0027, mac_address))\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent   File \"/opt/stack/neutron/neutron/agent/linux/ip_lib.py\", line 362, in _as_root\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent     use_root_namespace\u003duse_root_namespace)\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent   File \"/opt/stack/neutron/neutron/agent/linux/ip_lib.py\", line 95, in _as_root\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent     log_fail_as_error\u003dself.log_fail_as_error)\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent   File \"/opt/stack/neutron/neutron/agent/linux/ip_lib.py\", line 104, in _execute\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent     log_fail_as_error\u003dlog_fail_as_error)\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent   File \"/opt/stack/neutron/neutron/agent/linux/utils.py\", line 138, in execute\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent     raise RuntimeError(msg)\n2016-08-14 20:59:42.935 13633 ERROR neutron.agent.dhcp.agent RuntimeError: Exit code: 1; Stdin: ; Stdout: ; Stderr: Cannot find device \"tap23769a0a-4a\"","commit_id":"a3453b1b370627ab31aa4087120347aa64114fc9"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b0df53ffc67a6398a6b9fd3461078a8936b75b94","unresolved":false,"context_lines":[{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        ns_dev.link.set_address(mac_address)"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"        mtu \u003d self.conf.network_device_mtu or mtu"},{"line_number":309,"context_line":"        if mtu:"},{"line_number":310,"context_line":"            ns_dev.link.set_mtu(mtu)"},{"line_number":311,"context_line":"        if namespace:"}],"source_content_type":"text/x-python","patch_set":14,"id":"dada55a8_3bc73c65","line":308,"updated":"2016-07-27 13:41:24.000000000","message":"the option will be removed with https://review.openstack.org/342958","commit_id":"a3453b1b370627ab31aa4087120347aa64114fc9"},{"author":{"_account_id":16990,"name":"Tomas Cechvala","email":"tcechval@cisco.com","username":"tcechval"},"change_message_id":"5a164b7afafdf2d26eeaaafa844a6d046b75fd5f","unresolved":false,"context_lines":[{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        ns_dev.link.set_address(mac_address)"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"        mtu \u003d self.conf.network_device_mtu or mtu"},{"line_number":309,"context_line":"        if mtu:"},{"line_number":310,"context_line":"            ns_dev.link.set_mtu(mtu)"},{"line_number":311,"context_line":"        if namespace:"}],"source_content_type":"text/x-python","patch_set":14,"id":"3ac371cc_9fe70440","line":308,"in_reply_to":"dada55a8_3bc73c65","updated":"2016-08-14 22:22:58.000000000","message":"Had same on my mind, network_device_mtu not in config anymore.","commit_id":"a3453b1b370627ab31aa4087120347aa64114fc9"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b0df53ffc67a6398a6b9fd3461078a8936b75b94","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        ns_dev.link.set_address(mac_address)"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"        mtu \u003d self.conf.network_device_mtu or mtu"},{"line_number":309,"context_line":"        if mtu:"},{"line_number":310,"context_line":"            ns_dev.link.set_mtu(mtu)"},{"line_number":311,"context_line":"        if namespace:"},{"line_number":312,"context_line":"            namespace_obj \u003d ip.ensure_namespace(namespace)"}],"source_content_type":"text/x-python","patch_set":14,"id":"dada55a8_bbe5ecdc","line":309,"updated":"2016-07-27 13:41:24.000000000","message":"you should set mtu after moving to the namespace, eg. for ovs. See: https://review.openstack.org/327651","commit_id":"a3453b1b370627ab31aa4087120347aa64114fc9"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"ceaca1280a273664641b0cb4145b9f4b347476dc","unresolved":false,"context_lines":[{"line_number":317,"context_line":"    def unplug(self, device_name, bridge\u003dNone, namespace\u003dNone, prefix\u003dNone):"},{"line_number":318,"context_line":"        try:"},{"line_number":319,"context_line":"            device \u003d ip_lib.IPDevice(device_name, namespace)"},{"line_number":320,"context_line":"            device.link.delete()"},{"line_number":321,"context_line":"            LOG.debug(\"Unplugged interface: \u0027%s\u0027\", device_name)"},{"line_number":322,"context_line":"        except RuntimeError:"},{"line_number":323,"context_line":"            LOG.error(_LE(\"Failed unplugging interface: \u0027%s\u0027\"),"}],"source_content_type":"text/x-python","patch_set":14,"id":"bacf61ea_bc1afdc3","line":320,"updated":"2016-08-01 21:08:42.000000000","message":"John Joyce indicated that we probably don\u0027t want to delete the link here, since we don\u0027t create during plug.","commit_id":"a3453b1b370627ab31aa4087120347aa64114fc9"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"216a5aa4acd7ddc4eadfe4d8bac7ef9c94c39b01","unresolved":false,"context_lines":[{"line_number":282,"context_line":"    def _device_is_created_in_time(cls, device_name):"},{"line_number":283,"context_line":"        \"\"\"See if device is created, within time limit.\"\"\""},{"line_number":284,"context_line":"        attempt \u003d 0"},{"line_number":285,"context_line":"        while attempt \u003c NSDriver.MAX_TIME_FOR_DEVICE_EXISTENCE:"},{"line_number":286,"context_line":"            if ip_lib.device_exists(device_name):"},{"line_number":287,"context_line":"                return True"},{"line_number":288,"context_line":"            attempt +\u003d 1"}],"source_content_type":"text/x-python","patch_set":17,"id":"3ac371cc_3feaa5ac","line":285,"updated":"2016-08-17 18:36:34.000000000","message":"FYI: On my setup, I\u0027m seeing the device present on the fourth check (after 3 seconds delay).","commit_id":"d3c6b89bbbf4d59a206d9a71015e75c18341c6c4"}],"neutron/tests/unit/agent/common/test_utils.py":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"216a5aa4acd7ddc4eadfe4d8bac7ef9c94c39b01","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                               \u0027neutron.agent.linux.interface.NSDriver\u0027)"},{"line_number":59,"context_line":"        self.assertIsInstance(utils.load_interface_driver(self.conf),"},{"line_number":60,"context_line":"                              interface.NSDriver)"},{"line_number":61,"context_line":"        "},{"line_number":62,"context_line":"    def test_load_null_interface_driver_success(self):"},{"line_number":63,"context_line":"        self.conf.set_override(\u0027interface_driver\u0027,"},{"line_number":64,"context_line":"                               \u0027null\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"3ac371cc_ffbc8dbc","line":61,"updated":"2016-08-17 18:36:34.000000000","message":"nit: extra whitespace. PEP8 will likely complain","commit_id":"d3c6b89bbbf4d59a206d9a71015e75c18341c6c4"}],"neutron/tests/unit/agent/linux/test_interface.py":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"216a5aa4acd7ddc4eadfe4d8bac7ef9c94c39b01","unresolved":false,"context_lines":[{"line_number":663,"context_line":"                                          mock.call().link.delete()])"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":""},{"line_number":666,"context_line":"class TestNSDriver(TestBase):"},{"line_number":667,"context_line":"    def setUp(self):"},{"line_number":668,"context_line":"        super(TestNSDriver, self).setUp()"},{"line_number":669,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"3ac371cc_9f6f592a","line":666,"updated":"2016-08-17 18:36:34.000000000","message":"Would be useful to have better coverage on test cases - overriding MTU, no MTU in config or passed, ignoring deprecated config, and timeout waiting for device presence.","commit_id":"d3c6b89bbbf4d59a206d9a71015e75c18341c6c4"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"11a8588ebf80937d77c9ce70e5ace2b60c2d44fa","unresolved":false,"context_lines":[{"line_number":663,"context_line":"                                          mock.call().link.delete()])"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":""},{"line_number":666,"context_line":"class TestNSDriver(TestBase):"},{"line_number":667,"context_line":"    def setUp(self):"},{"line_number":668,"context_line":"        super(TestNSDriver, self).setUp()"},{"line_number":669,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"3ac371cc_e6805e8d","line":666,"updated":"2016-08-18 10:55:56.000000000","message":"Please add more unit tests, as suggested in PS17, for better code coverage.  There also was a suggestion (by Ihar) to add functional tests as well.","commit_id":"73a1cd5e8cac0e4ec22c922655bbe108a6c6c4b8"}]}
