logging started
authorSandro Knauß <knauss@netzguerilla.net>
Tue, 24 Nov 2009 02:02:41 +0100
changeset 20 0d7ffb9b2c7f
parent 19 fcf8489f1c2f
child 21 e6302069d772
child 24 2119564de7a9
logging started
iro/.eric4project/iro.e4q
iro/.eric4project/iro.e4t
iro/anbieter/sipgate.py
iro/anbieter/smstrade.py
iro/anbieter/smtp.py
iro/iro.py
iro/job.py
iro/worker.py
--- a/iro/.eric4project/iro.e4q	Mon Nov 23 00:18:04 2009 +0100
+++ b/iro/.eric4project/iro.e4q	Tue Nov 24 02:02:41 2009 +0100
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE UserProject SYSTEM "UserProject-4.0.dtd">
 <!-- eric4 user project file for project iro -->
-<!-- Saved: 2009-11-23, 00:15:34 -->
+<!-- Saved: 2009-11-24, 02:01:06 -->
 <!-- Copyright (C) 2009 Sandro Knauß, bugs@sandroknauss.de -->
 <UserProject version="4.0">
 </UserProject>
\ No newline at end of file
--- a/iro/.eric4project/iro.e4t	Mon Nov 23 00:18:04 2009 +0100
+++ b/iro/.eric4project/iro.e4t	Tue Nov 24 02:02:41 2009 +0100
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE Tasks SYSTEM "Tasks-4.2.dtd">
 <!-- eric4 tasks file for project iro -->
-<!-- Saved: 2009-11-23, 00:15:34 -->
+<!-- Saved: 2009-11-24, 02:01:07 -->
 <Tasks version="4.2">
 </Tasks>
\ No newline at end of file
--- a/iro/anbieter/sipgate.py	Mon Nov 23 00:18:04 2009 +0100
+++ b/iro/anbieter/sipgate.py	Tue Nov 24 02:02:41 2009 +0100
@@ -41,6 +41,8 @@
 
     def sendSMS(self,sms,recipients):
         """send SMS with $sms to $recipients"""
+        import logging
+        logging.debug('sipgate.sendSMS(%s,%s)'%(sms,  str(recipients)))
         args={
                 "TOS" : "text",
                 "Content" : sms.content
@@ -49,6 +51,8 @@
 
     def sendFAX(self,fax,recipients):
         """send the PDF file $fax  to $recipients"""
+        import logging
+        logging.debug('sipgate.sendFAX(%s,%s)'%(fax,  str(recipients)))
         pdf=open(fax.attachments[0],"rb")
         args={
                 "TOS" : "fax",
--- a/iro/anbieter/smstrade.py	Mon Nov 23 00:18:04 2009 +0100
+++ b/iro/anbieter/smstrade.py	Tue Nov 24 02:02:41 2009 +0100
@@ -88,6 +88,8 @@
 
     def sendSMS(self,sms,recipients):
         """send SMS with $sms to $recipients"""
+        import logging
+        logging.debug('smstrade.sendSMS(%s,%s)'%(sms,  str(recipients)))
         sended = []
         key = self.key
         route = unicode(self.route)
@@ -100,7 +102,7 @@
                 if tel in sended:                                             #only send message once per recipient
                     continue
                 sended.append(tel)	
-                to = unicode(tel.land+tel.number).strip()
+                to ='00'+tel.land+tel.number
                 if tel.land == '49':
                     route=unicode("basic")
                 else:
@@ -117,6 +119,8 @@
         """ This function is the main part of the request to the sms service.    
         The function has to return a unicode formated string that will represent the answer of the sms service
         to the request."""
+        import logging
+        logging.debug('smstrade._send(%s,%s,%s,%s,%s,%s)'%( key, route, to, message, from_,  timestamp))
         parameters= {"key": key,
                 "route": route,
                 "to": to,
@@ -133,6 +137,7 @@
 
         parameters["concat_sms"] = "1" if len(message) > 160 else "0"
         params = "&".join( ["%s=%s" % (urllib.quote(k),urllib.quote(v.encode("utf-8"))) for (k, v) in parameters.items()])
+        logging.debug('smstrade._send-parameters:%s\n\t->%s'%(str(parameters), str(params)) )
         headers = {"Content-type": "application/x-www-form-urlencoded",
             "Accept": "text/plain"}
         conn = httplib.HTTPConnection("%s:%i" % (self.gateway, self.gatewayPort))
@@ -142,7 +147,7 @@
             data = response.read()
         except socket.gaierror:
             raise InternetConnectionError("%s:%i" % (self.gateway, self.gatewayPort))
-        else:
+        finally:
             conn.close()
             
         try:
--- a/iro/anbieter/smtp.py	Mon Nov 23 00:18:04 2009 +0100
+++ b/iro/anbieter/smtp.py	Tue Nov 24 02:02:41 2009 +0100
@@ -16,7 +16,6 @@
 import smtplib
 import ConfigParser
 
-
 class SMTP():
     def __init__(self,config_filename=None,section="smtp"):
         self.config_filename=config_filename
@@ -66,6 +65,8 @@
         self.bStart=True
 
     def sendMail(self,mail,recipients):   
+        import logging
+        logging.debug('SMTP.sendMail(%s,%s)'%(mail,  str(recipients)))
         if not self.bStart:
             self.prepareSMTP()
 
@@ -73,6 +74,8 @@
         
         while len(recipients) > 0:
             tmp_recipients=recipients[:self.max_recipients]
+            mail.content['To']=", ".join(tmp_recipients)
+            logging.debug('self.smtp.sendmail(%s,%s,%s)'%(self.send_from,  str(tmp_recipients), mail.as_string()))
             self.smtp.sendmail(self.send_from,  tmp_recipients, mail.as_string())
             self.updateStatus( arranged=tmp_recipients)
             recipients = recipients[self.max_recipients:]
--- a/iro/iro.py	Mon Nov 23 00:18:04 2009 +0100
+++ b/iro/iro.py	Tue Nov 24 02:02:41 2009 +0100
@@ -11,8 +11,12 @@
 #You should have received a copy of the GNU General Public License
 #along with this program; if not, see <http://www.gnu.org/licenses/>.
 
+import multiprocessing, logging
+#logging anfangen
+logging.basicConfig(level=logging.DEBUG, format='%(levelname)s-[%(asctime)s %(processName)s (%(threadName)s)]%(message)s')
+
+
 # Server code
-
 from xmlrpc import SecureUserDBXMLRPCServer,UserDB
 
 from user import User, Admin
@@ -83,6 +87,8 @@
 def start(userlist):
     from multiprocessing import Queue
     from multiprocessing.managers import BaseManager
+    import multiprocessing, logging
+
     
     class MyManager(BaseManager):
         pass
@@ -136,10 +142,17 @@
                                       certificate=cert,privatekey=key)
     server.relam="xmlrpc"
     
-    print "Server started..."
-    server.serve_forever()
-    
-    worker.terminate()
+    logging.info('Server gestartet...')
+    try:
+        server.serve_forever()
+    except KeyboardInterrupt:
+        pass
+    except:
+        logging.exception('Äh, ein Fehler ist aufgetreten')
+    finally:    
+        logging.info('Server wird beendet...')
+        queue.close()
+        worker.terminate()
 
 if __name__ == '__main__':
     userlist=[{"name":"test","password":"test",  "class":User},
--- a/iro/job.py	Mon Nov 23 00:18:04 2009 +0100
+++ b/iro/job.py	Tue Nov 24 02:02:41 2009 +0100
@@ -22,6 +22,7 @@
         self.name=name
         self.status = "init"
         self.dStatus={"good":[], "failed":[]}
+        self.id=None
 
     def start(self):
         self.status = "started"
@@ -41,12 +42,16 @@
         return None
         
     def addGood(self, good):
+        import logging
+        logging.debug('Job(%d)-send to %s'%(self.id, str(good)))
         if type(good) == list:
             self.dStatus['good']=self.dStatus['good']+good
         else:
             self.dStatus['good'].append(good)
     
     def addFailed(self, failed):
+        import logging
+        logging.debug('Job(%d)-faild to send to %s'%(self.id, str(failed)))
         if type(failed) == list:
             self.dStatus['failed']=self.dStatus['failed']+failed
         else:
@@ -64,7 +69,8 @@
     def stop(self):
         pass
     
-    def start(self):
+    def start(self, id=None):
+        self.id=id
         Job.start(self)
         self.getProvider().setJob(self)
         self.message.sendto(self.getProvider(), self.recipients)
@@ -83,9 +89,6 @@
         
     def getProvider(self):
         return self.providerlist.getProvider("sms", self.provider)
-        
-    def start(self):
-        MessageJob.start(self)
 
 class FAXJob(MessageJob):
     def __init__(self,providerlist,provider, name, message,recipients):
--- a/iro/worker.py	Mon Nov 23 00:18:04 2009 +0100
+++ b/iro/worker.py	Tue Nov 24 02:02:41 2009 +0100
@@ -2,6 +2,7 @@
 # Worker code
 
 from multiprocessing import Process
+import logging
 import time
 
 class Worker(Process):
@@ -10,8 +11,16 @@
         self.queue=queue
         
     def run(self):
+        logging.info('Worker thread läuft nun...')
+        id=0
         while 1:
             job=self.queue.get()
             if job is None:
                 break # reached end of queue
-            job.start()
+            id+=1
+            logging.info('ein neuer Job(%d)' %(id))
+            try:
+                job.start(id)
+                logging.info('Job(%d) fertig ;)'%(id))
+            except:
+                logging.exception('Job(%d) fehlgeschlagen :('%(id))