def clear_queue(self, queue_name: str) -> None: """Remove all messages in a queue. Args: queue_name: The queue name """ self.logger.info("Clearing Queue: %s", queue_name) queue_dictionary = self._client.get_queue(self._virtual_host, queue_name) number_of_messages = queue_dictionary.get("messages_ready", 0) while number_of_messages > 0: self.logger.debug("Getting the Next Message") messages = self._client.get_messages(self._virtual_host, queue_name, count=1, requeue=False) if messages and len(messages) > 0: message = messages[0] try: request = SchemaParser.parse_request(message["payload"], from_string=True) beer_garden.requests.cancel_request(request.id) except Exception as ex: self.logger.exception(f"Error canceling message: {ex}") else: self.logger.debug( "Race condition: The while loop thought there were more messages " "to ingest but no more messages could be received.") break number_of_messages -= 1
def test_success(self, plugin, request_args): # Need to reset the real parser plugin.parser = SchemaParser() assert_request_equal( plugin._pre_process(json.dumps(request_args)), SchemaParser.parse_request(request_args), )
def _parse(self, message): """Parse a message using the standard SchemaParser Args: message: The raw (json) message body Returns: A Request model Raises: DiscardMessageException: The request failed to parse correctly """ try: return SchemaParser.parse_request(message, from_string=True) except Exception as ex: self.logger.exception( "Unable to parse message body: {0}. Exception: {1}".format( message, ex)) raise DiscardMessageException("Error parsing message body")