|
From: <ni...@us...> - 2010-11-23 14:00:58
|
Revision: 160
http://openautomation.svn.sourceforge.net/openautomation/?rev=160&view=rev
Author: nilss1
Date: 2010-11-23 14:00:52 +0000 (Tue, 23 Nov 2010)
Log Message:
-----------
show details on datastore.db errors
Modified Paths:
--------------
PyWireGate/trunk/datastore.py
Modified: PyWireGate/trunk/datastore.py
===================================================================
--- PyWireGate/trunk/datastore.py 2010-11-23 12:25:11 UTC (rev 159)
+++ PyWireGate/trunk/datastore.py 2010-11-23 14:00:52 UTC (rev 160)
@@ -1,6 +1,7 @@
import sys
import time
import threading
+import re
import codecs
@@ -23,7 +24,7 @@
-class datastore:
+class datastore(object):
"""
Datastore Instance
"""
@@ -104,7 +105,8 @@
self.debug("load DATASTORE")
try:
db = codecs.open(self.WG.config['WireGate']['datastore'],"r",encoding='UTF-8')
- loaddict = json.load(db)
+ data = db.read()
+ loaddict = json.loads(data)
db.close()
for name, obj in loaddict.items():
self.dataobjects[name] = dataObject(self,obj['id'],obj['name'])
@@ -117,10 +119,22 @@
except IOError:
## no DB File
pass
- except ValueError:
+ except ValueError,e:
## empty DB File
self.DBLOADED = True
- raise
+ result = re.findall(r"line\s(\d+)\s", e.message)
+ if result:
+ ## only on json errors not when db is empty
+ lnum = int(result[0])
+ print "Can't load Datastore"
+ data = data.split("\n")
+ lines = data[lnum -10:lnum +10]
+ for line in range(lnum-10,lnum+10):
+ if line == lnum-1:
+ print "--" + data[line]
+ else:
+ print "##" + data[line]
+ sys.exit(1)
except:
self.WG.errorlog()
## error
@@ -172,7 +186,7 @@
self.WG.log(msg,severity,"datastore")
-class dataObject:
+class dataObject(object):
def __init__(self,parent,id,name=False):
self._parent = parent
self.WG = parent.WG
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|