)]}'
{"oslo_rootwrap/daemon.py":[{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"7c342599b88cacb7336ba64f16b0838ff013c743","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                stdout\u003dsubprocess.PIPE,"},{"line_number":57,"context_line":"                stderr\u003dsubprocess.PIPE)"},{"line_number":58,"context_line":"        except wrapper.FilterMatchNotExecutable:"},{"line_number":59,"context_line":"            LOG.warn(\"Executable not found for: %s\""},{"line_number":60,"context_line":"                     % \u0027 \u0027.join(userargs))"},{"line_number":61,"context_line":"            return cmd.RC_NOEXECFOUND, \"\", \"\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        except wrapper.NoFilterMatched:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_c95c761b","line":60,"range":{"start_line":59,"start_character":0,"end_line":60,"end_character":42},"updated":"2016-10-17 05:03:12.000000000","message":"warn method is deprecated, please use LOG.warning\n\nLOG.warn(_LW(\"Executable not found for: %s\"\n.....\n\nhttps://docs.python.org/3/library/logging.html#logging.Logger.warning","commit_id":"b3ab63448f6c5ae45ad11d63a6db355db67f7c93"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"0d29f622b9a0a041a013181497359abd0147b89a","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                stdout\u003dsubprocess.PIPE,"},{"line_number":57,"context_line":"                stderr\u003dsubprocess.PIPE)"},{"line_number":58,"context_line":"        except wrapper.FilterMatchNotExecutable:"},{"line_number":59,"context_line":"            LOG.warn(\"Executable not found for: %s\""},{"line_number":60,"context_line":"                     % \u0027 \u0027.join(userargs))"},{"line_number":61,"context_line":"            return cmd.RC_NOEXECFOUND, \"\", \"\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        except wrapper.NoFilterMatched:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_9a571e25","line":60,"range":{"start_line":59,"start_character":0,"end_line":60,"end_character":42},"in_reply_to":"fa6399be_09d90e57","updated":"2016-10-17 07:53:31.000000000","message":"Done","commit_id":"b3ab63448f6c5ae45ad11d63a6db355db67f7c93"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"0d29f622b9a0a041a013181497359abd0147b89a","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                stdout\u003dsubprocess.PIPE,"},{"line_number":57,"context_line":"                stderr\u003dsubprocess.PIPE)"},{"line_number":58,"context_line":"        except wrapper.FilterMatchNotExecutable:"},{"line_number":59,"context_line":"            LOG.warn(\"Executable not found for: %s\""},{"line_number":60,"context_line":"                     % \u0027 \u0027.join(userargs))"},{"line_number":61,"context_line":"            return cmd.RC_NOEXECFOUND, \"\", \"\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        except wrapper.NoFilterMatched:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_da335612","line":60,"range":{"start_line":59,"start_character":0,"end_line":60,"end_character":42},"in_reply_to":"fa6399be_c95c761b","updated":"2016-10-17 07:53:31.000000000","message":"Done","commit_id":"b3ab63448f6c5ae45ad11d63a6db355db67f7c93"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"3a2ee103e93689a8edead84102b7693e49cd9fbb","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                stdout\u003dsubprocess.PIPE,"},{"line_number":57,"context_line":"                stderr\u003dsubprocess.PIPE)"},{"line_number":58,"context_line":"        except wrapper.FilterMatchNotExecutable:"},{"line_number":59,"context_line":"            LOG.warn(\"Executable not found for: %s\""},{"line_number":60,"context_line":"                     % \u0027 \u0027.join(userargs))"},{"line_number":61,"context_line":"            return cmd.RC_NOEXECFOUND, \"\", \"\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        except wrapper.NoFilterMatched:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_09d90e57","line":60,"range":{"start_line":59,"start_character":0,"end_line":60,"end_character":42},"in_reply_to":"fa6399be_c95c761b","updated":"2016-10-17 05:07:16.000000000","message":"just use LOG.warning(\"Executable not found for: %s\"","commit_id":"b3ab63448f6c5ae45ad11d63a6db355db67f7c93"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"7c342599b88cacb7336ba64f16b0838ff013c743","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            return cmd.RC_NOEXECFOUND, \"\", \"\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        except wrapper.NoFilterMatched:"},{"line_number":64,"context_line":"            LOG.warn(\"Unauthorized command: %s (no filter matched)\""},{"line_number":65,"context_line":"                     % \u0027 \u0027.join(userargs))"},{"line_number":66,"context_line":"            return cmd.RC_UNAUTHORIZED, \"\", \"\""},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_e99dbabc","line":64,"range":{"start_line":64,"start_character":12,"end_line":64,"end_character":67},"updated":"2016-10-17 05:03:12.000000000","message":"ditto","commit_id":"b3ab63448f6c5ae45ad11d63a6db355db67f7c93"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"0d29f622b9a0a041a013181497359abd0147b89a","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            return cmd.RC_NOEXECFOUND, \"\", \"\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        except wrapper.NoFilterMatched:"},{"line_number":64,"context_line":"            LOG.warn(\"Unauthorized command: %s (no filter matched)\""},{"line_number":65,"context_line":"                     % \u0027 \u0027.join(userargs))"},{"line_number":66,"context_line":"            return cmd.RC_UNAUTHORIZED, \"\", \"\""},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_7a5c0a4b","line":64,"range":{"start_line":64,"start_character":12,"end_line":64,"end_character":67},"in_reply_to":"fa6399be_e99dbabc","updated":"2016-10-17 07:53:31.000000000","message":"Done","commit_id":"b3ab63448f6c5ae45ad11d63a6db355db67f7c93"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"5853a1ee6504f8a9f6fa136268799c6a4da42c99","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                stdout\u003dsubprocess.PIPE,"},{"line_number":57,"context_line":"                stderr\u003dsubprocess.PIPE)"},{"line_number":58,"context_line":"        except wrapper.FilterMatchNotExecutable:"},{"line_number":59,"context_line":"            LOG.warning(\"Executable not found for: %s\""},{"line_number":60,"context_line":"                        % \u0027 \u0027.join(userargs))"},{"line_number":61,"context_line":"            return cmd.RC_NOEXECFOUND, \"\", \"\""},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa6399be_f4973838","line":59,"updated":"2016-10-17 15:54:49.000000000","message":"This module (and as a matter of good practice) does not render strings in calling LOG.warning and rather provides parameters for substitution.\n\nI\u0027d recommend that this newly added code do the same.","commit_id":"a518e25e11c37b2e16e73afbd2ebaa7d0420139d"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"7e24367874246bc1a2cf087a89ecb4786cbfd987","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                stdout\u003dsubprocess.PIPE,"},{"line_number":57,"context_line":"                stderr\u003dsubprocess.PIPE)"},{"line_number":58,"context_line":"        except wrapper.FilterMatchNotExecutable:"},{"line_number":59,"context_line":"            LOG.warning(\"Executable not found for: %s\""},{"line_number":60,"context_line":"                        % \u0027 \u0027.join(userargs))"},{"line_number":61,"context_line":"            return cmd.RC_NOEXECFOUND, \"\", \"\""},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa6399be_39a43207","line":59,"in_reply_to":"fa6399be_f4973838","updated":"2016-10-18 04:50:50.000000000","message":"Done","commit_id":"a518e25e11c37b2e16e73afbd2ebaa7d0420139d"}],"oslo_rootwrap/tests/test_functional.py":[{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"325c8144625cd46262328ad644192814fe9c51b8","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def test_run_command_not_found(self):"},{"line_number":88,"context_line":"        code, out, err \u003d self.execute([\u0027unknown_cmd\u0027])"},{"line_number":89,"context_line":"        self.assertEqual(code, cmd.RC_NOEXECFOUND)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_run_unauthorized_command(self):"},{"line_number":92,"context_line":"        code, out, err \u003d self.execute([\u0027unauthorized_cmd\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_050aff78","line":89,"range":{"start_line":89,"start_character":7,"end_line":89,"end_character":50},"updated":"2016-10-14 12:04:31.000000000","message":"assertEqual accepts argument in the order like (expected, actual)","commit_id":"b6e4b715a84b2f92f171ed6f8cfd45425a3b24cf"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"334566904aa8bb58961faf7c1c6c3b896af157f6","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def test_run_command_not_found(self):"},{"line_number":88,"context_line":"        code, out, err \u003d self.execute([\u0027unknown_cmd\u0027])"},{"line_number":89,"context_line":"        self.assertEqual(code, cmd.RC_NOEXECFOUND)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_run_unauthorized_command(self):"},{"line_number":92,"context_line":"        code, out, err \u003d self.execute([\u0027unauthorized_cmd\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_092cae97","line":89,"range":{"start_line":89,"start_character":7,"end_line":89,"end_character":50},"in_reply_to":"fa6399be_050aff78","updated":"2016-10-17 04:47:38.000000000","message":"Done","commit_id":"b6e4b715a84b2f92f171ed6f8cfd45425a3b24cf"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"325c8144625cd46262328ad644192814fe9c51b8","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_run_unauthorized_command(self):"},{"line_number":92,"context_line":"        code, out, err \u003d self.execute([\u0027unauthorized_cmd\u0027])"},{"line_number":93,"context_line":"        self.assertEqual(code, cmd.RC_UNAUTHORIZED)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_run_as(self):"},{"line_number":96,"context_line":"        if os.getuid() !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_a51b13c9","line":93,"range":{"start_line":93,"start_character":0,"end_line":93,"end_character":51},"updated":"2016-10-14 12:04:31.000000000","message":"ditto","commit_id":"b6e4b715a84b2f92f171ed6f8cfd45425a3b24cf"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"334566904aa8bb58961faf7c1c6c3b896af157f6","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_run_unauthorized_command(self):"},{"line_number":92,"context_line":"        code, out, err \u003d self.execute([\u0027unauthorized_cmd\u0027])"},{"line_number":93,"context_line":"        self.assertEqual(code, cmd.RC_UNAUTHORIZED)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_run_as(self):"},{"line_number":96,"context_line":"        if os.getuid() !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_291fb25b","line":93,"range":{"start_line":93,"start_character":0,"end_line":93,"end_character":51},"in_reply_to":"fa6399be_a51b13c9","updated":"2016-10-17 04:47:38.000000000","message":"Done","commit_id":"b6e4b715a84b2f92f171ed6f8cfd45425a3b24cf"}]}
