server/hookhelper.py
branchtls-sprint
changeset 1802 d628defebc17
parent 1132 96752791c2b6
child 1977 606923dff11b
equal deleted inserted replaced
1801:672acc730ce5 1802:d628defebc17
    40 
    40 
    41 def get_user_sessions(repo, ueid):
    41 def get_user_sessions(repo, ueid):
    42     for session in repo._sessions.values():
    42     for session in repo._sessions.values():
    43         if ueid == session.user.eid:
    43         if ueid == session.user.eid:
    44             yield session
    44             yield session
    45         
    45 
    46 
    46 
    47 # mail related ################################################################
    47 # mail related ################################################################
    48 
    48 
    49 SMTP_LOCK = Lock()
    49 SMTP_LOCK = Lock()
    50 
    50 
    56             assert recipients
    56             assert recipients
    57             self.to_send = [(msg, recipients)]
    57             self.to_send = [(msg, recipients)]
    58         else:
    58         else:
    59             assert recipients is None
    59             assert recipients is None
    60             self.to_send = []
    60             self.to_send = []
    61         super(SendMailOp, self).__init__(session, **kwargs) 
    61         super(SendMailOp, self).__init__(session, **kwargs)
    62        
    62 
    63     def register(self, session):
    63     def register(self, session):
    64         previous = super(SendMailOp, self).register(session)
    64         previous = super(SendMailOp, self).register(session)
    65         if previous:
    65         if previous:
    66             self.to_send = previous.to_send + self.to_send
    66             self.to_send = previous.to_send + self.to_send
    67         
    67 
    68     def commit_event(self):
    68     def commit_event(self):
    69         self.repo.threaded_task(self.sendmails)
    69         self.repo.threaded_task(self.sendmails)
    70 
    70 
    71     def sendmails(self):        
    71     def sendmails(self):
    72         server, port = self.config['smtp-host'], self.config['smtp-port']
    72         server, port = self.config['smtp-host'], self.config['smtp-port']
    73         SMTP_LOCK.acquire()
    73         SMTP_LOCK.acquire()
    74         try:
    74         try:
    75             try:
    75             try:
    76                 smtp = SMTP(server, port)
    76                 smtp = SMTP(server, port)
    87                     self.exception("error sending mail to %s (%s)",
    87                     self.exception("error sending mail to %s (%s)",
    88                                    recipients, ex)
    88                                    recipients, ex)
    89             smtp.close()
    89             smtp.close()
    90         finally:
    90         finally:
    91             SMTP_LOCK.release()
    91             SMTP_LOCK.release()
    92             
    92 
    93 
    93 
    94 # state related ###############################################################
    94 # state related ###############################################################
    95 
    95 
    96 def previous_state(session, eid):
    96 def previous_state(session, eid):
    97     """return the state of the entity with the given eid,
    97     """return the state of the entity with the given eid,