def try_create_queue(queue_name: str): try: create_queue(queue_name, priorities=10, server_url=SERVER_URL) except QMF2ObjectExists: pass # Queue already exists except QMF2Exception: print("QMF2 error during queue creation") raise
def test_create_binding(self): create_exchange(self.exchange_address, exchange_type=ExchangeType.topic, durable=False) create_queue(self.queue_address, durable=False, auto_delete=True) create_binding(self.exchange_address, self.queue_address, binding_name='one_ring')
def route_config(args): try: route_mapping = yaml.safe_load(args.file) except yaml.YAMLError: print("Invalid YAML config mapping\n") args.parser.print_help() exit(EX_DATAERR) for exchange in route_mapping: valid_bindings = set() if args.force_creation: try: create_exchange(exchange, ExchangeType.headers, server_url=args.broker_url) except QMF2ObjectExists: print("Exchange {} already exists, moving on...".format( exchange)) for queue in route_mapping[exchange]: if args.force_creation: try: create_queue(queue, server_url=args.broker_url) except QMF2ObjectExists: print( "Queue {} already exists, moving on...".format(queue)) for binding in route_mapping[exchange][queue]: binding_name = get_headers_binding_name( exchange, queue, binding) valid_bindings.add((exchange, queue, binding_name)) # A binding with an existing name will be updated. # Since we generate the name from the header match properties, # this is equivalent to ignoring. try: create_binding(exchange, queue, headers_match=binding, binding_name=binding_name, server_url=args.broker_url) except ValueError as e: print(str(e) + '\n') args.parser.print_help() exit(EX_USAGE) except ObjectNotFound as e: print(str(e) + '\n') args.parser.print_help() exit(EX_USAGE) binding_keys = get_binding_keys(exchange, server_url=args.broker_url) # Delete old bindings for binding_key in binding_keys - valid_bindings: delete_binding(binding_key[0], binding_key[1], binding_key[2], server_url=args.broker_url)
def test_create_headers_binding(self): create_exchange(self.exchange_address, exchange_type=ExchangeType.headers, durable=False) create_queue(self.queue_address, durable=False, auto_delete=True) create_binding(self.exchange_address, self.queue_address, headers_match={ 'type': 'food', 'timing': 'early' }, binding_name='breakfast')
def test_create_binding_match_on_wrong_exchange(self): create_exchange(self.exchange_address, exchange_type=ExchangeType.direct, durable=False) create_queue(self.queue_address, durable=False, auto_delete=True) with self.assertRaises(RuntimeError): create_binding(self.exchange_address, self.queue_address, headers_match={ 'type': 'food', 'timing': 'late' }, binding_name='dinner')
def setUp(self): configure(CONFIG) self.received_messages = [] queue_address = uuid4().hex create_queue(queue_address, durable=False, auto_delete=True, priorities=5, extra_properties={'qpid.auto_delete_timeout': 10}) self.sender = Sender(queue_address) def handle_received_message(message: Message): self.received_messages.append(message) return True self.receiver = Receiver(handle_received_message, queue_address)
def queue_create(args): try: create_queue(args.queue, args.durable, priorities=args.priorities, server_url=args.broker_url) except ValueError as e: print(str(e) + '\n') args.parser.print_help() exit(EX_USAGE) except QMF2ObjectExists: print(f"Queue '{args.queue}' already exist") exit(EX_USAGE) except QMF2NotFound: print('Object not found, probably not enough permissions to create ' 'queue') exit(EX_USAGE) except TimeoutReached: print('Timeout, server is not available or wrong login/password') exit(EX_USAGE)
def test_multi_receive(self): expected_messages = [ create_message(b'FOOBAR1'), create_message(b'FOOBAR2'), create_message(b'FOOBAR3') ] self.send_messages(expected_messages[0:-1]) second_queue_address = uuid4().hex create_queue(second_queue_address, durable=False, auto_delete=True, extra_properties={'qpid.auto_delete_timeout': 10}) self.receiver.add_address(second_queue_address) second_sender = Sender(second_queue_address) second_sender.queue(expected_messages[-1:]) second_sender.send() self.receive_messages() self.assertEqual(len(self.received_messages), len(expected_messages))
def test_create_binding_no_exchange(self): create_queue(self.queue_address, durable=False, auto_delete=True) with self.assertRaises(ObjectNotFound): create_binding(self.exchange_address, self.queue_address)
def test_create_queue_already_exists(self): create_queue(self.queue_address, durable=False, auto_delete=True) with self.assertRaises(QMF2ObjectExists): create_queue(self.queue_address, durable=False, auto_delete=True)
def test_create_queue(self): create_queue(self.queue_address, durable=False, auto_delete=True)