# HG changeset patch # User Sandro Knauß # Date 1290039928 -3600 # Node ID 04dfd43dfecc3833d71bd4218b93bfc4627f8391 # Parent 5ca3aa8d75e169a63a5dfc050bc270a4ef931072 nun wird hashlib benutzt anstatt md5 tests laufen sauber wieder duch (Meldung das Worker läuft wieder hinzugefügt) diff -r 5ca3aa8d75e1 -r 04dfd43dfecc iro/joblist.py --- a/iro/joblist.py Thu Nov 04 22:47:00 2010 +0100 +++ b/iro/joblist.py Thu Nov 18 01:25:28 2010 +0100 @@ -12,7 +12,7 @@ #along with this program; if not, see . from anbieter import content -import md5, os, time +import hashlib, os, time import logging logger=logging.getLogger("iro.joblist"); @@ -66,7 +66,7 @@ creats a random hash id ''' while True: - m = md5.new() + m = hashlib.sha1() m.update(str(time.time())) m.update(os.urandom(10)) if not self.jobs.has_key(m.hexdigest): diff -r 5ca3aa8d75e1 -r 04dfd43dfecc iro/tests/stopableServer.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/iro/tests/stopableServer.py Thu Nov 18 01:25:28 2010 +0100 @@ -0,0 +1,108 @@ +import ConfigParser + +import threading + +from multiprocessing import Queue +from multiprocessing.managers import BaseManager + +from iro import xmlrpc,anbieter +from iro.user import User, Admin +from iro.iro import MySMTP,MySmstrade,MyUserDB +from iro.job import SMSJob, FAXJob, MailJob +from iro.joblist import Joblist +from iro.providerlist import Providerlist + +class StoppableXMLRPCServer(xmlrpc.SecureUserDBXMLRPCServer, threading.Thread): + running=False + def __init__(self, *args, **kwargs): + xmlrpc.SecureUserDBXMLRPCServer.__init__(self, *args, **kwargs) + threading.Thread.__init__(self) + self.timeout=.5 + + def start(self): + self.running=True + threading.Thread.start(self) + + + def run(self): + # *serve_forever* muss in einem eigenen Thread laufen, damit man es + # unterbrochen werden kann! + while (self.running): + try: + self.handle_request() + except : + break + + def stop(self): + if (self.running): + self.running=False + self.server_close() + self.join() + + def __del__(self): + self.stop() + + def __enter__(self): + self.start() + return self + + def __exit__(self,type,value,traceback): + self.stop() + + + +def init_server(): + userlist=[{"name":"test","password":"test", "class":User}, + {"name":"test2","password":"test2", "class": User}, + {"name":"admin","password":"admin", "class": Admin}] + + + + class MyManager(BaseManager): + pass + + MyManager.register('SMSJob', SMSJob) + MyManager.register('FAXob', FAXJob) + MyManager.register('MailJob',MailJob) + MyManager.register('Providerlist',Providerlist) + manager = MyManager() + manager.start() + + + #anbieter erzeugen und konfigurieren + sip=anbieter.sipgate() + sip.read_basic_config("iro.conf") + + localhost=MySMTP() + localhost.read_basic_config("iro.conf") + + smstrade=MySmstrade() + smstrade.read_basic_config("iro.conf") + + #Benutzerdatenbank erstellen + queue = Queue() + provider=Providerlist() + provider.add("sipgate", sip, ["sms", "fax", ]) + provider.add("smstrade", smstrade, ["sms", ]) + provider.add("geonet", None, ["sms", "fax", ]) + provider.add("fax.de", None, ["sms", "fax", ]) + provider.add("localhost", localhost, ["mail", ]) + provider.setDefault("sms","smstrade") + provider.setDefault("fax","sipgate") + provider.setDefault("mail","localhost") + jobqueue=Joblist(manager, queue, provider) + userdb=MyUserDB(userlist,jobqueue) + + + #Server starten + cp = ConfigParser.ConfigParser() + cp.read(["iro.conf"]) + cert=cp.get('server', 'cert') + key=cp.get('server', 'key') + serv = StoppableXMLRPCServer(addr=("localhost", 8000), + userdb=userdb, + certificate=cert,privatekey=key, + logRequests=False) + serv.relam="xmlrpc" + return serv + diff -r 5ca3aa8d75e1 -r 04dfd43dfecc iro/tests/testXMLRPCServer.py --- a/iro/tests/testXMLRPCServer.py Thu Nov 04 22:47:00 2010 +0100 +++ b/iro/tests/testXMLRPCServer.py Thu Nov 18 01:25:28 2010 +0100 @@ -1,111 +1,10 @@ # -*- coding: utf-8 -*- -import unittest, ConfigParser - -import threading, xmlrpclib -from multiprocessing import Queue -from multiprocessing.managers import BaseManager - -from iro import xmlrpc,anbieter -from iro.iro import MySMTP,MySmstrade,MyUserDB -from iro.job import SMSJob, FAXJob, MailJob -from iro.joblist import Joblist -from iro.providerlist import Providerlist -from iro.user import User, Admin - - -class StoppableXMLRPCServer(xmlrpc.SecureUserDBXMLRPCServer, threading.Thread): - running=False - def __init__(self, *args, **kwargs): - xmlrpc.SecureUserDBXMLRPCServer.__init__(self, *args, **kwargs) - threading.Thread.__init__(self) - self.timeout=.5 - - def start(self): - self.running=True - threading.Thread.start(self) - - - def run(self): - # *serve_forever* muss in einem eigenen Thread laufen, damit man es - # unterbrochen werden kann! - while (self.running): - self.handle_request() - - def stop(self): - if (self.running): - self.running=False - self.server_close() - self.join() - - def __del__(self): - self.stop() - - def __enter__(self): - self.start() - return self - - def __exit__(self,type,value,traceback): - self.stop() - - +import unittest -def init_server(): - userlist=[{"name":"test","password":"test", "class":User}, - {"name":"test2","password":"test2", "class": User}, - {"name":"admin","password":"admin", "class": Admin}] - - - - class MyManager(BaseManager): - pass - - MyManager.register('SMSJob', SMSJob) - MyManager.register('FAXob', FAXJob) - MyManager.register('MailJob',MailJob) - MyManager.register('Providerlist',Providerlist) - manager = MyManager() - manager.start() - - - #anbieter erzeugen und konfigurieren - sip=anbieter.sipgate() - sip.read_basic_config("iro.conf") - - localhost=MySMTP() - localhost.read_basic_config("iro.conf") - - smstrade=MySmstrade() - smstrade.read_basic_config("iro.conf") +import xmlrpclib +from stopableServer import init_server - #Benutzerdatenbank erstellen - queue = Queue() - provider=Providerlist() - provider.add("sipgate", sip, ["sms", "fax", ]) - provider.add("smstrade", smstrade, ["sms", ]) - provider.add("geonet", None, ["sms", "fax", ]) - provider.add("fax.de", None, ["sms", "fax", ]) - provider.add("localhost", localhost, ["mail", ]) - provider.setDefault("sms","smstrade") - provider.setDefault("fax","sipgate") - provider.setDefault("mail","localhost") - jobqueue=Joblist(manager, queue, provider) - userdb=MyUserDB(userlist,jobqueue) - - - #Server starten - cp = ConfigParser.ConfigParser() - cp.read(["iro.conf"]) - cert=cp.get('server', 'cert') - key=cp.get('server', 'key') - serv = StoppableXMLRPCServer(addr=("localhost", 8000), - userdb=userdb, - certificate=cert,privatekey=key, - logRequests=False) - serv.relam="xmlrpc" - return serv - - class TestServer(unittest.TestCase): def setUp(self): diff -r 5ca3aa8d75e1 -r 04dfd43dfecc iro/worker.py --- a/iro/worker.py Thu Nov 04 22:47:00 2010 +0100 +++ b/iro/worker.py Thu Nov 18 01:25:28 2010 +0100 @@ -11,6 +11,7 @@ self.queue=queue def run(self): + logger.info('Workerprocess läuft nun...') indifier=0 while 1: job=self.queue.get() diff -r 5ca3aa8d75e1 -r 04dfd43dfecc iro/xmlrpc/SecureUserdbXMLRPCServer.py --- a/iro/xmlrpc/SecureUserdbXMLRPCServer.py Thu Nov 04 22:47:00 2010 +0100 +++ b/iro/xmlrpc/SecureUserdbXMLRPCServer.py Thu Nov 18 01:25:28 2010 +0100 @@ -1,6 +1,6 @@ from SecureAuthentificateXMLRPCServer import SecureAuthentificateXMLRPCRequestHandler from SecureXMLRPCServer import SecureXMLRPCServer -import os, md5 +import os, hashlib class UserDB: ''' @@ -20,7 +20,7 @@ returns a hash out of username and the password and self.salt user is a directory with two keys: username and password """ - m=md5.new() + m=hashlib.sha512() m.update(user["name"]) m.update(self.salt) m.update(user["password"])