[enh] Small changes to env prepending in hook_exec

This commit is contained in:
Jérôme Lebleu 2016-04-25 18:10:25 +02:00
parent b3cfbc21ac
commit 205d6db7bd
2 changed files with 8 additions and 8 deletions

View file

@ -486,7 +486,7 @@ def backup_restore(auth, name, hooks=[], ignore_hooks=False,
env_dict["YNH_APP_INSTANCE_NAME"] = app_instance_name
env_dict["YNH_APP_INSTANCE_NUMBER"] = str(app_instance_nb)
hook_exec(tmp_script, args=[tmp_app_dir + '/backup', app_instance_name],
hook_exec(tmp_script, args=[tmp_app_bkp_dir, app_instance_name],
raise_on_error=True, chdir=tmp_app_bkp_dir, env=env_dict)
except:
logger.exception(m18n.n('restore_app_failed', app=app_instance_name))

View file

@ -329,18 +329,18 @@ def hook_exec(path, args=None, raise_on_error=False, no_trace=False,
else:
cmd_script = path
envcli = ''
if env is not None:
envcli = ' '.join([ '{key}="{val}"'.format(key=key, val=val) for key,val in env.items()])
# Construct command to execute
command = ['sudo', '-n', '-u', 'admin', '-H', 'sh', '-c']
if no_trace:
cmd = '{envcli} /bin/bash "{script}" {args}'
cmd = '/bin/bash "{script}" {args}'
else:
# use xtrace on fd 7 which is redirected to stdout
cmd = '{envcli} BASH_XTRACEFD=7 /bin/bash -x "{script}" {args} 7>&1'
command.append(cmd.format(envcli=envcli, script=cmd_script, args=cmd_args))
cmd = 'BASH_XTRACEFD=7 /bin/bash -x "{script}" {args} 7>&1'
if env:
# prepend environment variables
cmd = '{0} {1}'.format(
' '.join(['{0}="{1}"'.format(k, v) for k, v in env.items()]), cmd)
command.append(cmd.format(script=cmd_script, args=cmd_args))
if logger.isEnabledFor(log.DEBUG):
logger.info(m18n.n('executing_command', command=' '.join(command)))