1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

file: Recover from unexpectedly disappearing files (#42281)

This commit is contained in:
Dag Wieers 2018-07-09 11:27:25 +02:00 committed by GitHub
parent 8eb1e8c0e6
commit 198b62b906
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -33,7 +33,7 @@ author:
options: options:
path: path:
description: description:
- 'path to the file being managed. Aliases: I(dest), I(name)' - Path to the file being managed.
required: true required: true
aliases: [ dest, name ] aliases: [ dest, name ]
state: state:
@ -212,18 +212,24 @@ def get_state(path):
''' Find out current state ''' ''' Find out current state '''
b_path = to_bytes(path, errors='surrogate_or_strict') b_path = to_bytes(path, errors='surrogate_or_strict')
if os.path.lexists(b_path): try:
if os.path.islink(b_path): if os.path.lexists(b_path):
return 'link' if os.path.islink(b_path):
elif os.path.isdir(b_path): return 'link'
return 'directory' elif os.path.isdir(b_path):
elif os.stat(b_path).st_nlink > 1: return 'directory'
return 'hard' elif os.stat(b_path).st_nlink > 1:
return 'hard'
# could be many other things, but defaulting to file # could be many other things, but defaulting to file
return 'file' return 'file'
return 'absent' return 'absent'
except OSError as e:
if e.errno == errno.ENOENT: # It may already have been removed
return 'absent'
else:
raise
# This should be moved into the common file utilities # This should be moved into the common file utilities