Rename instead of writing directly to revoked file

Make the operation more atomic with multiple writers.

Closes-Bug: 1261554
Change-Id: I990a2ba28d9a2a1d01300dcd33266956d059afa3
This commit is contained in:
Chmouel Boudjnah
2013-12-17 23:05:12 +01:00
parent 8339aec3e8
commit 8acc3b4586

View File

@@ -1241,8 +1241,11 @@ class AuthProtocol(object):
"""
self._token_revocation_list = jsonutils.loads(value)
self.token_revocation_list_fetched_time = timeutils.utcnow()
with open(self.revoked_file_name, 'w') as f:
with tempfile.NamedTemporaryFile(dir=self.signing_dirname,
delete=False) as f:
f.write(value)
os.rename(f.name, self.revoked_file_name)
def fetch_revocation_list(self, retry=True):
headers = {'X-Auth-Token': self.get_admin_token()}