)]}'
{"oslo_rootwrap/daemon.py":[{"author":{"_account_id":708,"name":"Yuriy Taraday","email":"yuriy@taraday.nl","username":"yorik-sar"},"change_message_id":"8df6907274710cb5ac3072d784c9a6a0edd5741d","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                                              serializer\u003d\u0027jsonrpc\u0027)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"def get_manager_class(config\u003dNone, filters\u003dNone):"},{"line_number":71,"context_line":"    if config is not None:"},{"line_number":72,"context_line":"        partial_class \u003d functools.partial(RootwrapClass, config, filters)"},{"line_number":73,"context_line":"        RootwrapManager.register(\u0027rootwrap\u0027, partial_class)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_176a8aee","line":70,"updated":"2015-06-17 14:19:24.000000000","message":"Class was deliberately declared inside this function to create new instance of class on every call. This is needed because every call depends on arguments and \"register\" call later changes class state.\n\nPlease revert this change.","commit_id":"a3d1dc1a91de47cd95cce76f4db9b35c616c7ba7"},{"author":{"_account_id":708,"name":"Yuriy Taraday","email":"yuriy@taraday.nl","username":"yorik-sar"},"change_message_id":"8df6907274710cb5ac3072d784c9a6a0edd5741d","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        LOG.info(\"Starting rootwrap daemon main loop\")"},{"line_number":116,"context_line":"        server.serve_forever()"},{"line_number":117,"context_line":"    finally:"},{"line_number":118,"context_line":"        if server:"},{"line_number":119,"context_line":"            conn \u003d server.listener"},{"line_number":120,"context_line":"            # This will break accept() loop with EOFError if it was not in the"},{"line_number":121,"context_line":"            # main thread (as in Python 3.x)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_42328ef3","line":118,"updated":"2015-06-17 14:19:24.000000000","message":"I think we should wrap part after \"server \u003d ...\" in a separate try-finally instead.","commit_id":"a3d1dc1a91de47cd95cce76f4db9b35c616c7ba7"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"9ff1f98387098f468b413ee2f044e27ed4003273","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        LOG.info(\"Starting rootwrap daemon main loop\")"},{"line_number":116,"context_line":"        server.serve_forever()"},{"line_number":117,"context_line":"    finally:"},{"line_number":118,"context_line":"        if server:"},{"line_number":119,"context_line":"            conn \u003d server.listener"},{"line_number":120,"context_line":"            # This will break accept() loop with EOFError if it was not in the"},{"line_number":121,"context_line":"            # main thread (as in Python 3.x)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_009ce25b","line":118,"in_reply_to":"fa32b979_42328ef3","updated":"2015-06-22 10:49:40.000000000","message":"Done","commit_id":"a3d1dc1a91de47cd95cce76f4db9b35c616c7ba7"},{"author":{"_account_id":708,"name":"Yuriy Taraday","email":"yuriy@taraday.nl","username":"yorik-sar"},"change_message_id":"ae27f2fd6da1631cdfc261e96de3c6257a471ab1","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def daemon_start(config, filters):"},{"line_number":80,"context_line":"    server \u003d None"},{"line_number":81,"context_line":"    temp_dir \u003d tempfile.mkdtemp(prefix\u003d\u0027rootwrap-\u0027)"},{"line_number":82,"context_line":"    LOG.debug(\"Created temporary directory %s\", temp_dir)"},{"line_number":83,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_84ca0d19","line":80,"updated":"2015-06-23 11:00:58.000000000","message":"nit: This line is not needed anymore.","commit_id":"7cafcda05eccedbd0475e85f42bcac6048ad4d52"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b11d11b276ffa181eb4d05da925779a5542bd3b9","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def daemon_start(config, filters):"},{"line_number":80,"context_line":"    server \u003d None"},{"line_number":81,"context_line":"    temp_dir \u003d tempfile.mkdtemp(prefix\u003d\u0027rootwrap-\u0027)"},{"line_number":82,"context_line":"    LOG.debug(\"Created temporary directory %s\", temp_dir)"},{"line_number":83,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_1fb64a8a","line":80,"in_reply_to":"fa32b979_84ca0d19","updated":"2015-06-23 11:21:22.000000000","message":"Done","commit_id":"7cafcda05eccedbd0475e85f42bcac6048ad4d52"}],"oslo_rootwrap/tests/test_rootwrap.py":[{"author":{"_account_id":708,"name":"Yuriy Taraday","email":"yuriy@taraday.nl","username":"yorik-sar"},"change_message_id":"8df6907274710cb5ac3072d784c9a6a0edd5741d","unresolved":false,"context_lines":[{"line_number":598,"context_line":"    @mock.patch.object(daemon.RootwrapManager, \u0027get_server\u0027,"},{"line_number":599,"context_line":"                       side_effect\u003dDaemonCleanupException)"},{"line_number":600,"context_line":"    def test_daemon_no_cleanup_for_uninitialized_server(self, gs, *args):"},{"line_number":601,"context_line":"            self.assertRaises(DaemonCleanupException, daemon.daemon_start,"},{"line_number":602,"context_line":"                              config\u003dNone, filters\u003dNone)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_824df63f","line":601,"updated":"2015-06-17 14:19:24.000000000","message":"extra indent","commit_id":"a3d1dc1a91de47cd95cce76f4db9b35c616c7ba7"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"9ff1f98387098f468b413ee2f044e27ed4003273","unresolved":false,"context_lines":[{"line_number":598,"context_line":"    @mock.patch.object(daemon.RootwrapManager, \u0027get_server\u0027,"},{"line_number":599,"context_line":"                       side_effect\u003dDaemonCleanupException)"},{"line_number":600,"context_line":"    def test_daemon_no_cleanup_for_uninitialized_server(self, gs, *args):"},{"line_number":601,"context_line":"            self.assertRaises(DaemonCleanupException, daemon.daemon_start,"},{"line_number":602,"context_line":"                              config\u003dNone, filters\u003dNone)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_a0dbb6ec","line":601,"in_reply_to":"fa32b979_824df63f","updated":"2015-06-22 10:49:40.000000000","message":"Done","commit_id":"a3d1dc1a91de47cd95cce76f4db9b35c616c7ba7"}]}
