From f0eabc970f3c3ee70ec860943e469f9274a27f40 Mon Sep 17 00:00:00 2001 From: Zack Cerza Date: Fri, 6 Sep 2013 11:18:17 -0500 Subject: [PATCH] Be polite and restore /etc/sudoers when done --- teuthology/task/internal.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/teuthology/task/internal.py b/teuthology/task/internal.py index 1632bca19dbba..697cf78dfcfaa 100644 --- a/teuthology/task/internal.py +++ b/teuthology/task/internal.py @@ -322,22 +322,33 @@ def archive(ctx, config): ), ) + @contextlib.contextmanager def sudo(ctx, config): log.info('Configuring sudo...') sudoers_file = '/etc/sudoers' + backup_ext = '.orig' tty_expr = 's/requiretty/!requiretty/' pw_expr = 's/!visiblepw/visiblepw/' run.wait( ctx.cluster.run( - args="sudo sed -i -e '{tty_expr}' -e '{pw_expr}' {path}".format( - tty_expr=tty_expr, pw_expr=pw_expr, path=sudoers_file + args="sudo sed -i{ext} -e '{tty}' -e '{pw}' {path}".format( + ext=backup_ext, tty=tty_expr, pw=pw_expr, + path=sudoers_file ), wait=False, ) ) - yield + try: + yield + finally: + log.info('Restoring {}...'.format(sudoers_file)) + ctx.cluster.run( + args="sudo mv -f {path}{ext} {path}".format( + path=sudoers_file, ext=backup_ext + ) + ) @contextlib.contextmanager -- 2.39.5