[llvm-commits] [zorg] r128448 - /zorg/trunk/llvmlab/llvmlab/ui/app.py
Daniel Dunbar
daniel at zuster.org
Mon Mar 28 19:59:28 PDT 2011
Author: ddunbar
Date: Mon Mar 28 21:59:28 2011
New Revision: 128448
URL: http://llvm.org/viewvc/llvm-project?rev=128448&view=rev
Log:
llvmlab.app: Improve save_status to be a bit more reliable and make sure we don't leave the status file in an indeterminant state.
Modified:
zorg/trunk/llvmlab/llvmlab/ui/app.py
Modified: zorg/trunk/llvmlab/llvmlab/ui/app.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/llvmlab/llvmlab/ui/app.py?rev=128448&r1=128447&r2=128448&view=diff
==============================================================================
--- zorg/trunk/llvmlab/llvmlab/ui/app.py (original)
+++ zorg/trunk/llvmlab/llvmlab/ui/app.py Mon Mar 28 21:59:28 2011
@@ -2,6 +2,7 @@
import logging
import logging.handlers
import os
+import shutil
import flask
@@ -158,12 +159,22 @@
def save_status(self):
install_path = self.config["INSTALL_PATH"]
- data_path = os.path.join(install_path, "lab-status.json")
+ data_path = os.path.join(install_path, "lab-status.json.new")
file = open(data_path, 'w')
flask.json.dump(self.config.status.todata(), file, indent=2)
print >>file
file.close()
+ # Backup the current status.
+ backup_path = os.path.join(install_path, "lab-status.json.bak")
+ status_path = os.path.join(install_path, "lab-status.json")
+ try:
+ os.remove(backup_path)
+ except:
+ pass
+ shutil.move(status_path, backup_path)
+ shutil.move(data_path, status_path)
+
def authenticate_login(self, username, password):
passhash = hashlib.sha256(
password + self.config["SECRET_KEY"]).hexdigest()
More information about the llvm-commits
mailing list