From ae1248dee6907b3573cbc356f2af2c9062cbe4f8 Mon Sep 17 00:00:00 2001 From: James Tanner Date: Mon, 4 Nov 2013 10:52:44 -0500 Subject: [PATCH] Add a timeout to the synchronize module to prevent infinite hangs while waiting on passwords for misconfigured users --- files/synchronize | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/files/synchronize b/files/synchronize index 73daf5962b0..1ab2566d556 100644 --- a/files/synchronize +++ b/files/synchronize @@ -150,6 +150,7 @@ def main(): times = dict(type='bool'), owner = dict(type='bool'), group = dict(type='bool'), + rsync_timeout = dict(type='int', default=10) ), supports_check_mode = True ) @@ -160,6 +161,7 @@ def main(): private_key = module.params['private_key'] rsync_path = module.params['rsync_path'] rsync = module.params.get('local_rsync_path', 'rsync') + rsync_timeout = module.params.get('rsync_timeout', 'rsync_timeout') archive = module.params['archive'] dirs = module.params['dirs'] # the default of these params depends on the value of archive @@ -170,7 +172,7 @@ def main(): owner = module.params['owner'] group = module.params['group'] - cmd = '%s --delay-updates --compress' % rsync + cmd = '%s --delay-updates --compress --timeout=%s' % (rsync, rsync_timeout) if module.check_mode: cmd = cmd + ' --dry-run' if delete: