moving old xmlrpc interface (iro.user) -> iro.view.xmlrpc_old devel
authorSandro Knauß <knauss@netzguerilla.net>
Sat, 24 Mar 2012 00:02:42 +0100
branchdevel
changeset 248 830204e316ca
parent 239 4cf5e664c847
child 249 4007b5072c4a
moving old xmlrpc interface (iro.user) -> iro.view.xmlrpc_old
iro/user.py
iro/view/xmlrpc_old.py
--- a/iro/user.py	Wed Mar 21 19:41:55 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,194 +0,0 @@
-# -*- coding: utf-8 -*-
-#Copyright (C) 2009  Sandro Knauß <bugs@sandroknauss.de>
-
-#This program is free software; you can redistribute it and/or modify it under the terms
-#of the GNU General Public License as published by the Free Software Foundation;
-#either version 3 of the License, or any later version.
-#This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
-#without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-#See the GNU General Public License for more details.
-
-#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 logging
-logger=logging.getLogger("iro.user")
-class NotSupportedFeature (Exception):
-    def __init__(self,name):
-        self.name=name
-    
-    def __str__(self):
-        return ("This is not a supported feature:", self.name)
-
-class NoID(Exception):
-    def __init__(self,i):
-        self.i=i
-    
-    def __str__(self):
-        return ("No Job with id:", self.i)
-
-
-class User: 
-    '''class for a xmlrpc user
-    '''
-    def __init__(self, name, jobqueue):
-        self.jobqueue=jobqueue
-        self.jobs={}
-        self.name=name
-        self.features=["mail", "sms", "fax", ]
-
-    def status(self,id=None,detailed=False):
-        '''Gibt den aktuellen Status eines Auftrages zurück.
-
-        Keywords:
-        id[hash]: Eine Auftragsnummer
-        detailed[boolean]: Details ausgeben
-
-        Return:
-        jobs[list]: Eine Liste der Aufträge.
-        job.name[string]: Angebener Name
-        job.status[string]: Status des Auftrages
-
-
-        '''
-        try:
-            jobs={}
-            if id==None:
-                jobs=self.jobs
-            else:
-                try:
-                    jobs={id:self.jobs[id]}
-                except:
-                    logger.error("No Job ID %s",id)
-                    #raise NoID(id)
-            ret={}
-            if not jobs:
-                return {}
-
-            for key in jobs:
-                job=jobs[key]
-                ret[key]={"name":job.getName(),"status":job.getStatus(detailed)}
-            
-            return ret
-        except:
-            logger.exception("Fehler in iro.user.status")
-            return {}
-
-    def stop(self,id):
-        '''Stoppt den angegeben Auftrag.
-
-        Keywords:
-        id[hash]: Eine Auftragsnummer
-
-        Return:
-
-        '''
-        try:
-            job=self.jobs[id]
-            job.stop()
-        except:
-            raise NoID(id)
-        job.stop()
-
-    
-    def startSMS(self, message, recipients, provider="default"):
-        '''Versendet eine SMS.
-
-        Keywords:
-        message[string]: Nachricht
-        recipients[list]: eine Liste von Emfänger-Nummern (gemäß ITU-T E.123)
-        provider[string]: Provider über den geschickt werden soll
-
-        Return:
-        id[hash]: Die ID des Auftrages
-
-        '''
-        if not "sms" in self.features:
-            raise NotSupportedFeature("sms")
-        id = self.jobqueue.newSMS(message,recipients,provider,user=self.name)
-        self.jobs[id]=self.jobqueue[id]
-        return id
-    
-    
-    def startFAX(self, subject, fax, recipients, provider="default"):
-        '''Versendet ein FAX.
-
-        Keywords:
-        subject[string]: der Betreff
-        fax[string]: das pdf base64 kodiert
-        recipients[list]: eine Liste von Emfänger-Nummern (gemäß ITU-T E.123)
-        provider[string]: Provider über den geschickt werden soll
-
-        Return:
-        id[hash]: Die ID des Auftrages
-
-        '''
-        logger.debug("startFAX(%s,%s,%s,%s)"%(subject, fax, recipients, provider))
-        if not "fax" in self.features:
-            raise NotSupportedFeature("fax")
-        
-        if type(fax) != list:
-            fax=[fax]
-        f=[i.data for i in fax]
-
-        id = self.jobqueue.newFAX(subject, f,recipients,provider,user=self.name)
-        self.jobs[id]=self.jobqueue[id]
-        return id
-
-    def startMail(self, subject,  body, recipients, frm, provider="default"):
-        '''Versendet eine Email.
-
-        Keywords:
-        subject[string]: der Betreff
-        body[string]: der Email Body
-        recipients[list]: eine Liste von Emailadressen
-        frm[string]: Die Absender Emailadresse
-        provider[string]: Provider über den geschickt werden soll
-
-        Return:
-        id[hash]: Die ID des Auftrages
-
-        '''
-        if not "mail" in self.features:
-            raise NotSupportedFeature("mail")
-        logger.debug("startMail(%s,%s,%s,%s,%s)"%(subject, body, recipients, frm, provider))
-        id = self.jobqueue.newMail(subject, body, recipients, frm,  provider,user=self.name)
-        self.jobs[id]=self.jobqueue[id]
-        return id    
-       
-    def getProvider(self, typ):
-        '''Gibt eine Liste aller verfügbaren Provider zurück.
-
-        Keywords:
-        typ[string]: Der Typ zu dem die Providerloste ausgeben werden soll
-                     Einer der Liste ["sms","fax","mail"]
-
-        Return:
-        providerlist[list]: Eine Liste aller möglichen Provider
-
-        '''
-        if not typ in self.features:
-            raise NotSupportedFeature(typ)
-       
-        return self.jobqueue.providerlist.getProviderlist(typ)
-        
-    def getDefaultProvider(self, typ):
-        '''Gibt den Standardprovider zurück.
- 
-        Keywords:
-        typ[string]: Der Typ zu dem die Providerloste ausgeben werden soll
-                     Einer der Liste ["sms","fax","mail"]
-
-        Return:
-        provider[string]: Der Standardprovider für den angeben Typ
-
-
-        '''
-        if not typ in self.features:
-            raise NotSupportedFeature(typ)
-       
-        return self.jobqueue.providerlist.getDefault(typ)["name"]
-        
-class Admin(User):
-    def __init__(self, name, jobqueue):
-        User.__init__(self, name, jobqueue)
-        self.jobs=jobqueue.jobs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/iro/view/xmlrpc_old.py	Sat Mar 24 00:02:42 2012 +0100
@@ -0,0 +1,194 @@
+# -*- coding: utf-8 -*-
+#Copyright (C) 2009  Sandro Knauß <bugs@sandroknauss.de>
+
+#This program is free software; you can redistribute it and/or modify it under the terms
+#of the GNU General Public License as published by the Free Software Foundation;
+#either version 3 of the License, or any later version.
+#This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+#without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#See the GNU General Public License for more details.
+
+#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 logging
+logger=logging.getLogger("iro.user")
+class NotSupportedFeature (Exception):
+    def __init__(self,name):
+        self.name=name
+    
+    def __str__(self):
+        return ("This is not a supported feature:", self.name)
+
+class NoID(Exception):
+    def __init__(self,i):
+        self.i=i
+    
+    def __str__(self):
+        return ("No Job with id:", self.i)
+
+
+class User: 
+    '''class for a xmlrpc user
+    '''
+    def __init__(self, name, jobqueue):
+        self.jobqueue=jobqueue
+        self.jobs={}
+        self.name=name
+        self.features=["mail", "sms", "fax", ]
+
+    def status(self,id=None,detailed=False):
+        '''Gibt den aktuellen Status eines Auftrages zurück.
+
+        Keywords:
+        id[hash]: Eine Auftragsnummer
+        detailed[boolean]: Details ausgeben
+
+        Return:
+        jobs[list]: Eine Liste der Aufträge.
+        job.name[string]: Angebener Name
+        job.status[string]: Status des Auftrages
+
+
+        '''
+        try:
+            jobs={}
+            if id==None:
+                jobs=self.jobs
+            else:
+                try:
+                    jobs={id:self.jobs[id]}
+                except:
+                    logger.error("No Job ID %s",id)
+                    #raise NoID(id)
+            ret={}
+            if not jobs:
+                return {}
+
+            for key in jobs:
+                job=jobs[key]
+                ret[key]={"name":job.getName(),"status":job.getStatus(detailed)}
+            
+            return ret
+        except:
+            logger.exception("Fehler in iro.user.status")
+            return {}
+
+    def stop(self,id):
+        '''Stoppt den angegeben Auftrag.
+
+        Keywords:
+        id[hash]: Eine Auftragsnummer
+
+        Return:
+
+        '''
+        try:
+            job=self.jobs[id]
+            job.stop()
+        except:
+            raise NoID(id)
+        job.stop()
+
+    
+    def startSMS(self, message, recipients, provider="default"):
+        '''Versendet eine SMS.
+
+        Keywords:
+        message[string]: Nachricht
+        recipients[list]: eine Liste von Emfänger-Nummern (gemäß ITU-T E.123)
+        provider[string]: Provider über den geschickt werden soll
+
+        Return:
+        id[hash]: Die ID des Auftrages
+
+        '''
+        if not "sms" in self.features:
+            raise NotSupportedFeature("sms")
+        id = self.jobqueue.newSMS(message,recipients,provider,user=self.name)
+        self.jobs[id]=self.jobqueue[id]
+        return id
+    
+    
+    def startFAX(self, subject, fax, recipients, provider="default"):
+        '''Versendet ein FAX.
+
+        Keywords:
+        subject[string]: der Betreff
+        fax[string]: das pdf base64 kodiert
+        recipients[list]: eine Liste von Emfänger-Nummern (gemäß ITU-T E.123)
+        provider[string]: Provider über den geschickt werden soll
+
+        Return:
+        id[hash]: Die ID des Auftrages
+
+        '''
+        logger.debug("startFAX(%s,%s,%s,%s)"%(subject, fax, recipients, provider))
+        if not "fax" in self.features:
+            raise NotSupportedFeature("fax")
+        
+        if type(fax) != list:
+            fax=[fax]
+        f=[i.data for i in fax]
+
+        id = self.jobqueue.newFAX(subject, f,recipients,provider,user=self.name)
+        self.jobs[id]=self.jobqueue[id]
+        return id
+
+    def startMail(self, subject,  body, recipients, frm, provider="default"):
+        '''Versendet eine Email.
+
+        Keywords:
+        subject[string]: der Betreff
+        body[string]: der Email Body
+        recipients[list]: eine Liste von Emailadressen
+        frm[string]: Die Absender Emailadresse
+        provider[string]: Provider über den geschickt werden soll
+
+        Return:
+        id[hash]: Die ID des Auftrages
+
+        '''
+        if not "mail" in self.features:
+            raise NotSupportedFeature("mail")
+        logger.debug("startMail(%s,%s,%s,%s,%s)"%(subject, body, recipients, frm, provider))
+        id = self.jobqueue.newMail(subject, body, recipients, frm,  provider,user=self.name)
+        self.jobs[id]=self.jobqueue[id]
+        return id    
+       
+    def getProvider(self, typ):
+        '''Gibt eine Liste aller verfügbaren Provider zurück.
+
+        Keywords:
+        typ[string]: Der Typ zu dem die Providerloste ausgeben werden soll
+                     Einer der Liste ["sms","fax","mail"]
+
+        Return:
+        providerlist[list]: Eine Liste aller möglichen Provider
+
+        '''
+        if not typ in self.features:
+            raise NotSupportedFeature(typ)
+       
+        return self.jobqueue.providerlist.getProviderlist(typ)
+        
+    def getDefaultProvider(self, typ):
+        '''Gibt den Standardprovider zurück.
+ 
+        Keywords:
+        typ[string]: Der Typ zu dem die Providerloste ausgeben werden soll
+                     Einer der Liste ["sms","fax","mail"]
+
+        Return:
+        provider[string]: Der Standardprovider für den angeben Typ
+
+
+        '''
+        if not typ in self.features:
+            raise NotSupportedFeature(typ)
+       
+        return self.jobqueue.providerlist.getDefault(typ)["name"]
+        
+class Admin(User):
+    def __init__(self, name, jobqueue):
+        User.__init__(self, name, jobqueue)
+        self.jobs=jobqueue.jobs