mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Configure retry file usage and location
Adds new settings for managing retry files: * retry_files_enabled, defaults to True * retry_files_save_path, defaults to ~/.ansible-retry This change was adapted from PR #5515.
This commit is contained in:
parent
34129a223d
commit
c15b47fb7b
3 changed files with 18 additions and 6 deletions
|
@ -276,7 +276,7 @@ def main(args):
|
|||
|
||||
retries = failed_hosts + unreachable_hosts
|
||||
|
||||
if len(retries) > 0:
|
||||
if C.RETRY_FILES_ENABLED and len(retries) > 0:
|
||||
filename = pb.generate_retry_inventory(retries)
|
||||
if filename:
|
||||
display(" to retry, use: --limit @%s\n" % filename)
|
||||
|
|
|
@ -161,6 +161,9 @@ DEFAULT_CALLABLE_WHITELIST = get_config(p, DEFAULTS, 'callable_whitelist', '
|
|||
COMMAND_WARNINGS = get_config(p, DEFAULTS, 'command_warnings', 'ANSIBLE_COMMAND_WARNINGS', False, boolean=True)
|
||||
DEFAULT_LOAD_CALLBACK_PLUGINS = get_config(p, DEFAULTS, 'bin_ansible_callbacks', 'ANSIBLE_LOAD_CALLBACK_PLUGINS', False, boolean=True)
|
||||
|
||||
RETRY_FILES_ENABLED = get_config(p, DEFAULTS, 'retry_files_enabled', 'ANSIBLE_RETRY_FILES_ENABLED', True, boolean=True)
|
||||
RETRY_FILES_SAVE_PATH = get_config(p, DEFAULTS, 'retry_files_save_path', 'ANSIBLE_RETRY_FILES_SAVE_PATH', '~/.ansible-retry')
|
||||
|
||||
# CONNECTION RELATED
|
||||
ANSIBLE_SSH_ARGS = get_config(p, 'ssh_connection', 'ssh_args', 'ANSIBLE_SSH_ARGS', None)
|
||||
ANSIBLE_SSH_CONTROL_PATH = get_config(p, 'ssh_connection', 'control_path', 'ANSIBLE_SSH_CONTROL_PATH', "%(directory)s/ansible-ssh-%%h-%%p-%%r")
|
||||
|
|
|
@ -636,20 +636,29 @@ class PlayBook(object):
|
|||
buf = StringIO.StringIO()
|
||||
for x in replay_hosts:
|
||||
buf.write("%s\n" % x)
|
||||
basedir = self.inventory.basedir()
|
||||
basedir = C.shell_expand_path(C.RETRY_FILES_SAVE_PATH)
|
||||
filename = "%s.retry" % os.path.basename(self.filename)
|
||||
filename = filename.replace(".yml","")
|
||||
filename = os.path.join(os.path.expandvars('$HOME/'), filename)
|
||||
filename = os.path.join(basedir, filename)
|
||||
|
||||
try:
|
||||
if not os.path.exists(basedir):
|
||||
os.makedirs(basedir)
|
||||
|
||||
fd = open(filename, 'w')
|
||||
fd.write(buf.getvalue())
|
||||
fd.close()
|
||||
return filename
|
||||
except:
|
||||
pass
|
||||
ansible.callbacks.display(
|
||||
"\nERROR: could not create retry file. Check the value of \n"
|
||||
+ "the configuration variable 'retry_files_save_path' or set \n"
|
||||
+ "'retry_files_enabled' to False to avoid this message.\n",
|
||||
color='red'
|
||||
)
|
||||
return None
|
||||
|
||||
return filename
|
||||
|
||||
# *****************************************************
|
||||
|
||||
def _run_play(self, play):
|
||||
|
|
Loading…
Reference in a new issue