)]}'
{"trove/guestagent/common/operating_system.py":[{"author":{"_account_id":28695,"name":"Bartosz Zurkowski","email":"b.zurkowski@samsung.com","username":"b.zurkowski"},"change_message_id":"7cceac9073a6f20a57d4003696315beb22ec4ddd","unresolved":false,"context_lines":[{"line_number":876,"context_line":"    return pwd.getpwuid(info.st_uid)[0]"},{"line_number":877,"context_line":""},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"def get_file_group(path):"},{"line_number":880,"context_line":"    \"\"\""},{"line_number":881,"context_line":"    Return file group."},{"line_number":882,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3fce034c_7663ab1b","line":879,"updated":"2019-04-16 10:59:36.000000000","message":"This method is currently unused. Let\u0027s remove it.","commit_id":"65b6e2f2c1997c16fe866b8b6df2838107bcfa84"},{"author":{"_account_id":29995,"name":"Kasper Hasior","email":"k.hasior@partner.samsung.com","username":"k.hasior"},"change_message_id":"91fd0acde5643e52f93bcfb699538f0431b1b885","unresolved":false,"context_lines":[{"line_number":876,"context_line":"    return pwd.getpwuid(info.st_uid)[0]"},{"line_number":877,"context_line":""},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"def get_file_group(path):"},{"line_number":880,"context_line":"    \"\"\""},{"line_number":881,"context_line":"    Return file group."},{"line_number":882,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3fce034c_277e4f6b","line":879,"in_reply_to":"3fce034c_7663ab1b","updated":"2019-04-16 14:20:24.000000000","message":"Done","commit_id":"65b6e2f2c1997c16fe866b8b6df2838107bcfa84"}],"trove/guestagent/datastore/manager.py":[{"author":{"_account_id":28695,"name":"Bartosz Zurkowski","email":"b.zurkowski@samsung.com","username":"b.zurkowski"},"change_message_id":"7e3e82ea1e50c16673f9201fe111cb2fcd892a16","unresolved":false,"context_lines":[{"line_number":410,"context_line":"        \"\"\""},{"line_number":411,"context_line":"        pass"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    def restore_home_directory(self, old_home_dir):"},{"line_number":414,"context_line":"        home_dir \u003d os.path.expanduser(\"~\")"},{"line_number":415,"context_line":"        home_owner \u003d operating_system.get_file_owner(home_dir)"},{"line_number":416,"context_line":"        home_group \u003d operating_system.get_file_group(home_dir)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fce034c_1edc0b73","line":413,"range":{"start_line":413,"start_character":8,"end_line":413,"end_character":30},"updated":"2019-04-12 07:09:33.000000000","message":"Let\u0027s make this method \"private\" (prefix with underscore). It won\u0027t be used by higher-level modules, but only in the internal scope of manager class.","commit_id":"23af6e1f2fbe7244e42f15cdf29c20b318b79f1d"},{"author":{"_account_id":29995,"name":"Kasper Hasior","email":"k.hasior@partner.samsung.com","username":"k.hasior"},"change_message_id":"6da6d18705f52a1590d6274f9d9834d82827daeb","unresolved":false,"context_lines":[{"line_number":410,"context_line":"        \"\"\""},{"line_number":411,"context_line":"        pass"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    def restore_home_directory(self, old_home_dir):"},{"line_number":414,"context_line":"        home_dir \u003d os.path.expanduser(\"~\")"},{"line_number":415,"context_line":"        home_owner \u003d operating_system.get_file_owner(home_dir)"},{"line_number":416,"context_line":"        home_group \u003d operating_system.get_file_group(home_dir)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fce034c_6a251bab","line":413,"range":{"start_line":413,"start_character":8,"end_line":413,"end_character":30},"in_reply_to":"3fce034c_1edc0b73","updated":"2019-04-15 10:03:26.000000000","message":"Done","commit_id":"23af6e1f2fbe7244e42f15cdf29c20b318b79f1d"},{"author":{"_account_id":28695,"name":"Bartosz Zurkowski","email":"b.zurkowski@samsung.com","username":"b.zurkowski"},"change_message_id":"7e3e82ea1e50c16673f9201fe111cb2fcd892a16","unresolved":false,"context_lines":[{"line_number":414,"context_line":"        home_dir \u003d os.path.expanduser(\"~\")"},{"line_number":415,"context_line":"        home_owner \u003d operating_system.get_file_owner(home_dir)"},{"line_number":416,"context_line":"        home_group \u003d operating_system.get_file_group(home_dir)"},{"line_number":417,"context_line":"        operating_system.copy(\"%s/.\" % old_home_dir, home_dir,"},{"line_number":418,"context_line":"                              preserve\u003dTrue, as_root\u003dTrue)"},{"line_number":419,"context_line":"        operating_system.chown(path\u003dhome_dir, user\u003dhome_owner,"},{"line_number":420,"context_line":"                               group\u003dhome_group, recursive\u003dTrue,"},{"line_number":421,"context_line":"                               as_root\u003dTrue)"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"    #################"},{"line_number":424,"context_line":"    # Service related"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fce034c_f42033fa","line":421,"range":{"start_line":417,"start_character":8,"end_line":421,"end_character":44},"updated":"2019-04-12 07:09:33.000000000","message":"As you noticed, we should chown each directory after post upgrade to ensure valid ownership. Consequently, we will every time:\n\n1. Copy the directory from restore location to target location\n2. Chwon the directory with appropriate owner\n\nThis code block repeats in multiple locations related to post-upgrade step and, as far as I know, will be used in strategies for subsequent datastores.\n\nI suggest wrapping the code into a reusable helper method similar to \"validate_log_file\" [1], e.g., \"restore_directory\":  \n\n def _restore_directory(self, restore_dir, target_dir, owner):\n     # copy from \"restore_dir\" to \"target_dir\"\n     # chown \"target_dir\" with ownership of \"owner\"\n\n(We can assume owner-group equality to simplify it)\n\nThen, we could use the method like the following:\n\n home_owner \u003d ...\n self._restore_directory(\n     \"%s/.\" % upgrade_info[\u0027home_save\u0027],\n     os.path.expanduser(\u0027~\u0027),\n     home_owner\n )\n self._restore_directory(\n     \"%s/.\" % upgrade_info[\u0027save_dir\u0027],\n     \"/etc/mysql\",\n     MYSQL_USER\n )\n\nYou could also resue \"restore_directory\" method in \"restore_home_directory\".\n\n[1] https://github.com/openstack/trove/blob/ad848298821974a5b7acf7120778cf3e8b1fe023/trove/guestagent/datastore/manager.py#L631","commit_id":"23af6e1f2fbe7244e42f15cdf29c20b318b79f1d"},{"author":{"_account_id":29995,"name":"Kasper Hasior","email":"k.hasior@partner.samsung.com","username":"k.hasior"},"change_message_id":"6da6d18705f52a1590d6274f9d9834d82827daeb","unresolved":false,"context_lines":[{"line_number":414,"context_line":"        home_dir \u003d os.path.expanduser(\"~\")"},{"line_number":415,"context_line":"        home_owner \u003d operating_system.get_file_owner(home_dir)"},{"line_number":416,"context_line":"        home_group \u003d operating_system.get_file_group(home_dir)"},{"line_number":417,"context_line":"        operating_system.copy(\"%s/.\" % old_home_dir, home_dir,"},{"line_number":418,"context_line":"                              preserve\u003dTrue, as_root\u003dTrue)"},{"line_number":419,"context_line":"        operating_system.chown(path\u003dhome_dir, user\u003dhome_owner,"},{"line_number":420,"context_line":"                               group\u003dhome_group, recursive\u003dTrue,"},{"line_number":421,"context_line":"                               as_root\u003dTrue)"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"    #################"},{"line_number":424,"context_line":"    # Service related"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fce034c_4a229fa6","line":421,"range":{"start_line":417,"start_character":8,"end_line":421,"end_character":44},"in_reply_to":"3fce034c_f42033fa","updated":"2019-04-15 10:03:26.000000000","message":"Done","commit_id":"23af6e1f2fbe7244e42f15cdf29c20b318b79f1d"},{"author":{"_account_id":28695,"name":"Bartosz Zurkowski","email":"b.zurkowski@samsung.com","username":"b.zurkowski"},"change_message_id":"7cceac9073a6f20a57d4003696315beb22ec4ddd","unresolved":false,"context_lines":[{"line_number":418,"context_line":"            operating_system.chown(path\u003dtarget_dir, user\u003downer, group\u003downer,"},{"line_number":419,"context_line":"                                   recursive\u003dTrue, as_root\u003dTrue)"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"    def _restore_home_directory(self, old_home_dir):"},{"line_number":422,"context_line":"        home_dir \u003d os.path.expanduser(\"~\")"},{"line_number":423,"context_line":"        home_owner \u003d operating_system.get_file_owner(home_dir)"},{"line_number":424,"context_line":"        self._restore_directory(restore_dir\u003dold_home_dir,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fce034c_b6ab531b","line":421,"range":{"start_line":421,"start_character":38,"end_line":421,"end_character":50},"updated":"2019-04-16 10:59:36.000000000","message":"Rename suggestion: \"saved_home_dir\"","commit_id":"65b6e2f2c1997c16fe866b8b6df2838107bcfa84"},{"author":{"_account_id":29995,"name":"Kasper Hasior","email":"k.hasior@partner.samsung.com","username":"k.hasior"},"change_message_id":"91fd0acde5643e52f93bcfb699538f0431b1b885","unresolved":false,"context_lines":[{"line_number":418,"context_line":"            operating_system.chown(path\u003dtarget_dir, user\u003downer, group\u003downer,"},{"line_number":419,"context_line":"                                   recursive\u003dTrue, as_root\u003dTrue)"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"    def _restore_home_directory(self, old_home_dir):"},{"line_number":422,"context_line":"        home_dir \u003d os.path.expanduser(\"~\")"},{"line_number":423,"context_line":"        home_owner \u003d operating_system.get_file_owner(home_dir)"},{"line_number":424,"context_line":"        self._restore_directory(restore_dir\u003dold_home_dir,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fce034c_c75e6b11","line":421,"range":{"start_line":421,"start_character":38,"end_line":421,"end_character":50},"in_reply_to":"3fce034c_b6ab531b","updated":"2019-04-16 14:20:24.000000000","message":"Done","commit_id":"65b6e2f2c1997c16fe866b8b6df2838107bcfa84"},{"author":{"_account_id":28695,"name":"Bartosz Zurkowski","email":"b.zurkowski@samsung.com","username":"b.zurkowski"},"change_message_id":"7cceac9073a6f20a57d4003696315beb22ec4ddd","unresolved":false,"context_lines":[{"line_number":419,"context_line":"                                   recursive\u003dTrue, as_root\u003dTrue)"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"    def _restore_home_directory(self, old_home_dir):"},{"line_number":422,"context_line":"        home_dir \u003d os.path.expanduser(\"~\")"},{"line_number":423,"context_line":"        home_owner \u003d operating_system.get_file_owner(home_dir)"},{"line_number":424,"context_line":"        self._restore_directory(restore_dir\u003dold_home_dir,"},{"line_number":425,"context_line":"                                target_dir\u003dhome_dir,"},{"line_number":426,"context_line":"                                owner\u003dhome_owner)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fce034c_162027b0","line":423,"range":{"start_line":422,"start_character":0,"end_line":423,"end_character":62},"updated":"2019-04-16 10:59:36.000000000","message":"Another suggestion: consider resolving name of the current user [1] instead of testing a home directory.\n\n[1] https://stackoverflow.com/a/2899055","commit_id":"65b6e2f2c1997c16fe866b8b6df2838107bcfa84"},{"author":{"_account_id":29995,"name":"Kasper Hasior","email":"k.hasior@partner.samsung.com","username":"k.hasior"},"change_message_id":"91fd0acde5643e52f93bcfb699538f0431b1b885","unresolved":false,"context_lines":[{"line_number":419,"context_line":"                                   recursive\u003dTrue, as_root\u003dTrue)"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"    def _restore_home_directory(self, old_home_dir):"},{"line_number":422,"context_line":"        home_dir \u003d os.path.expanduser(\"~\")"},{"line_number":423,"context_line":"        home_owner \u003d operating_system.get_file_owner(home_dir)"},{"line_number":424,"context_line":"        self._restore_directory(restore_dir\u003dold_home_dir,"},{"line_number":425,"context_line":"                                target_dir\u003dhome_dir,"},{"line_number":426,"context_line":"                                owner\u003dhome_owner)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fce034c_679bf7c8","line":423,"range":{"start_line":422,"start_character":0,"end_line":423,"end_character":62},"in_reply_to":"3fce034c_162027b0","updated":"2019-04-16 14:20:24.000000000","message":"I have added seperated function for determining current user in operating_system module.","commit_id":"65b6e2f2c1997c16fe866b8b6df2838107bcfa84"},{"author":{"_account_id":28695,"name":"Bartosz Zurkowski","email":"b.zurkowski@samsung.com","username":"b.zurkowski"},"change_message_id":"238d4dbb95c79467654c006e47fc4ba691321312","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        pass"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    def _restore_directory(self, restore_dir, target_dir, owner\u003dNone):"},{"line_number":414,"context_line":"        files_path \u003d os.path.join(restore_dir, \".\")"},{"line_number":415,"context_line":"        operating_system.copy(files_path, target_dir,"},{"line_number":416,"context_line":"                              preserve\u003dTrue, as_root\u003dTrue)"},{"line_number":417,"context_line":"        if owner is not None:"}],"source_content_type":"text/x-python","patch_set":11,"id":"ffb9cba7_8fa2d24a","line":414,"range":{"start_line":414,"start_character":8,"end_line":414,"end_character":18},"updated":"2019-04-24 13:44:10.000000000","message":"Suggested rename: \"restore_path\"","commit_id":"8a18297835291d5fccf93b71f8aceed009bb6430"},{"author":{"_account_id":29995,"name":"Kasper Hasior","email":"k.hasior@partner.samsung.com","username":"k.hasior"},"change_message_id":"695f22b8d803fa798562bfa3edb10afb3881d728","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        pass"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    def _restore_directory(self, restore_dir, target_dir, owner\u003dNone):"},{"line_number":414,"context_line":"        files_path \u003d os.path.join(restore_dir, \".\")"},{"line_number":415,"context_line":"        operating_system.copy(files_path, target_dir,"},{"line_number":416,"context_line":"                              preserve\u003dTrue, as_root\u003dTrue)"},{"line_number":417,"context_line":"        if owner is not None:"}],"source_content_type":"text/x-python","patch_set":11,"id":"ffb9cba7_6dd8c67e","line":414,"range":{"start_line":414,"start_character":8,"end_line":414,"end_character":18},"in_reply_to":"ffb9cba7_8fa2d24a","updated":"2019-04-24 14:30:18.000000000","message":"Done","commit_id":"8a18297835291d5fccf93b71f8aceed009bb6430"},{"author":{"_account_id":28695,"name":"Bartosz Zurkowski","email":"b.zurkowski@samsung.com","username":"b.zurkowski"},"change_message_id":"238d4dbb95c79467654c006e47fc4ba691321312","unresolved":false,"context_lines":[{"line_number":420,"context_line":""},{"line_number":421,"context_line":"    def _restore_home_directory(self, saved_home_dir):"},{"line_number":422,"context_line":"        home_dir \u003d os.path.expanduser(\"~\")"},{"line_number":423,"context_line":"        new_owner \u003d operating_system.get_current_user()"},{"line_number":424,"context_line":"        self._restore_directory(restore_dir\u003dsaved_home_dir,"},{"line_number":425,"context_line":"                                target_dir\u003dhome_dir,"},{"line_number":426,"context_line":"                                owner\u003dnew_owner)"}],"source_content_type":"text/x-python","patch_set":11,"id":"ffb9cba7_4f84dab1","line":423,"updated":"2019-04-24 13:44:10.000000000","message":"Suggested rename: \"home_owner\"","commit_id":"8a18297835291d5fccf93b71f8aceed009bb6430"},{"author":{"_account_id":29995,"name":"Kasper Hasior","email":"k.hasior@partner.samsung.com","username":"k.hasior"},"change_message_id":"695f22b8d803fa798562bfa3edb10afb3881d728","unresolved":false,"context_lines":[{"line_number":420,"context_line":""},{"line_number":421,"context_line":"    def _restore_home_directory(self, saved_home_dir):"},{"line_number":422,"context_line":"        home_dir \u003d os.path.expanduser(\"~\")"},{"line_number":423,"context_line":"        new_owner \u003d operating_system.get_current_user()"},{"line_number":424,"context_line":"        self._restore_directory(restore_dir\u003dsaved_home_dir,"},{"line_number":425,"context_line":"                                target_dir\u003dhome_dir,"},{"line_number":426,"context_line":"                                owner\u003dnew_owner)"}],"source_content_type":"text/x-python","patch_set":11,"id":"ffb9cba7_4dc6229d","line":423,"in_reply_to":"ffb9cba7_4f84dab1","updated":"2019-04-24 14:30:18.000000000","message":"Done","commit_id":"8a18297835291d5fccf93b71f8aceed009bb6430"}],"trove/guestagent/datastore/mysql_common/manager.py":[{"author":{"_account_id":28695,"name":"Bartosz Zurkowski","email":"b.zurkowski@samsung.com","username":"b.zurkowski"},"change_message_id":"7e3e82ea1e50c16673f9201fe111cb2fcd892a16","unresolved":false,"context_lines":[{"line_number":294,"context_line":"                              preserve\u003dTrue, as_root\u003dTrue)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        self.configuration_manager.refresh_cache()"},{"line_number":297,"context_line":"        app.status.end_restart()"},{"line_number":298,"context_line":"        app.start_mysql()"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    def restart(self, context):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fce034c_623fb7d6","line":297,"updated":"2019-04-12 07:09:33.000000000","message":"You must rebase the change since status restart has been already introduced in [1]. Also, it should be located after \"start_mysql\".\n\n[1] https://review.openstack.org/#/c/649591","commit_id":"23af6e1f2fbe7244e42f15cdf29c20b318b79f1d"},{"author":{"_account_id":29995,"name":"Kasper Hasior","email":"k.hasior@partner.samsung.com","username":"k.hasior"},"change_message_id":"6da6d18705f52a1590d6274f9d9834d82827daeb","unresolved":false,"context_lines":[{"line_number":294,"context_line":"                              preserve\u003dTrue, as_root\u003dTrue)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        self.configuration_manager.refresh_cache()"},{"line_number":297,"context_line":"        app.status.end_restart()"},{"line_number":298,"context_line":"        app.start_mysql()"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    def restart(self, context):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fce034c_a731fca4","line":297,"in_reply_to":"3fce034c_623fb7d6","updated":"2019-04-15 10:03:26.000000000","message":"Done","commit_id":"23af6e1f2fbe7244e42f15cdf29c20b318b79f1d"},{"author":{"_account_id":28695,"name":"Bartosz Zurkowski","email":"b.zurkowski@samsung.com","username":"b.zurkowski"},"change_message_id":"7cceac9073a6f20a57d4003696315beb22ec4ddd","unresolved":false,"context_lines":[{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        if operating_system.exists(upgrade_info[\u0027save_etc_dir\u0027],"},{"line_number":289,"context_line":"                                   is_directory\u003dTrue, as_root\u003dTrue):"},{"line_number":290,"context_line":"            operating_system.copy(\"%s/.\" % upgrade_info[\u0027save_etc_dir\u0027],"},{"line_number":291,"context_line":"                                  \"/etc\", preserve\u003dTrue, as_root\u003dTrue)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        operating_system.copy(\"%s/.\" % upgrade_info[\u0027save_dir\u0027], \"/etc/mysql\","}],"source_content_type":"text/x-python","patch_set":8,"id":"3fce034c_d654df23","line":290,"updated":"2019-04-16 10:59:36.000000000","message":"Why don\u0027t we reuse \"_restore_directory\" method for restoring these files?","commit_id":"65b6e2f2c1997c16fe866b8b6df2838107bcfa84"},{"author":{"_account_id":29995,"name":"Kasper Hasior","email":"k.hasior@partner.samsung.com","username":"k.hasior"},"change_message_id":"91fd0acde5643e52f93bcfb699538f0431b1b885","unresolved":false,"context_lines":[{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        if operating_system.exists(upgrade_info[\u0027save_etc_dir\u0027],"},{"line_number":289,"context_line":"                                   is_directory\u003dTrue, as_root\u003dTrue):"},{"line_number":290,"context_line":"            operating_system.copy(\"%s/.\" % upgrade_info[\u0027save_etc_dir\u0027],"},{"line_number":291,"context_line":"                                  \"/etc\", preserve\u003dTrue, as_root\u003dTrue)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        operating_system.copy(\"%s/.\" % upgrade_info[\u0027save_dir\u0027], \"/etc/mysql\","}],"source_content_type":"text/x-python","patch_set":8,"id":"3fce034c_07aa33d1","line":290,"in_reply_to":"3fce034c_d654df23","updated":"2019-04-16 14:20:24.000000000","message":"Done","commit_id":"65b6e2f2c1997c16fe866b8b6df2838107bcfa84"},{"author":{"_account_id":28695,"name":"Bartosz Zurkowski","email":"b.zurkowski@samsung.com","username":"b.zurkowski"},"change_message_id":"7cceac9073a6f20a57d4003696315beb22ec4ddd","unresolved":false,"context_lines":[{"line_number":290,"context_line":"            operating_system.copy(\"%s/.\" % upgrade_info[\u0027save_etc_dir\u0027],"},{"line_number":291,"context_line":"                                  \"/etc\", preserve\u003dTrue, as_root\u003dTrue)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        operating_system.copy(\"%s/.\" % upgrade_info[\u0027save_dir\u0027], \"/etc/mysql\","},{"line_number":294,"context_line":"                              preserve\u003dTrue, as_root\u003dTrue)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        self.configuration_manager.refresh_cache()"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fce034c_76316b0b","line":293,"updated":"2019-04-16 10:59:36.000000000","message":"Why don\u0027t we reuse \"_restore_directory\" method for restoring these files?","commit_id":"65b6e2f2c1997c16fe866b8b6df2838107bcfa84"},{"author":{"_account_id":29995,"name":"Kasper Hasior","email":"k.hasior@partner.samsung.com","username":"k.hasior"},"change_message_id":"91fd0acde5643e52f93bcfb699538f0431b1b885","unresolved":false,"context_lines":[{"line_number":290,"context_line":"            operating_system.copy(\"%s/.\" % upgrade_info[\u0027save_etc_dir\u0027],"},{"line_number":291,"context_line":"                                  \"/etc\", preserve\u003dTrue, as_root\u003dTrue)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        operating_system.copy(\"%s/.\" % upgrade_info[\u0027save_dir\u0027], \"/etc/mysql\","},{"line_number":294,"context_line":"                              preserve\u003dTrue, as_root\u003dTrue)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        self.configuration_manager.refresh_cache()"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fce034c_c7b3cb4c","line":293,"in_reply_to":"3fce034c_76316b0b","updated":"2019-04-16 14:20:24.000000000","message":"Done","commit_id":"65b6e2f2c1997c16fe866b8b6df2838107bcfa84"},{"author":{"_account_id":28695,"name":"Bartosz Zurkowski","email":"b.zurkowski@samsung.com","username":"b.zurkowski"},"change_message_id":"f8148f9bb1979f850908a67e95e25fefbde93c82","unresolved":false,"context_lines":[{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        if operating_system.exists(upgrade_info[\u0027save_etc_dir\u0027],"},{"line_number":289,"context_line":"                                   is_directory\u003dTrue, as_root\u003dTrue):"},{"line_number":290,"context_line":"            self._restore_directory(upgrade_info[\u0027save_etc_dir\u0027], \"/etc\")"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        self._restore_directory(\"%s/.\" % upgrade_info[\u0027save_dir\u0027],"},{"line_number":293,"context_line":"                                \"/etc/mysql\")"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fce034c_40ad7086","line":290,"updated":"2019-04-17 07:26:30.000000000","message":"What about chowning the ownership for copied files simlarly to home directory?","commit_id":"dc1405229897ca37adbfa8a0717e96d14b93840b"},{"author":{"_account_id":29995,"name":"Kasper Hasior","email":"k.hasior@partner.samsung.com","username":"k.hasior"},"change_message_id":"8c63c10aa7f5ef5c64c9a36d4adb1e2f9171f5db","unresolved":false,"context_lines":[{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        if operating_system.exists(upgrade_info[\u0027save_etc_dir\u0027],"},{"line_number":289,"context_line":"                                   is_directory\u003dTrue, as_root\u003dTrue):"},{"line_number":290,"context_line":"            self._restore_directory(upgrade_info[\u0027save_etc_dir\u0027], \"/etc\")"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        self._restore_directory(\"%s/.\" % upgrade_info[\u0027save_dir\u0027],"},{"line_number":293,"context_line":"                                \"/etc/mysql\")"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fce034c_c05c0080","line":290,"in_reply_to":"3fce034c_40ad7086","updated":"2019-04-17 07:37:07.000000000","message":"It is not necessary because we change owner of all files in the mounted volume so the file owner of all copied files is already set to MYSQL_OWNER.","commit_id":"dc1405229897ca37adbfa8a0717e96d14b93840b"},{"author":{"_account_id":28695,"name":"Bartosz Zurkowski","email":"b.zurkowski@samsung.com","username":"b.zurkowski"},"change_message_id":"f8148f9bb1979f850908a67e95e25fefbde93c82","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                                   is_directory\u003dTrue, as_root\u003dTrue):"},{"line_number":290,"context_line":"            self._restore_directory(upgrade_info[\u0027save_etc_dir\u0027], \"/etc\")"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        self._restore_directory(\"%s/.\" % upgrade_info[\u0027save_dir\u0027],"},{"line_number":293,"context_line":"                                \"/etc/mysql\")"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        self.configuration_manager.refresh_cache()"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fce034c_00b9a8ca","line":292,"updated":"2019-04-17 07:26:30.000000000","message":"What about chowning the ownership for copied files simlarly to home directory?","commit_id":"dc1405229897ca37adbfa8a0717e96d14b93840b"},{"author":{"_account_id":29995,"name":"Kasper Hasior","email":"k.hasior@partner.samsung.com","username":"k.hasior"},"change_message_id":"8c63c10aa7f5ef5c64c9a36d4adb1e2f9171f5db","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                                   is_directory\u003dTrue, as_root\u003dTrue):"},{"line_number":290,"context_line":"            self._restore_directory(upgrade_info[\u0027save_etc_dir\u0027], \"/etc\")"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        self._restore_directory(\"%s/.\" % upgrade_info[\u0027save_dir\u0027],"},{"line_number":293,"context_line":"                                \"/etc/mysql\")"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        self.configuration_manager.refresh_cache()"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fce034c_a051b464","line":292,"in_reply_to":"3fce034c_00b9a8ca","updated":"2019-04-17 07:37:07.000000000","message":"As above","commit_id":"dc1405229897ca37adbfa8a0717e96d14b93840b"}],"trove/guestagent/datastore/service.py":[{"author":{"_account_id":28695,"name":"Bartosz Zurkowski","email":"b.zurkowski@samsung.com","username":"b.zurkowski"},"change_message_id":"f640702447ce5a0bb51b50ba7143aa1bc360c8bf","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            self.__refresh_prepare_completed()"},{"line_number":78,"context_line":"        return self.__prepare_completed"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def __refresh_prepare_completed(self):"},{"line_number":81,"context_line":"        # Set the value of __prepared_completed based on the existence of"},{"line_number":82,"context_line":"        # the file.  This is required as the state is cached so this method"},{"line_number":83,"context_line":"        # must be called any time the existence of the file changes."}],"source_content_type":"text/x-python","patch_set":10,"id":"3fce034c_6318b674","line":80,"updated":"2019-04-17 07:59:57.000000000","message":"We lost the assignment for \"__prepare_completed\" variable. Now, it is set nowhere in the code.\n\nAlso, the comment below is inadequate:\n\n\u003e Set the value of __prepared_completed","commit_id":"dc1405229897ca37adbfa8a0717e96d14b93840b"},{"author":{"_account_id":29995,"name":"Kasper Hasior","email":"k.hasior@partner.samsung.com","username":"k.hasior"},"change_message_id":"644e2aeb171ea53dc3ac202cfa606b19d3a92af4","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            self.__refresh_prepare_completed()"},{"line_number":78,"context_line":"        return self.__prepare_completed"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def __refresh_prepare_completed(self):"},{"line_number":81,"context_line":"        # Set the value of __prepared_completed based on the existence of"},{"line_number":82,"context_line":"        # the file.  This is required as the state is cached so this method"},{"line_number":83,"context_line":"        # must be called any time the existence of the file changes."}],"source_content_type":"text/x-python","patch_set":10,"id":"3fce034c_43feda37","line":80,"in_reply_to":"3fce034c_6318b674","updated":"2019-04-17 08:42:02.000000000","message":"Done","commit_id":"dc1405229897ca37adbfa8a0717e96d14b93840b"}]}
