file: Recover from unexpectedly disappearing files (#42281)

pull/42439/merge
Dag Wieers 6 years ago committed by GitHub
parent 8eb1e8c0e6
commit 198b62b906
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -33,7 +33,7 @@ author:
options:
path:
description:
- 'path to the file being managed. Aliases: I(dest), I(name)'
- Path to the file being managed.
required: true
aliases: [ dest, name ]
state:
@ -212,18 +212,24 @@ def get_state(path):
''' Find out current state '''
b_path = to_bytes(path, errors='surrogate_or_strict')
if os.path.lexists(b_path):
if os.path.islink(b_path):
return 'link'
elif os.path.isdir(b_path):
return 'directory'
elif os.stat(b_path).st_nlink > 1:
return 'hard'
# could be many other things, but defaulting to file
return 'file'
return 'absent'
try:
if os.path.lexists(b_path):
if os.path.islink(b_path):
return 'link'
elif os.path.isdir(b_path):
return 'directory'
elif os.stat(b_path).st_nlink > 1:
return 'hard'
# could be many other things, but defaulting to file
return 'file'
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

Loading…
Cancel
Save