)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"d606c7d00b74a5fd5c552ab8d75a424b17c317e9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"07fe00b2_a44f195d","updated":"2022-02-24 08:08:46.000000000","message":"recheck - just check functional tests","commit_id":"b57e8312cd058bd6af052984ca88148756ffa66a"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"64b642a9d8de6d81d7dcf05c8a1cd1538ff4d0dc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ffc536a6_64aa089a","updated":"2022-03-02 07:14:41.000000000","message":"LGTM, just a nit inline, +1 to Brian\u0027s suggestion","commit_id":"d30605f1ebc8d6156ad015a97458e7418b9622ad"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"84113e1c9f1650c7d960b7a67550ec2032e1812a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"dd91956d_ac4ebd97","updated":"2022-03-01 18:04:46.000000000","message":"The code looks good. My only issue is you added ip_lib.NetworkInterfaceNotFound to the try/except, but didn\u0027t update the unit test. I think it would be a one-line change to do that.","commit_id":"d30605f1ebc8d6156ad015a97458e7418b9622ad"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ec02bb2c9245aadad5167cc77e4283c7725ed367","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ebe20a9a_7505203c","updated":"2022-03-01 09:41:51.000000000","message":"recheck - mysql issue in functional job","commit_id":"d30605f1ebc8d6156ad015a97458e7418b9622ad"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1a3de76b0efeffca031bddc268a760ff56db3767","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3b4f8deb_563519c3","in_reply_to":"dd91956d_ac4ebd97","updated":"2022-03-02 21:20:41.000000000","message":"Done","commit_id":"d30605f1ebc8d6156ad015a97458e7418b9622ad"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e7b5997256943d8c734a693d70afc2bebb9fadda","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e2b5784e_dd646585","updated":"2022-03-14 17:45:53.000000000","message":"Thanks Slawek!","commit_id":"f7fac03ae1a4b1b1471f6054ba058382a1b9e1a1"}],"neutron/agent/linux/interface.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"62e1ff1c61ed483e7d15628834903f01fd6a606e","unresolved":true,"context_lines":[{"line_number":342,"context_line":"        ovs \u003d ovs_lib.OVSBridge(bridge)"},{"line_number":343,"context_line":"        ovs.replace_port(device_name, *attrs)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def _set_device_mtu(self, device, mac_address):"},{"line_number":346,"context_line":"        for i in range(9):"},{"line_number":347,"context_line":"            # workaround for the OVS shy port syndrome. ports sometimes"},{"line_number":348,"context_line":"            # hide for a bit right after they are first created."}],"source_content_type":"text/x-python","patch_set":1,"id":"7121ef0f_1cff4ec6","line":345,"range":{"start_line":345,"start_character":20,"end_line":345,"end_character":23},"updated":"2022-02-23 16:39:00.000000000","message":"s/mac ? :)","commit_id":"b57e8312cd058bd6af052984ca88148756ffa66a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"2220c45f05cfb45a003888779608959f5792a6ec","unresolved":true,"context_lines":[{"line_number":342,"context_line":"        ovs \u003d ovs_lib.OVSBridge(bridge)"},{"line_number":343,"context_line":"        ovs.replace_port(device_name, *attrs)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def _set_device_mtu(self, device, mac_address):"},{"line_number":346,"context_line":"        for i in range(9):"},{"line_number":347,"context_line":"            # workaround for the OVS shy port syndrome. ports sometimes"},{"line_number":348,"context_line":"            # hide for a bit right after they are first created."}],"source_content_type":"text/x-python","patch_set":1,"id":"943a1543_b91602f0","line":345,"range":{"start_line":345,"start_character":20,"end_line":345,"end_character":23},"in_reply_to":"7121ef0f_1cff4ec6","updated":"2022-02-24 08:17:12.000000000","message":"+1","commit_id":"b57e8312cd058bd6af052984ca88148756ffa66a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"60cdb3ccd06f66c17647aab1e4adedae25aca478","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        ovs \u003d ovs_lib.OVSBridge(bridge)"},{"line_number":343,"context_line":"        ovs.replace_port(device_name, *attrs)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def _set_device_mtu(self, device, mac_address):"},{"line_number":346,"context_line":"        for i in range(9):"},{"line_number":347,"context_line":"            # workaround for the OVS shy port syndrome. ports sometimes"},{"line_number":348,"context_line":"            # hide for a bit right after they are first created."}],"source_content_type":"text/x-python","patch_set":1,"id":"113f8da7_5271c74d","line":345,"range":{"start_line":345,"start_character":20,"end_line":345,"end_character":23},"in_reply_to":"943a1543_b91602f0","updated":"2022-02-25 12:20:23.000000000","message":"Done","commit_id":"b57e8312cd058bd6af052984ca88148756ffa66a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"62e1ff1c61ed483e7d15628834903f01fd6a606e","unresolved":true,"context_lines":[{"line_number":368,"context_line":"                # NOTE(slaweq): if the exception was NetworkInterfaceNotFound"},{"line_number":369,"context_line":"                # then lets try again, otherwise lets simply raise it as this"},{"line_number":370,"context_line":"                # is some different issue than retry tries to workaround"},{"line_number":371,"context_line":"                LOG.warning(\"Failed to set interface %s into namespace %s\""},{"line_number":372,"context_line":"                            \"Interface not found.\", device, namespace)"},{"line_number":373,"context_line":"                time.sleep(1)"},{"line_number":374,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"478b4060_efff5885","line":371,"range":{"start_line":371,"start_character":71,"end_line":371,"end_character":73},"updated":"2022-02-23 16:39:00.000000000","message":"Missing a trailing space, or comma space here","commit_id":"b57e8312cd058bd6af052984ca88148756ffa66a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"60cdb3ccd06f66c17647aab1e4adedae25aca478","unresolved":false,"context_lines":[{"line_number":368,"context_line":"                # NOTE(slaweq): if the exception was NetworkInterfaceNotFound"},{"line_number":369,"context_line":"                # then lets try again, otherwise lets simply raise it as this"},{"line_number":370,"context_line":"                # is some different issue than retry tries to workaround"},{"line_number":371,"context_line":"                LOG.warning(\"Failed to set interface %s into namespace %s\""},{"line_number":372,"context_line":"                            \"Interface not found.\", device, namespace)"},{"line_number":373,"context_line":"                time.sleep(1)"},{"line_number":374,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"a39bd517_cd262017","line":371,"range":{"start_line":371,"start_character":71,"end_line":371,"end_character":73},"in_reply_to":"478b4060_efff5885","updated":"2022-02-25 12:20:23.000000000","message":"Done","commit_id":"b57e8312cd058bd6af052984ca88148756ffa66a"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"64b642a9d8de6d81d7dcf05c8a1cd1538ff4d0dc","unresolved":true,"context_lines":[{"line_number":368,"context_line":"                # NOTE(slaweq): if the exception was NetworkInterfaceNotFound"},{"line_number":369,"context_line":"                # then lets try again, otherwise lets simply raise it as this"},{"line_number":370,"context_line":"                # is some different issue than retry tries to workaround"},{"line_number":371,"context_line":"                LOG.warning(\"Failed to set interface %s into namespace %s. \""},{"line_number":372,"context_line":"                            \"Interface not found.\", device, namespace)"},{"line_number":373,"context_line":"                time.sleep(1)"},{"line_number":374,"context_line":"            except utils.WaitTimeout:"},{"line_number":375,"context_line":"                # NOTE(slaweq): if the exception was WaitTimeout then it means"}],"source_content_type":"text/x-python","patch_set":3,"id":"ecfc9d31_09e92819","line":372,"range":{"start_line":371,"start_character":28,"end_line":372,"end_character":48},"updated":"2022-03-02 07:14:41.000000000","message":"i think good to add retrying message here too. also if retry number can be added that would also be good.","commit_id":"d30605f1ebc8d6156ad015a97458e7418b9622ad"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1a3de76b0efeffca031bddc268a760ff56db3767","unresolved":false,"context_lines":[{"line_number":368,"context_line":"                # NOTE(slaweq): if the exception was NetworkInterfaceNotFound"},{"line_number":369,"context_line":"                # then lets try again, otherwise lets simply raise it as this"},{"line_number":370,"context_line":"                # is some different issue than retry tries to workaround"},{"line_number":371,"context_line":"                LOG.warning(\"Failed to set interface %s into namespace %s. \""},{"line_number":372,"context_line":"                            \"Interface not found.\", device, namespace)"},{"line_number":373,"context_line":"                time.sleep(1)"},{"line_number":374,"context_line":"            except utils.WaitTimeout:"},{"line_number":375,"context_line":"                # NOTE(slaweq): if the exception was WaitTimeout then it means"}],"source_content_type":"text/x-python","patch_set":3,"id":"a4c3470b_74a77862","line":372,"range":{"start_line":371,"start_character":28,"end_line":372,"end_character":48},"in_reply_to":"ecfc9d31_09e92819","updated":"2022-03-02 21:20:41.000000000","message":"Done","commit_id":"d30605f1ebc8d6156ad015a97458e7418b9622ad"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"64b642a9d8de6d81d7dcf05c8a1cd1538ff4d0dc","unresolved":true,"context_lines":[{"line_number":376,"context_line":"                # that probably device wasn\u0027t found in the desired namespace"},{"line_number":377,"context_line":"                # for 5 seconds, so lets try again too"},{"line_number":378,"context_line":"                LOG.warning(\"Failed to set interface %s into namespace %s. \""},{"line_number":379,"context_line":"                            \"Interface not found in namespace.\","},{"line_number":380,"context_line":"                            device, namespace)"},{"line_number":381,"context_line":"                time.sleep(1)"},{"line_number":382,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"18cc4b74_e6006739","line":379,"range":{"start_line":379,"start_character":61,"end_line":379,"end_character":62},"updated":"2022-03-02 07:14:41.000000000","message":"ditto","commit_id":"d30605f1ebc8d6156ad015a97458e7418b9622ad"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1a3de76b0efeffca031bddc268a760ff56db3767","unresolved":false,"context_lines":[{"line_number":376,"context_line":"                # that probably device wasn\u0027t found in the desired namespace"},{"line_number":377,"context_line":"                # for 5 seconds, so lets try again too"},{"line_number":378,"context_line":"                LOG.warning(\"Failed to set interface %s into namespace %s. \""},{"line_number":379,"context_line":"                            \"Interface not found in namespace.\","},{"line_number":380,"context_line":"                            device, namespace)"},{"line_number":381,"context_line":"                time.sleep(1)"},{"line_number":382,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"756591e0_a8a77691","line":379,"range":{"start_line":379,"start_character":61,"end_line":379,"end_character":62},"in_reply_to":"18cc4b74_e6006739","updated":"2022-03-02 21:20:41.000000000","message":"Done","commit_id":"d30605f1ebc8d6156ad015a97458e7418b9622ad"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fa37731bc7c72fd3e5f70328e3dfd2a683c0d659","unresolved":true,"context_lines":[{"line_number":343,"context_line":"        ovs.replace_port(device_name, *attrs)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def _set_device_address(self, device, mac_address):"},{"line_number":346,"context_line":"        for i in range(9):"},{"line_number":347,"context_line":"            # workaround for the OVS shy port syndrome. ports sometimes"},{"line_number":348,"context_line":"            # hide for a bit right after they are first created."},{"line_number":349,"context_line":"            # see bug/1618987"}],"source_content_type":"text/x-python","patch_set":6,"id":"b24a75e7_fb076e88","line":346,"range":{"start_line":346,"start_character":23,"end_line":346,"end_character":24},"updated":"2022-03-18 08:46:39.000000000","message":"strange that there is no cfg for retrying","commit_id":"f7fac03ae1a4b1b1471f6054ba058382a1b9e1a1"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"83b96a885ba851b1c508fd786297858171237cac","unresolved":true,"context_lines":[{"line_number":343,"context_line":"        ovs.replace_port(device_name, *attrs)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def _set_device_address(self, device, mac_address):"},{"line_number":346,"context_line":"        for i in range(9):"},{"line_number":347,"context_line":"            # workaround for the OVS shy port syndrome. ports sometimes"},{"line_number":348,"context_line":"            # hide for a bit right after they are first created."},{"line_number":349,"context_line":"            # see bug/1618987"}],"source_content_type":"text/x-python","patch_set":6,"id":"f42d6886_4ab1c876","line":346,"range":{"start_line":346,"start_character":23,"end_line":346,"end_character":24},"in_reply_to":"b24a75e7_fb076e88","updated":"2022-03-23 14:26:54.000000000","message":"there wasn\u0027t such config option before that patch and I don\u0027t want to propose new one. I don\u0027t think it would be good to expose to the operators such small internal thing like number of retries here.","commit_id":"f7fac03ae1a4b1b1471f6054ba058382a1b9e1a1"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"ac3dea1e16b3305e081a46194d816e8c4eb15a1a","unresolved":true,"context_lines":[{"line_number":343,"context_line":"        ovs.replace_port(device_name, *attrs)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def _set_device_address(self, device, mac_address):"},{"line_number":346,"context_line":"        for i in range(9):"},{"line_number":347,"context_line":"            # workaround for the OVS shy port syndrome. ports sometimes"},{"line_number":348,"context_line":"            # hide for a bit right after they are first created."},{"line_number":349,"context_line":"            # see bug/1618987"}],"source_content_type":"text/x-python","patch_set":6,"id":"1b16efed_6e1d828d","line":346,"range":{"start_line":346,"start_character":23,"end_line":346,"end_character":24},"in_reply_to":"f42d6886_4ab1c876","updated":"2022-03-24 17:54:53.000000000","message":"sure it\u0027s just strange that we have a lot of repeating thing in neutron and we set the number separately every time","commit_id":"f7fac03ae1a4b1b1471f6054ba058382a1b9e1a1"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fa37731bc7c72fd3e5f70328e3dfd2a683c0d659","unresolved":true,"context_lines":[{"line_number":410,"context_line":"                           internal\u003dinternal)"},{"line_number":411,"context_line":"        try:"},{"line_number":412,"context_line":"            self._set_device_address(ns_dev, mac_address)"},{"line_number":413,"context_line":"        except Exception:"},{"line_number":414,"context_line":"            LOG.warning(\"Failed to set mac for interface %s\", ns_dev)"},{"line_number":415,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":416,"context_line":"                ovs \u003d ovs_lib.OVSBridge(bridge)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9d26b8b1_1b97bd9a","line":413,"range":{"start_line":413,"start_character":15,"end_line":413,"end_character":24},"updated":"2022-03-18 08:46:39.000000000","message":"isn\u0027t it too tight? We expect RuntimeError at l353","commit_id":"f7fac03ae1a4b1b1471f6054ba058382a1b9e1a1"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"ac3dea1e16b3305e081a46194d816e8c4eb15a1a","unresolved":false,"context_lines":[{"line_number":410,"context_line":"                           internal\u003dinternal)"},{"line_number":411,"context_line":"        try:"},{"line_number":412,"context_line":"            self._set_device_address(ns_dev, mac_address)"},{"line_number":413,"context_line":"        except Exception:"},{"line_number":414,"context_line":"            LOG.warning(\"Failed to set mac for interface %s\", ns_dev)"},{"line_number":415,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":416,"context_line":"                ovs \u003d ovs_lib.OVSBridge(bridge)"}],"source_content_type":"text/x-python","patch_set":6,"id":"26d25231_0dec8b34","line":413,"range":{"start_line":413,"start_character":15,"end_line":413,"end_character":24},"in_reply_to":"62d136aa_b393a2d1","updated":"2022-03-24 17:54:53.000000000","message":"Ack","commit_id":"f7fac03ae1a4b1b1471f6054ba058382a1b9e1a1"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"83b96a885ba851b1c508fd786297858171237cac","unresolved":true,"context_lines":[{"line_number":410,"context_line":"                           internal\u003dinternal)"},{"line_number":411,"context_line":"        try:"},{"line_number":412,"context_line":"            self._set_device_address(ns_dev, mac_address)"},{"line_number":413,"context_line":"        except Exception:"},{"line_number":414,"context_line":"            LOG.warning(\"Failed to set mac for interface %s\", ns_dev)"},{"line_number":415,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":416,"context_line":"                ovs \u003d ovs_lib.OVSBridge(bridge)"}],"source_content_type":"text/x-python","patch_set":6,"id":"62d136aa_b393a2d1","line":413,"range":{"start_line":413,"start_character":15,"end_line":413,"end_character":24},"in_reply_to":"9d26b8b1_1b97bd9a","updated":"2022-03-23 14:26:54.000000000","message":"Here IMO we can expect basically every kind of error which we just want to log and do some cleanup. RuntimeError is expected in L353 and handled there if it happens.","commit_id":"f7fac03ae1a4b1b1471f6054ba058382a1b9e1a1"}],"neutron/tests/unit/agent/linux/test_interface.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e3622365b88f52e657c5f7c0185323f8eb55d0d6","unresolved":true,"context_lines":[{"line_number":494,"context_line":"                        excutils, \u0027save_and_reraise_exception\u0027)"},{"line_number":495,"context_line":"                    reraise.start()"},{"line_number":496,"context_line":"                    ip_wrapper \u003d mock.Mock()"},{"line_number":497,"context_line":"                    for exception in (OSError(),"},{"line_number":498,"context_line":"                                      pyroute2_exc.NetlinkError(22)):"},{"line_number":499,"context_line":"                        ip_wrapper.ensure_namespace.side_effect \u003d exception"},{"line_number":500,"context_line":"                        self.ip.return_value \u003d ip_wrapper"}],"source_content_type":"text/x-python","patch_set":4,"id":"20df63f2_6c650c7e","line":497,"updated":"2022-03-02 23:56:16.000000000","message":"I was also thinking a RuntimeError() here as well since you added that in the code.","commit_id":"1a0c4d8982a873d9eed1c45db83d86528456ca5e"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1126b340daee76f7a18363abf8aad9e142d9fb59","unresolved":false,"context_lines":[{"line_number":494,"context_line":"                        excutils, \u0027save_and_reraise_exception\u0027)"},{"line_number":495,"context_line":"                    reraise.start()"},{"line_number":496,"context_line":"                    ip_wrapper \u003d mock.Mock()"},{"line_number":497,"context_line":"                    for exception in (OSError(),"},{"line_number":498,"context_line":"                                      pyroute2_exc.NetlinkError(22)):"},{"line_number":499,"context_line":"                        ip_wrapper.ensure_namespace.side_effect \u003d exception"},{"line_number":500,"context_line":"                        self.ip.return_value \u003d ip_wrapper"}],"source_content_type":"text/x-python","patch_set":4,"id":"c73c83fa_7efe0181","line":497,"in_reply_to":"1a0c3a20_a2b7fcfe","updated":"2022-03-14 14:20:55.000000000","message":"Done","commit_id":"1a0c4d8982a873d9eed1c45db83d86528456ca5e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"9291492822b9c85a693b60fa1d3eae45180aa967","unresolved":true,"context_lines":[{"line_number":494,"context_line":"                        excutils, \u0027save_and_reraise_exception\u0027)"},{"line_number":495,"context_line":"                    reraise.start()"},{"line_number":496,"context_line":"                    ip_wrapper \u003d mock.Mock()"},{"line_number":497,"context_line":"                    for exception in (OSError(),"},{"line_number":498,"context_line":"                                      pyroute2_exc.NetlinkError(22)):"},{"line_number":499,"context_line":"                        ip_wrapper.ensure_namespace.side_effect \u003d exception"},{"line_number":500,"context_line":"                        self.ip.return_value \u003d ip_wrapper"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a0c3a20_a2b7fcfe","line":497,"in_reply_to":"20df63f2_6c650c7e","updated":"2022-03-04 10:32:25.000000000","message":"+1","commit_id":"1a0c4d8982a873d9eed1c45db83d86528456ca5e"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"fc36273bc07767f92dde82fb7b277e8923e8c79f","unresolved":true,"context_lines":[{"line_number":496,"context_line":"                    ip_wrapper \u003d mock.Mock()"},{"line_number":497,"context_line":"                    for exception in (OSError(),"},{"line_number":498,"context_line":"                                      pyroute2_exc.NetlinkError(22),"},{"line_number":499,"context_line":"                                      RuntimeError):"},{"line_number":500,"context_line":"                        ip_wrapper.ensure_namespace.side_effect \u003d exception"},{"line_number":501,"context_line":"                        self.ip.return_value \u003d ip_wrapper"},{"line_number":502,"context_line":"                        delete_port.reset_mock()"}],"source_content_type":"text/x-python","patch_set":5,"id":"713773b5_bef93dab","line":499,"range":{"start_line":499,"start_character":38,"end_line":499,"end_character":50},"updated":"2022-03-14 14:24:29.000000000","message":"RuntimeError() ?","commit_id":"2c5835981b4a0032200dfe65ff748e6c2c68d766"}]}
