)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"899f3b0a078a34eee8bd0445a12025903caef52b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Switch ip link command to pyroute2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch switch IpLinkCommand methods from ip_lib"},{"line_number":10,"context_line":"module to use pyroute2 library."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Related-Bug: #1492714"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"df7087c5_4151bdd8","line":9,"range":{"start_line":9,"start_character":11,"end_line":9,"end_character":17},"updated":"2018-03-22 19:33:25.000000000","message":"switches","commit_id":"e65e5e8a5448e36e95166f8ae3b4042ca735777c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"c09e614252a026c1522b3ddfaa06fef2aa7f5bff","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Switch ip link command to pyroute2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch switch IpLinkCommand methods from ip_lib"},{"line_number":10,"context_line":"module to use pyroute2 library."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Related-Bug: #1492714"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"df7087c5_f4b20306","line":9,"range":{"start_line":9,"start_character":11,"end_line":9,"end_character":17},"in_reply_to":"df7087c5_4151bdd8","updated":"2018-03-23 08:35:23.000000000","message":"thx. I really should learn English more to improve my speed of landing patches :)","commit_id":"e65e5e8a5448e36e95166f8ae3b4042ca735777c"}],"neutron/agent/linux/ip_lib.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"3d0b94a7729651b9ec72deee91d0ef1062c3a5ac","unresolved":false,"context_lines":[{"line_number":507,"context_line":"        privileged.set_link_attribute("},{"line_number":508,"context_line":"            self.name, self._parent.namespace, address\u003dmac_address)"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"    def set_allmulticast_on(self):"},{"line_number":511,"context_line":"        privileged.set_link_flags("},{"line_number":512,"context_line":"            self.name, self._parent.namespace, ifinfmsg.IFF_ALLMULTI)"},{"line_number":513,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_4e4017a6","line":510,"range":{"start_line":510,"start_character":8,"end_line":510,"end_character":27},"updated":"2018-03-28 19:48:44.000000000","message":"guess no one ever turns it off...","commit_id":"781f730eb11c64f68a8063c140e1815cebc084fe"}],"neutron/privileged/agent/linux/ip_lib.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"e3b4d30e4025f274bad826577a5e8d09b556be02","unresolved":false,"context_lines":[{"line_number":206,"context_line":"            return False"},{"line_number":207,"context_line":"        raise"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"def set_link_flags(device, namespace, flags):"},{"line_number":211,"context_line":"    link \u003d _run_iproute_link(\"get\", device, namespace)[0]"},{"line_number":212,"context_line":"    new_flags \u003d flags | link[\u0027flags\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_e1a6d10f","line":209,"updated":"2018-03-22 19:30:42.000000000","message":"Doesn\u0027t it need privileged decorator?","commit_id":"e65e5e8a5448e36e95166f8ae3b4042ca735777c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"c09e614252a026c1522b3ddfaa06fef2aa7f5bff","unresolved":false,"context_lines":[{"line_number":206,"context_line":"            return False"},{"line_number":207,"context_line":"        raise"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"def set_link_flags(device, namespace, flags):"},{"line_number":211,"context_line":"    link \u003d _run_iproute_link(\"get\", device, namespace)[0]"},{"line_number":212,"context_line":"    new_flags \u003d flags | link[\u0027flags\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_54d96f54","line":209,"in_reply_to":"df7087c5_e1a6d10f","updated":"2018-03-23 08:35:23.000000000","message":"thx, good catch. It is indeed needed here.\nThis function is currently used only for set allmulticast on device and that was only \"link related\" method not covered by functional tests.\nI remember that I didn\u0027t add such test for it because there wasn\u0027t easy way to get information if allmulticast is on or off.\nNow it is easy to do so I added such information to link attributes and I added such test also :)","commit_id":"e65e5e8a5448e36e95166f8ae3b4042ca735777c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"e3b4d30e4025f274bad826577a5e8d09b556be02","unresolved":false,"context_lines":[{"line_number":208,"context_line":""},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"def set_link_flags(device, namespace, flags):"},{"line_number":211,"context_line":"    link \u003d _run_iproute_link(\"get\", device, namespace)[0]"},{"line_number":212,"context_line":"    new_flags \u003d flags | link[\u0027flags\u0027]"},{"line_number":213,"context_line":"    return _run_iproute_link(\"set\", device, namespace, flags\u003dnew_flags)"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_4160ddcf","line":211,"updated":"2018-03-22 19:30:42.000000000","message":"What if we call set_link_flags on non existing device? We should probably raise a meaningful exception here instead of IndexError","commit_id":"e65e5e8a5448e36e95166f8ae3b4042ca735777c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"ef7277208b349505437f9b327cce3b2be8135217","unresolved":false,"context_lines":[{"line_number":208,"context_line":""},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"def set_link_flags(device, namespace, flags):"},{"line_number":211,"context_line":"    link \u003d _run_iproute_link(\"get\", device, namespace)[0]"},{"line_number":212,"context_line":"    new_flags \u003d flags | link[\u0027flags\u0027]"},{"line_number":213,"context_line":"    return _run_iproute_link(\"set\", device, namespace, flags\u003dnew_flags)"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_941b87c8","line":211,"in_reply_to":"df7087c5_1916d056","updated":"2018-03-23 08:42:47.000000000","message":"Aha, I missed it, thanks for explanation","commit_id":"e65e5e8a5448e36e95166f8ae3b4042ca735777c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"c09e614252a026c1522b3ddfaa06fef2aa7f5bff","unresolved":false,"context_lines":[{"line_number":208,"context_line":""},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"def set_link_flags(device, namespace, flags):"},{"line_number":211,"context_line":"    link \u003d _run_iproute_link(\"get\", device, namespace)[0]"},{"line_number":212,"context_line":"    new_flags \u003d flags | link[\u0027flags\u0027]"},{"line_number":213,"context_line":"    return _run_iproute_link(\"set\", device, namespace, flags\u003dnew_flags)"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_1916d056","line":211,"in_reply_to":"df7087c5_4160ddcf","updated":"2018-03-23 08:35:23.000000000","message":"If device will not exists then NetworkInterfaceNotFound from _get_link_id() will be raised instead of IndexError","commit_id":"e65e5e8a5448e36e95166f8ae3b4042ca735777c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"e3b4d30e4025f274bad826577a5e8d09b556be02","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":"@privileged.default.entrypoint"},{"line_number":222,"context_line":"def get_link_attributes(device, namespace):"},{"line_number":223,"context_line":"    link \u003d _run_iproute_link(\"get\", device, namespace)[0]"},{"line_number":224,"context_line":"    return {"},{"line_number":225,"context_line":"        \u0027mtu\u0027: link.get_attr(\u0027IFLA_MTU\u0027),"},{"line_number":226,"context_line":"        \u0027qlen\u0027: link.get_attr(\u0027IFLA_TXQLEN\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_41b53d31","line":223,"updated":"2018-03-22 19:30:42.000000000","message":"ditto","commit_id":"e65e5e8a5448e36e95166f8ae3b4042ca735777c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"c09e614252a026c1522b3ddfaa06fef2aa7f5bff","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":"@privileged.default.entrypoint"},{"line_number":222,"context_line":"def get_link_attributes(device, namespace):"},{"line_number":223,"context_line":"    link \u003d _run_iproute_link(\"get\", device, namespace)[0]"},{"line_number":224,"context_line":"    return {"},{"line_number":225,"context_line":"        \u0027mtu\u0027: link.get_attr(\u0027IFLA_MTU\u0027),"},{"line_number":226,"context_line":"        \u0027qlen\u0027: link.get_attr(\u0027IFLA_TXQLEN\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_b90ec438","line":223,"in_reply_to":"df7087c5_41b53d31","updated":"2018-03-23 08:35:23.000000000","message":"same as above","commit_id":"e65e5e8a5448e36e95166f8ae3b4042ca735777c"}]}
