def autorelease(self, uuid): "release a message without logging in" releasereq = get_releasereq(uuid) if not releasereq: abort(404) released = False msgid = releasereq.messageid to_address = _('Unknown') errormsg = _('The message has already been released,' ' you can only use the release link once') if releasereq.released is False: try: msg = Session.query(Message)\ .filter(Message.id == releasereq.messageid)\ .one() except (NoResultFound, MultipleResultsFound): abort(404) msgid = msg.messageid to_address = msg.to_address try: if msg.isdangerous and c.user and c.user.is_peleb: raise ValueError localtmz = config.get('baruwa.timezone', 'Africa/Johannesburg') cdte = convert_date(msg.timestamp, localtmz).strftime('%Y%m%d') task = release_message.apply_async( args=[msg.messageid, cdte, msg.from_address, msg.to_address.split(','), msg.msgfiles], routing_key=system_hostname() if asbool(config.get('ms.quarantine.shared', 'false')) else msg.hostname.strip()) task.wait(30) if task.status == 'SUCCESS': result = task.result if result['success']: update_autorelease.apply_async(args=[uuid]) errormsg = result['error'] released = result['success'] except (ValueError, socket.error, TimeoutError, QueueNotFound): released = False errormsg = _('Processing of message failed') log.info(errormsg) result = dict(success=False, error=errormsg) c.messageid = msgid c.errormsg = errormsg c.released = released c.releaseaddress = to_address return self.render('/messages/autorelease.html')
def autorelease(self, uuid): "release a message without logging in" releasereq = get_releasereq(uuid) if not releasereq: abort(404) released = False msgid = releasereq.messageid to_address = _('Unknown') errormsg = _('The message has already been released,' ' you can only use the release link once') if releasereq.released is False: try: msg = Session.query(Message)\ .filter(Message.id == releasereq.messageid)\ .one() except (NoResultFound, MultipleResultsFound): abort(404) msgid = msg.messageid to_address = msg.to_address try: if msg.isdangerous and c.user and c.user.is_peleb: raise ValueError localtmz = config.get('baruwa.timezone', 'Africa/Johannesburg') cdte = convert_date(msg.timestamp, localtmz).strftime('%Y%m%d') task = release_message.apply_async( args=[ msg.messageid, cdte, msg.from_address, msg.to_address.split(','), msg.msgfiles ], routing_key=system_hostname() if asbool( config.get('ms.quarantine.shared', 'false')) else msg.hostname.strip()) task.wait(30) if task.status == 'SUCCESS': result = task.result if result['success']: update_autorelease.apply_async(args=[uuid]) errormsg = result['error'] released = result['success'] except (ValueError, socket.error, TimeoutError, QueueNotFound): released = False errormsg = _('Processing of message failed') log.info(errormsg) result = dict(success=False, error=errormsg) c.messageid = msgid c.errormsg = errormsg c.released = released c.releaseaddress = to_address return self.render('/messages/autorelease.html')
def autorelease(self, uuid): "release a message without logging in" releasereq = self._get_releasereq(uuid) if not releasereq: abort(404) released = False msgid = releasereq.messageid to_address = _('Unknown') errormsg = _('The message has already been released,' ' you can only use the release link once') if releasereq.released == False: try: msg = Session.query(Message)\ .filter(Message.id == releasereq.messageid)\ .one() except (NoResultFound, MultipleResultsFound): abort(404) msgid = msg.messageid to_address = msg.to_address try: localtmz = config.get('baruwa.timezone', 'Africa/Johannesburg') task = release_message.apply_async( args=[msg.messageid, convert_date(msg.timestamp, localtmz).strftime('%Y%m%d'), msg.from_address, msg.to_address.split(',')], queue=msg.hostname) task.wait(30) if task.status == 'SUCCESS': result = task.result if result['success']: update_autorelease.apply_async(args=[uuid]) errormsg = result['error'] released = result['success'] except (ValueError, socket.error, TimeoutError, QueueNotFound): released = False errormsg = _('Processing of message failed') result = dict(success=False, error=errormsg) c.messageid = msgid c.errormsg = errormsg c.released = released c.releaseaddress = to_address return render('/messages/autorelease.html')
def autorelease(self, uuid): "release a message without logging in" releasereq = self._get_releasereq(uuid) if not releasereq: abort(404) released = False msgid = releasereq.messageid to_address = _('Unknown') errormsg = _('The message has already been released,' ' you can only use the release link once') if releasereq.released == False: try: msg = Session.query(Message)\ .filter(Message.id == releasereq.messageid)\ .one() except (NoResultFound, MultipleResultsFound): abort(404) msgid = msg.messageid to_address = msg.to_address try: task = release_message.apply_async( args=[msg.messageid, str(msg.date), msg.from_address, msg.to_address.split(',')], queue=msg.hostname) task.wait(30) if task.status == 'SUCCESS': result = task.result if result['success']: update_autorelease.apply_async(args=[uuid]) errormsg = result['error'] released = result['success'] except (ValueError, socket.error, TimeoutError, QueueNotFound): released = False errormsg = _('Processing of message failed') result = dict(success=False, error=errormsg) c.messageid = msgid c.errormsg = errormsg c.released = released c.releaseaddress = to_address return render('/messages/autorelease.html')