diff --git a/agkyra/agkyra/syncer/localfs_client.py b/agkyra/agkyra/syncer/localfs_client.py index 358e2d9b75404d16a307b0c518a577b421b4d9fe..4a6cfa3b8f2b4299119f13b0e15d91e822379a59 100644 --- a/agkyra/agkyra/syncer/localfs_client.py +++ b/agkyra/agkyra/syncer/localfs_client.py @@ -52,8 +52,11 @@ def link_file(src, dest): try: os.link(src, dest) except OSError as e: - if e.errno in [OS_FILE_EXISTS, OS_NOT_A_DIR]: + if e.errno == OS_FILE_EXISTS: raise common.ConflictError("Cannot link, '%s' exists." % dest) + if e.errno == OS_NOT_A_DIR: + raise common.ConflictError( + "Cannot link, missing path for '%s'." % dest) if e.errno == OS_NO_FILE_OR_DIR: raise DirMissing() @@ -143,7 +146,7 @@ def stat_file(path): try: return os.lstat(path) except OSError as e: - if e.errno == OS_NO_FILE_OR_DIR: + if e.errno in [OS_NO_FILE_OR_DIR, OS_NOT_A_DIR]: return None raise @@ -266,7 +269,7 @@ class LocalfsTargetHandle(object): logger.info("Hiding file '%s' to '%s'" % (fspath, hidden_path)) except OSError as e: - if e.errno == OS_NO_FILE_OR_DIR: + if e.errno in [OS_NO_FILE_OR_DIR, OS_NOT_A_DIR]: self.unregister_hidden_name(hidden_filename) logger.info("File '%s' does not exist" % fspath) return @@ -391,7 +394,7 @@ class LocalfsSourceHandle(object): try: os.rename(fspath, stage_path) except OSError as e: - if e.errno == OS_NO_FILE_OR_DIR: + if e.errno in [OS_NO_FILE_OR_DIR, OS_NOT_A_DIR]: logger.info("Source does not exist: '%s'" % fspath) self.unregister_stage_name(stage_filename) return