# HG changeset patch # User Sandro Knauß # Date 1288743518 -3600 # Node ID ae3669fef3b06c07c0685e6a183ac0254c9cd87a # Parent 9774768ef3f0734b8dcfcc509716eabe722c6054 Acounting into mysql diff -r 9774768ef3f0 -r ae3669fef3b0 iro/iro.py --- 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) diff -r 9774768ef3f0 -r ae3669fef3b0 iro/job.py --- 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: diff -r 9774768ef3f0 -r ae3669fef3b0 iro/joblist.py --- 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 diff -r 9774768ef3f0 -r ae3669fef3b0 iro/worker.py --- 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))