diff options
author | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2016-05-31 22:34:54 +0200 |
---|---|---|
committer | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2016-06-04 16:04:52 +0000 |
commit | e7e2d84bec0d404057bce203f9c90231360e88ee (patch) | |
tree | 43e54e897217da67906580991c3c7f0a110250e8 /patches/opnfv-fuel/0021-common.py-allow-specifying-number-of-attempts-in-exe.patch | |
parent | 70f2caa773fc5f0e2b1154a5c095665375f02666 (diff) |
Rebase: deploy related patch series.
After change "common.py: catch stderr in exec_cmd" [1] and other
unrelated changes were merged upstream,
we need to rebase the complete deploy related series.
While we're at it, re-export Fuel@OPNFV patches in Armband.
[1] https://gerrit.opnfv.org/gerrit/#/c/14561/
Change-Id: Icbc8261c2e24e4b29e8f5f2bc83db6829219129a
Diffstat (limited to 'patches/opnfv-fuel/0021-common.py-allow-specifying-number-of-attempts-in-exe.patch')
-rw-r--r-- | patches/opnfv-fuel/0021-common.py-allow-specifying-number-of-attempts-in-exe.patch | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/patches/opnfv-fuel/0021-common.py-allow-specifying-number-of-attempts-in-exe.patch b/patches/opnfv-fuel/0021-common.py-allow-specifying-number-of-attempts-in-exe.patch deleted file mode 100644 index d799723e..00000000 --- a/patches/opnfv-fuel/0021-common.py-allow-specifying-number-of-attempts-in-exe.patch +++ /dev/null @@ -1,70 +0,0 @@ -From: Josep Puigdemont <josep.puigdemont@enea.com> -Date: Fri, 6 May 2016 03:28:26 +0200 -Subject: [PATCH] common.py: allow specifying number of attempts in exec_cmd - -Some commands executed by exec_cmd may fail because of a temporary -cause, and it may be desirable to retry the same command several times -until it succeeds. One example of this are the ipmitool commands, which -may fail temorarily on some targets if they get too many requests -simultaneously. - -In this patch two new optional parameters are introduced to the function -signature, which do not break backward compatibility: - attempts: which indicates how many times the command should be run if - it returns a non-zero value*, and defaults to 1 (as today). - delay: which indicates the delay in seconds between attempts, and - defaults to 5 seconds. - verbose: It will print the remaining attempts left for the current - command if set to True. - -* It may be desirable to add yet another parameter to indicate what - return value should be considered an error, but zero for now seems a - reasonable default - -Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com> ---- - deploy/common.py | 24 +++++++++++++++++------- - 1 file changed, 17 insertions(+), 7 deletions(-) - -diff --git a/deploy/common.py b/deploy/common.py -index 41b4e27..3cd3e0e 100644 ---- a/deploy/common.py -+++ b/deploy/common.py -@@ -16,6 +16,7 @@ import argparse - import shutil - import stat - import errno -+import time - - N = {'id': 0, 'status': 1, 'name': 2, 'cluster': 3, 'ip': 4, 'mac': 5, - 'roles': 6, 'pending_roles': 7, 'online': 8, 'group_id': 9} -@@ -37,13 +38,22 @@ out_handler.setFormatter(formatter) - LOG.addHandler(out_handler) - os.chmod(LOGFILE, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - --def exec_cmd(cmd, check=True): -- process = subprocess.Popen(cmd, -- stdout=subprocess.PIPE, -- stderr=subprocess.PIPE, -- shell=True) -- (response, stderr) = process.communicate() -- return_code = process.returncode -+def exec_cmd(cmd, check=True, attempts=1, delay=5, verbose=False): -+ # a negative value means forever -+ while attempts != 0: -+ attempts = attempts - 1 -+ process = subprocess.Popen(cmd, -+ stdout=subprocess.PIPE, -+ stderr=subprocess.PIPE, -+ shell=True) -+ (response, stderr) = process.communicate() -+ return_code = process.returncode -+ if return_code == 0 or attempts == 0: -+ break -+ time.sleep(delay) -+ if verbose: -+ log('%d attempts left: %s' % (attempts, cmd)) -+ - response = response.strip() - if check: - if return_code > 0: |