From e84cfba65def8ebf4b9941b40a8a253c3e0d3ba1 Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Wed, 26 Jan 2011 19:47:25 +0100 Subject: [PATCH] [entropy.tools] when using os.rename(), only catch OSError exception where errno = EXDEV --- libraries/entropy/tools.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libraries/entropy/tools.py b/libraries/entropy/tools.py index bec69480e..54ce4e7f2 100644 --- a/libraries/entropy/tools.py +++ b/libraries/entropy/tools.py @@ -619,11 +619,11 @@ def movefile(src, dest, src_basedir = None): try: os.rename(src, dest) renamefailed = False - except OSError as e: - if e[0] != errno.EXDEV: + except OSError as err: + if err.errno != errno.EXDEV: # Some random error. print_generic("!!! Failed to move", src, "to", dest) - print_generic("!!!", repr(e)) + print_generic("!!!", repr(err)) return False # Invalid cross-device-link 'bind' mounted or actually Cross-Device @@ -2263,7 +2263,9 @@ def write_parameter_to_file(config_file, name, data): try: os.rename(config_file_tmp, config_file) - except OSError: + except OSError as err: + if err.errno != errno.EXDEV: + raise shutil.move(config_file_tmp, config_file) return True