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
|
retries = failed_hosts + unreachable_hosts
|
||||||
|
|
||||||
if len(retries) > 0:
|
if C.RETRY_FILES_ENABLED and len(retries) > 0:
|
||||||
filename = pb.generate_retry_inventory(retries)
|
filename = pb.generate_retry_inventory(retries)
|
||||||
if filename:
|
if filename:
|
||||||
display(" to retry, use: --limit @%s\n" % 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)
|
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)
|
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
|
# CONNECTION RELATED
|
||||||
ANSIBLE_SSH_ARGS = get_config(p, 'ssh_connection', 'ssh_args', 'ANSIBLE_SSH_ARGS', None)
|
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")
|
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()
|
buf = StringIO.StringIO()
|
||||||
for x in replay_hosts:
|
for x in replay_hosts:
|
||||||
buf.write("%s\n" % x)
|
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 = "%s.retry" % os.path.basename(self.filename)
|
||||||
filename = filename.replace(".yml","")
|
filename = filename.replace(".yml","")
|
||||||
filename = os.path.join(os.path.expandvars('$HOME/'), filename)
|
filename = os.path.join(basedir, filename)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
if not os.path.exists(basedir):
|
||||||
|
os.makedirs(basedir)
|
||||||
|
|
||||||
fd = open(filename, 'w')
|
fd = open(filename, 'w')
|
||||||
fd.write(buf.getvalue())
|
fd.write(buf.getvalue())
|
||||||
fd.close()
|
fd.close()
|
||||||
return filename
|
|
||||||
except:
|
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 None
|
||||||
|
|
||||||
|
return filename
|
||||||
|
|
||||||
# *****************************************************
|
# *****************************************************
|
||||||
|
|
||||||
def _run_play(self, play):
|
def _run_play(self, play):
|
||||||
|
|
Loading…
Reference in a new issue