示例#1
0
 def remind(self):
     for lease in ResourceLease.objects.filter(expires <= datetime.date.today()):
         #TODO : set reminder count and adjust expires
         lease.reminder += 1;
         lease.expires = self.updateExpires(lease)
         lease.save()
         users = []
         for key in ResourceSubscribers.filter(resource_id == lease.resource.id):
             if key.subscriber.email not in users:
                users.append(key.subscriber.email)
         for user in users:
             mailer.mail(owner=user, resource=lease.resource)
         if lease.resource.callbackurl:
             import httplib2
             import urllib
             import base64
             import json
             try:
                url = lease.resource.callbackurl
                auth = lease.resource.callbackauth
                logger.info('url='+url)
                params = urllib.urlencode({'id':lease.resource.id, 'msg': 'lease expiration reminder',
                      'subscribers': users, 'count':lease.reminder, 'next':repr(lease.expires)})
                response, content = http.request(url, 'POST',
                    headers={"Content-Type": "application/json", 'Authorization' : 'Basic ' + auth})
                if response.status != 200:
                    logger.error('status='+str(response.status))
                logger.info(repr(content))
                msg = 'callback invoked'
                logger.info(msg)
             except:
                pass 
     pass