Put LDIF files to their original location in ipa-restore

This prevents SELinux failures during online data restore.

https://fedorahosted.org/freeipa/ticket/4822

Reviewed-By: Martin Kosek <mkosek@redhat.com>
This commit is contained in:
Jan Cholasta 2015-01-20 11:22:29 +00:00 committed by Martin Kosek
parent 251c97cf96
commit 4994cd1d8d

View File

@ -503,10 +503,17 @@ class Restore(admintool.AdminTool):
cn = time.strftime('import_%Y_%m_%d_%H_%M_%S') cn = time.strftime('import_%Y_%m_%d_%H_%M_%S')
dn = DN(('cn', cn), ('cn', 'import'), ('cn', 'tasks'), ('cn', 'config')) dn = DN(('cn', cn), ('cn', 'import'), ('cn', 'tasks'), ('cn', 'config'))
ldifdir = paths.SLAPD_INSTANCE_LDIF_DIR_TEMPLATE % instance
ldifname = '%s-%s.ldif' % (instance, backend) ldifname = '%s-%s.ldif' % (instance, backend)
ldiffile = os.path.join(ldifdir, ldifname)
srcldiffile = os.path.join(self.dir, ldifname) srcldiffile = os.path.join(self.dir, ldifname)
ldiffile = '%s.noruv' % srcldiffile
if not os.path.exists(ldifdir):
pent = pwd.getpwnam(DS_USER)
os.mkdir(ldifdir, 0770)
os.chown(ldifdir, pent.pw_uid, pent.pw_gid)
ipautil.backup_file(ldiffile)
with open(ldiffile, 'wb') as out_file: with open(ldiffile, 'wb') as out_file:
ldif_writer = ldif.LDIFWriter(out_file) ldif_writer = ldif.LDIFWriter(out_file)
with open(srcldiffile, 'rb') as in_file: with open(srcldiffile, 'rb') as in_file: