iro/joblist.py
changeset 69 67ecea2d9b67
parent 67 d1912509f375
equal deleted inserted replaced
68:85fc1e5dea79 69:67ecea2d9b67
    10 
    10 
    11 #You should have received a copy of the GNU General Public License
    11 #You should have received a copy of the GNU General Public License
    12 #along with this program; if not, see <http://www.gnu.org/licenses/>.
    12 #along with this program; if not, see <http://www.gnu.org/licenses/>.
    13 
    13 
    14 from anbieter import content
    14 from anbieter import content
    15 import md5, os,  time
    15 import hashlib, os,  time
    16 import logging
    16 import logging
    17 logger=logging.getLogger("iro.joblist");
    17 logger=logging.getLogger("iro.joblist");
    18 
    18 
    19 class Joblist:
    19 class Joblist:
    20     '''
    20     '''
    29         
    29         
    30 
    30 
    31     def __getitem__(self,key):
    31     def __getitem__(self,key):
    32         return self.jobs[key]
    32         return self.jobs[key]
    33 
    33 
    34     def __registerJob__(self, job):
    34     def __registerJob__(self, job, user):
    35         id = self._createID()
    35         id = self._createID()
    36         if self.dbconn:
    36         if self.dbconn:
    37             job.setAcounting(self.manager.Acounting(id,self.dbconn))
    37             job.setAcounting(self.manager.Acounting(id,self.dbconn))
    38         job.setId(id)
    38         job.setId(id, user)
    39         self.jobs[id]=job
    39         self.jobs[id]=job
    40         self.queue.put(job)
    40         self.queue.put(job)
    41         return id
    41         return id
    42 
    42 
    43     def newSMS(self, message, recipients, provider="default"):
    43     def newSMS(self, message, recipients, provider="default", user=None):
    44         '''
    44         '''
    45         creates a new SMS
    45         creates a new SMS
    46         '''
    46         '''
    47         job=self.manager.SMSJob(self.providerlist, provider,message, content.SMS(message),recipients)
    47         job=self.manager.SMSJob(self.providerlist, provider,message, content.SMS(message),recipients)
    48         return self.__registerJob__(job)
    48         return self.__registerJob__(job,user)
    49 
    49 
    50     def newFAX(self,subject, fax,recipients,provider="default"):
    50     def newFAX(self,subject, fax,recipients,provider="default",user=None):
    51         '''
    51         '''
    52         creates a new Fax
    52         creates a new Fax
    53         '''
    53         '''
    54         job=self.manager.FaxJob(self.providerlist, provider,subject, content.FAX(subject,'' ,fax),recipients)
    54         job=self.manager.FaxJob(self.providerlist, provider,subject, content.FAX(subject,'' ,fax),recipients)
    55         return self.__registerJob__(job)
    55         return self.__registerJob__(job,user)
    56 
    56 
    57     def newMail(self, subject, body, recipients, frm, provider="default"):
    57     def newMail(self, subject, body, recipients, frm, provider="default",user=None):
    58         '''
    58         '''
    59         creates a new Mail
    59         creates a new Mail
    60         '''
    60         '''
    61         job=self.manager.MailJob(self.providerlist, provider,subject, content.Mail(subject, body, frm),recipients)
    61         job=self.manager.MailJob(self.providerlist, provider,subject, content.Mail(subject, body, frm),recipients)
    62         return self.__registerJob__(job) 
    62         return self.__registerJob__(job,user) 
    63 
    63 
    64     def _createID(self):
    64     def _createID(self):
    65         '''
    65         '''
    66         creats a random hash id
    66         creats a random hash id
    67         '''
    67         '''
    68         while True:
    68         while True:
    69             m = md5.new()
    69             m = hashlib.sha1()
    70             m.update(str(time.time()))
    70             m.update(str(time.time()))
    71             m.update(os.urandom(10))
    71             m.update(os.urandom(10))
    72             if not self.jobs.has_key(m.hexdigest):
    72             if not self.jobs.has_key(m.hexdigest):
    73                 if not self.dbconn:                    
    73                 if not self.dbconn:                    
    74                     self.jobs[m.hexdigest()]=None
    74                     self.jobs[m.hexdigest()]=None