Don't retry when using synchronize module

There is a bug (https://github.com/ansible/ansible/issues/18281) in the
ansible synchronize module that causes any retry attempt at
synchronizing to fail because the paths get munged resulting in invalid
paths. Unfortunately this also means that the error message we get is
not for the first failed sync attempt but for the last making it hard to
debug why things failed in the first place.

Address this by not attempting to retry until ansible is fixed. This way
we get accurate error messages more quickly (as we don't retry over and
over and generate a bad error message at the end).

Change-Id: I545c44b11f37576edc8768a3ed78962ff870995f
This commit is contained in:
Clark Boylan 2016-11-16 11:46:18 -08:00
parent 92b2602c26
commit 63a595bae3
1 changed files with 13 additions and 3 deletions

View File

@ -1009,7 +1009,11 @@ class NodeWorker(object):
synchronize=syncargs)
if not scpfile.get('copy-after-failure'):
task['when'] = 'success|bool'
task.update(self.retry_args)
# We don't use retry_args here because there is a bug in
# the synchronize module that breaks subsequent attempts at
# retrying. Better to try once and get an accurate error
# message if it fails.
# https://github.com/ansible/ansible/issues/18281
tasks.append(task)
task = self._makeSCPTaskLocalAction(
@ -1084,7 +1088,10 @@ class NodeWorker(object):
task = dict(name='copy files from node',
synchronize=syncargs,
when='success|bool')
task.update(self.retry_args)
# We don't use retry_args here because there is a bug in the
# synchronize module that breaks subsequent attempts at retrying.
# Better to try once and get an accurate error message if it fails.
# https://github.com/ansible/ansible/issues/18281
tasks.append(task)
task = dict(name='FTP files to server',
shell='lftp -f %s' % ftpscript,
@ -1142,7 +1149,10 @@ class NodeWorker(object):
task = dict(name='copy files from node',
synchronize=syncargs,
when='success|bool')
task.update(self.retry_args)
# We don't use retry_args here because there is a bug in the
# synchronize module that breaks subsequent attempts at retrying.
# Better to try once and get an accurate error message if it fails.
# https://github.com/ansible/ansible/issues/18281
tasks.append(task)
afstarget = afs['target'].lstrip('/')