diff --git a/ssm/ssm2.py b/ssm/ssm2.py index 72099ad8..27f131af 100644 --- a/ssm/ssm2.py +++ b/ssm/ssm2.py @@ -316,9 +316,11 @@ def _handle_msg(self, text): return message, signer, None + def _save_msg_to_queue(self, body, empaid): """Extract message contents and add to the accept or reject queue.""" extracted_msg, signer, err_msg = self._handle_msg(body) + try: # If the message is empty or the error message is not empty # then reject the message. @@ -343,10 +345,27 @@ def _save_msg_to_queue(self, body, empaid): name = self._inq.add({'body': extracted_msg, 'signer': signer, 'empaid': empaid}) + log.info("Message saved to incoming queue as %s", name) except (IOError, OSError) as error: log.error('Failed to read or write file: %s', error) + for i in range(3): + try: + if extracted_msg is None or err_msg is not None: + name = self._rejectq.add({'body': body, + 'signer': signer, + 'empaid': empaid, + 'error': err_msg}) + log.info("Message saved to reject queue as %s", name) + else: # message verified ok + name = self._inq.add({'body': extracted_msg, + 'signer': signer, + 'empaid': empaid}) + log.info("Message saved to incoming queue as %s", name) + except: + continue + break def _send_msg(self, message, msgid): """Send one message using stomppy.