[tor-commits] [oonib/master] Use shutil.move instead of os.rename.

art at torproject.org art at torproject.org
Wed Sep 3 13:56:01 UTC 2014


commit d507cec9856a46ab1a18586d5559861662a77491
Author: Arturo Filastò <art at fuffa.org>
Date:   Wed Sep 3 15:38:54 2014 +0200

    Use shutil.move instead of os.rename.
    
    This is needed because otherwise it will not be possible to have the reports
    dir on a different device other than the archive dir.
    When using os.rename if the dst is not on the same device as src a
    "OSError: [Errno 18] Invalid cross-device link" is thrown.
    shutil.move will by default try to use os.rename, but if it fails it will copy
    src to dst and then remove src.
---
 oonib/report/handlers.py |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/oonib/report/handlers.py b/oonib/report/handlers.py
index f1d9408..4b88647 100644
--- a/oonib/report/handlers.py
+++ b/oonib/report/handlers.py
@@ -1,3 +1,4 @@
+import shutil
 import time
 import yaml
 import json
@@ -76,7 +77,7 @@ class Report(object):
             os.mkdir(dst_path)
 
         dst_path = os.path.join(dst_path, dst_filename)
-        os.rename(report_filename, dst_path)
+        shutil.move(report_filename, dst_path)
 
         if not self.delayed_call.called:
             self.delayed_call.cancel()





More information about the tor-commits mailing list