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