Replace file.flush() calls with flush_sync() helper

Calls to `os.fsync(f.fileno())` need to be accompained by `f.flush()`.

Commit 8bbeedc93f introduces the helper
`ipapython.ipautil.flush_sync()`, which handles all calls in the right
order.

However, `flush_sync()` takes as parameter a file object with fileno
and name, where name must be a path to the file, this isn't possible
in some cases where file descriptors are used.

Issue: https://pagure.io/freeipa/issue/7251

Signed-off-by: Armando Neto <abiagion@redhat.com>
Reviewed-By: Christian Heimes <cheimes@redhat.com>
This commit is contained in:
Armando Neto
2018-07-05 15:12:33 -03:00
committed by Christian Heimes
parent f29412729e
commit b274da726b
5 changed files with 10 additions and 9 deletions

View File

@@ -628,7 +628,7 @@ class CAInstance(DogtagInstance):
with open(self.cert_file, 'rb') as f:
ext_cert = x509.load_unknown_x509_certificate(f.read())
cert_file.write(ext_cert.public_bytes(x509.Encoding.PEM))
cert_file.flush()
ipautil.flush_sync(cert_file)
result = ipautil.run(
[paths.OPENSSL, 'crl2pkcs7',