7.0.0b8 (2020-11-05)
New Features
- Added support for
timeout
parameter on the following operations:ServiceBusSender
:send_messages
,schedule_messages
andcancel_scheduled_messages
ServiceBusReceiver
:receive_deferred_messages
,peek_messages
andrenew_message_lock
ServiceBusSession
:get_state
,set_state
andrenew_lock
azure.servicebus.exceptions.ServiceBusError
now inherits fromazure.core.exceptions.AzureError
.- Added a
parse_connection_string
method which parses a connection string into a properties bag containing its component parts - Add support for
auto_lock_renewer
parameter onget_queue_receiver
andget_subscription_receiver
calls to allow auto-registration of messages and sessions for auto-renewal.
Breaking Changes
- Renamed
AutoLockRenew
toAutoLockRenewer
. - Removed class
ServiceBusSessionReceiver
which is now unified within classServiceBusReceiver
.- Removed methods
ServiceBusClient.get_queue_session_receiver
andServiceBusClient.get_subscription_session_receiver
. ServiceBusClient.get_queue_receiver
andServiceBusClient.get_subscription_receiver
now take keyword parametersession_id
which must be set when getting a receiver for the sessionful entity.
- Removed methods
- The parameter
inner_exception
thatServiceBusError.__init__
takes is now renamed toerror
. - Renamed
azure.servicebus.exceptions.MessageError
toazure.servicebus.exceptions.ServiceBusMessageError
- Removed error
azure.servicebus.exceptions.ServiceBusResourceNotFound
asazure.core.exceptions.ResourceNotFoundError
is now raised when a Service Bus
resource does not exist when using theServiceBusAdministrationClient
. - Renamed
Message
toServiceBusMessage
. - Renamed
ReceivedMessage
toServiceBusReceivedMessage
. - Renamed
BatchMessage
toServiceBusMessageBatch
.- Renamed method
add
toadd_message
on the class.
- Renamed method
- Removed class
PeekedMessage
. - Removed class
ReceivedMessage
under moduleazure.servicebus.aio
. - Renamed
ServiceBusSender.create_batch
toServiceBusSender.create_message_batch
. - Exceptions
MessageSendFailed
,MessageSettleFailed
andMessageLockExpired
now inherit fromazure.servicebus.exceptions.ServiceBusMessageError
. get_state
inServiceBusSession
now returnsbytes
instead of astring
.ServiceBusReceiver.receive_messages/get_streaming_message_iter
and
ServiceBusClient.get_<queue/subscription>_receiver
now raises ValueError if the givenmax_wait_time
is less than or equal to 0.- Message settlement methods are moved from
ServiceBusMessage
toServiceBusReceiver
:- Use
ServiceBusReceiver.complete_message
instead ofServiceBusReceivedMessage.complete
to complete a message. - Use
ServiceBusReceiver.abandon_message
instead ofServiceBusReceivedMessage.abandon
to abandon a message. - Use
ServiceBusReceiver.defer_message
instead ofServiceBusReceivedMessage.defer
to defer a message. - Use
ServiceBusReceiver.dead_letter_message
instead ofServiceBusReceivedMessage.dead_letter
to dead letter a message.
- Use
- Message settlement methods (
complete_message
,abandon_message
,defer_message
anddead_letter_message
)
and methods that use amqp management link for request likeschedule_messages
,received_deferred_messages
, etc.
now raise more concrete exception other thanMessageSettleFailed
andServiceBusError
. - Message
renew_lock
method is moved fromServiceBusMessage
toServiceBusReceiver
:- Changed
ServiceBusReceivedMessage.renew_lock
toServiceBusReceiver.renew_message_lock
- Changed
AutoLockRenewer.register
now takesServiceBusReceiver
as a positional parameter.- Removed
encoding
support fromServiceBusMessage
. ServiceBusMessage.amqp_message
has been renamed toServiceBusMessage.amqp_annotated_message
for cross-sdk consistency.- All
name
parameters inServiceBusAdministrationClient
are now precisely specified alaqueue_name
orrule_name
ServiceBusMessage.via_partition_key
is no longer exposed, this is pending a full implementation of transactions as it has no external use. If needed, the underlying value can still be accessed inServiceBusMessage.amqp_annotated_message.annotations
.ServiceBusMessage.properties
has been renamed toServiceBusMessage.application_properties
for consistency with service verbiage.- Sub-client (
ServiceBusSender
andServiceBusReceiver
)from_connection_string
initializers have been made internal until needed. Clients should be initialized from rootServiceBusClient
. ServiceBusMessage.label
has been renamed toServiceBusMessage.subject
.ServiceBusMessage.amqp_annotated_message
has had its type renamed fromAMQPMessage
toAMQPAnnotatedMessage
AutoLockRenewer
timeout
parameter is renamed tomax_lock_renew_duration
- Attempting to autorenew a non-renewable message, such as one received in
ReceiveAndDelete
mode, or configure auto-autorenewal on aReceiveAndDelete
receiver, will raise aValueError
. - The default value of parameter
max_message_count
onServiceBusReceiver.receive_messages
is now1
instead ofNone
and will raise ValueError if the given value is less than or equal to 0.
BugFixes
- Updated uAMQP dependency to 1.2.12.
- Added support for Python 3.9.
- Fixed bug where amqp message
footer
anddelivery_annotation
were not encoded into the outgoing payload.