--- a/iro/iro.py Fri Oct 08 02:59:04 2010 +0200
+++ b/iro/iro.py Wed Nov 03 01:18:38 2010 +0100
@@ -27,6 +27,7 @@
from job import SMSJob, FAXJob, MailJob
from joblist import Joblist
from providerlist import Providerlist
+from acounting import Acounting
class MyUserDB(UserDB):
def __init__(self, userlist,jobqueue):
@@ -97,6 +98,7 @@
MyManager.register('FAXob', FAXJob)
MyManager.register('MailJob',MailJob)
MyManager.register('Providerlist',Providerlist)
+ MyManager.register('Acounting',Acounting)
manager = MyManager()
manager.start()
@@ -113,6 +115,17 @@
smstrade=MySmstrade()
smstrade.read_basic_config(conf)
+
+ cp = ConfigParser.ConfigParser()
+ cp.read(conf)
+ dbconn={'type':cp.get('db', 'type'),
+ 'host':cp.get('db', 'host'),
+ 'db':cp.get('db', 'db'),
+ 'user':cp.get('db', 'user'),
+ 'passwd':cp.get('db', 'passwd'),
+ 'table':cp.get('db', 'table'),
+ }
+
#Benutzerdatenbank erstellen
queue = Queue()
@@ -125,7 +138,7 @@
provider.setDefault("sms","smstrade")
provider.setDefault("fax","sipgate")
provider.setDefault("mail","localhost")
- jobqueue=Joblist(manager, queue, provider)
+ jobqueue=Joblist(manager, queue, provider,dbconn)
userdb=MyUserDB(userlist,jobqueue)
--- a/iro/job.py Fri Oct 08 02:59:04 2010 +0200
+++ b/iro/job.py Wed Nov 03 01:18:38 2010 +0100
@@ -22,9 +22,18 @@
self.status = "init"
self.dStatus={"good":[], "failed":[]}
self.id=None
+ self.acounting=None
+
+ def setAcounting(self,ac):
+ self.acounting=ac
- def start(self,id=None):
+ def setId(self, id):
self.id=id
+ if self.acounting:
+ self.acounting.setId(id)
+
+ def start(self,indifier=None):
+ self.indifier=indifier
self.status = "started"
def stop(self):
@@ -48,12 +57,16 @@
return None
def addGood(self, good):
+ if self.acounting:
+ self.acounting.addGood(good)
if type(good) == list:
self.dStatus['good']=self.dStatus['good']+good
else:
self.dStatus['good'].append(good)
def addFailed(self, failed):
+ if self.acounting:
+ self.acounting.addFailed(failed)
if type(failed) == list:
self.dStatus['failed']=self.dStatus['failed']+failed
else:
--- a/iro/joblist.py Fri Oct 08 02:59:04 2010 +0200
+++ b/iro/joblist.py Wed Nov 03 01:18:38 2010 +0100
@@ -13,17 +13,19 @@
from anbieter import content
import md5, os, time
-
+import logging
+logger=logging.getLogger("iro.joblist");
class Joblist:
'''
Providing an list of jobs; each new job gets a hash id
'''
- def __init__(self,manager, queue,providerlist):
+ def __init__(self,manager, queue,providerlist,dbconn=None):
self.jobs={}
self.manager=manager
self.queue=queue
self.providerlist=providerlist
+ self.dbconn=dbconn
def __getitem__(self,key):
@@ -31,6 +33,9 @@
def __registerJob__(self, job):
id = self._createID()
+ if self.dbconn:
+ job.setAcounting(self.manager.Acounting(id,self.dbconn))
+ job.setId(id)
self.jobs[id]=job
self.queue.put(job)
return id
--- a/iro/worker.py Fri Oct 08 02:59:04 2010 +0200
+++ b/iro/worker.py Wed Nov 03 01:18:38 2010 +0100
@@ -11,17 +11,17 @@
self.queue=queue
def run(self):
- id=0
+ indifier=0
while 1:
job=self.queue.get()
if job is None:
break # reached end of queue
- id+=1
- logger.info('ein neuer Job(%d)' %(id))
+ indifier+=1
+ logger.info('ein neuer Job(%d)' %(indifier))
try:
- job.start(id)
- logger.info('Job(%d) fertig ;)'%(id))
+ job.start(indifier)
+ logger.info('Job(%d) fertig ;)'%(indifier))
except:
job.setStatus("error")
- logger.exception('Job(%d) fehlgeschlagen :('%(id))
+ logger.exception('Job(%d) fehlgeschlagen :('%(indifier))