summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Babej <tbabej@redhat.com>2013-10-30 12:22:56 +0100
committerPetr Viktorin <pviktori@redhat.com>2013-10-31 13:18:09 +0100
commit63451c0b16ea501fafc2678873e604f55ae81437 (patch)
tree92f35b45701025bf36514e02f6befc73e1712b16
parenta4ea378e5123c9883814952df06dfe6482da307d (diff)
downloadfreeipa.git-63451c0b16ea501fafc2678873e604f55ae81437.tar.gz
freeipa.git-63451c0b16ea501fafc2678873e604f55ae81437.tar.xz
freeipa.git-63451c0b16ea501fafc2678873e604f55ae81437.zip
ipatests: Restore SELinux context after restoring files from backup
Part of: https://fedorahosted.org/freeipa/ticket/3833
-rw-r--r--ipatests/test_integration/tasks.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/ipatests/test_integration/tasks.py b/ipatests/test_integration/tasks.py
index bb7688bc..3fa32879 100644
--- a/ipatests/test_integration/tasks.py
+++ b/ipatests/test_integration/tasks.py
@@ -116,8 +116,20 @@ def unapply_fixes(host):
def restore_files(host):
backupname = os.path.join(host.config.test_dir, 'file_backup')
rmname = os.path.join(host.config.test_dir, 'file_remove')
+
+ # Restore the backed up files
host.run_command('cp -arvf %s/* /' % ipautil.shell_quote(backupname),
raiseonerr=False)
+
+ # Restore context of the backed-up files
+ sed_remove_backupdir = 's/%s//g' % backupname.replace('/', '\/')
+ host.run_command("find %s | "
+ "sed '%s' | "
+ "sed '/^$/d' | "
+ "xargs -d '\n' "
+ "/sbin/restorecon -v" % (backupname, sed_remove_backupdir))
+
+ # Remove all the files that did not exist and were 'backed up'
host.run_command(['xargs', '-d', r'\n', '-a', rmname, 'rm', '-vf'],
raiseonerr=False)
host.run_command(['rm', '-rvf', backupname, rmname], raiseonerr=False)