summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Plugins/DBStats.py
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2008-10-08 21:22:15 +0000
committerNarayan Desai <desai@mcs.anl.gov>2008-10-08 21:22:15 +0000
commitca36779a8f04767a8a2ab0ea5e9ff8994aa5e131 (patch)
treeec9ffd35f30b43a7136395cdbcd0b219531cdd3e /src/lib/Server/Plugins/DBStats.py
parent3e7d63c4b27057676f02fa505ef108f45a81472f (diff)
downloadbcfg2-ca36779a8f04767a8a2ab0ea5e9ff8994aa5e131.tar.gz
bcfg2-ca36779a8f04767a8a2ab0ea5e9ff8994aa5e131.tar.bz2
bcfg2-ca36779a8f04767a8a2ab0ea5e9ff8994aa5e131.zip
Add error handling and retries for database write problems (Resolves Ticket #602)
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@4935 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src/lib/Server/Plugins/DBStats.py')
-rw-r--r--src/lib/Server/Plugins/DBStats.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/lib/Server/Plugins/DBStats.py b/src/lib/Server/Plugins/DBStats.py
index a9686533e..8f28e8c2d 100644
--- a/src/lib/Server/Plugins/DBStats.py
+++ b/src/lib/Server/Plugins/DBStats.py
@@ -34,8 +34,16 @@ class DBStats(Bcfg2.Server.Plugin.StatisticsPlugin):
# FIXME need to build a metadata interface to expose a list of clients
# FIXME Server processing the request should be mentionned here
start = time.time()
- Bcfg2.Server.Reports.importscript.load_stats(
- self.core.metadata.clientdata, container, 0, True)
+ for i in [1,2,3]:
+ try:
+ Bcfg2.Server.Reports.importscript.load_stats(
+ self.core.metadata.clientdata, container, 0, True)
+ break
+ except:
+ logger.error("DBStats: Failed to write data to database due to lock; retrying")
+ if i == 3:
+ logger.error("DBStats: Retry limit failed; aborting operation")
+ return
logger.info("Imported data in the reason fast path in %s second" % (time.time() - start))
def GetExtra(self, client):