]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Be polite and restore /etc/sudoers when done
authorZack Cerza <zack@cerza.org>
Fri, 6 Sep 2013 16:18:17 +0000 (11:18 -0500)
committerZack Cerza <zack@cerza.org>
Fri, 6 Sep 2013 16:18:17 +0000 (11:18 -0500)
teuthology/task/internal.py

index 1632bca19dbbabec50042316a96e50f50275f0ba..697cf78dfcfaa73fd0dc673ef716d3ce0187fba9 100644 (file)
@@ -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