import re
import subprocess
import shutil
+import time
import ipaddress
'-e', '@%s' % config_file,
'-i', inventory,
playbook]
- try:
- subprocess.check_call(args)
- except subprocess.CalledProcessError as err:
- sys.exit('ERROR: cluster setup exited with %d' % err.returncode)
+
+ # First attempt sometimes fails, so try a few times
+ for _ in range(5):
+ try:
+ subprocess.check_call(args)
+ except subprocess.CalledProcessError as err:
+ print('warning: cluster setup exited with %d, retrying' %
+ err.returncode,
+ file=sys.stderr)
+ saved_err = err
+ time.sleep(1)
+ else:
+ return
+
+ sys.exit('ERROR: cluster setup exited with %d' % saved_err.returncode)
def cluster_build(cluster):