diff --git a/sdk/servicebus/azure-servicebus/migration_guide.md b/sdk/servicebus/azure-servicebus/migration_guide.md index 59b1ffa00a59..04fa8daa53ea 100644 --- a/sdk/servicebus/azure-servicebus/migration_guide.md +++ b/sdk/servicebus/azure-servicebus/migration_guide.md @@ -362,9 +362,8 @@ In V7 of this library, we simplified this as below: ### Working with Administration Client -In v0.50, you could create/get/update/delete/list Service Bus queues/topics/subscriptions/rules using the `control_client`. -In v7, this is replaced by the `ServiceBusAdministrationClient`. -The following code snippets show how to manage queues, similar methods are provided on the `ServiceBusAdministrationClient` to manage topics, subscriptions and rules. +In v0.50, you could create/get/update/delete/list Service Bus queues/topics/subscriptions/rules using the `control_client`. You were also able to retrieve associated metadata, like `message_count`. +In v7, this is replaced by the `ServiceBusAdministrationClient`. The property `total_message_count` on `QueueRuntimeProperties` has now replaced `message_count` on `Queue`. More specific properties about message counts - `active_message_count`, `scheduled_message_count` and `dead_letter_message_count` - are also available. Similar methods are provided on the `ServiceBusAdministrationClient` to manage topics, subscriptions and rules. The following code snippets show how to manage queues and retrieve associated metadata. In V0.50: ```python @@ -374,6 +373,10 @@ queue = service_bus_service.get_queue(queue_name) service_bus_service.create_queue(queue_name) service_bus_service.delete_queue(queue_name) queues = service_bus_service.list_queues() + +# get message count info +for queue in queues: + print(queue.message_count) ``` In V7: @@ -384,6 +387,14 @@ queue = service_bus_administration_client.get_queue(queue_name) service_bus_administration_client.create_queue(queue_name) service_bus_administration_client.delete_queue(queue_name) queues = service_bus_administration_client.list_queues() + +# get total, active, scheduled, dead-letter message count info +for queue in queues: + queue_runtime_properties = service_bus_administration_client.get_queue_runtime_properties(queue.name) + print(queue_runtime_properties.total_message_count) + print(queue_runtime_properties.active_message_count) + print(queue_runtime_properties.scheduled_message_count) + print(queue_runtime_properties.dead_letter_message_count) ``` ### Migration samples diff --git a/sdk/servicebus/azure-servicebus/samples/async_samples/mgmt_queue_async.py b/sdk/servicebus/azure-servicebus/samples/async_samples/mgmt_queue_async.py index 44f941cb8d19..99825d9a7d95 100644 --- a/sdk/servicebus/azure-servicebus/samples/async_samples/mgmt_queue_async.py +++ b/sdk/servicebus/azure-servicebus/samples/async_samples/mgmt_queue_async.py @@ -73,6 +73,9 @@ async def get_queue_runtime_properties(servicebus_mgmt_client): print("Updated at:", queue_runtime_properties.updated_at_utc) print("Size in Bytes:", queue_runtime_properties.size_in_bytes) print("Message Count:", queue_runtime_properties.total_message_count) + print("Active Message Count:", queue_runtime_properties.active_message_count) + print("Scheduled Message Count:", queue_runtime_properties.scheduled_message_count) + print("Dead-letter Message Count:", queue_runtime_properties.dead_letter_message_count) print("Please refer to QueueRuntimeProperties from complete available runtime properties.") print("") diff --git a/sdk/servicebus/azure-servicebus/samples/sync_samples/mgmt_queue.py b/sdk/servicebus/azure-servicebus/samples/sync_samples/mgmt_queue.py index 5090e2f2e519..c65d3063d615 100644 --- a/sdk/servicebus/azure-servicebus/samples/sync_samples/mgmt_queue.py +++ b/sdk/servicebus/azure-servicebus/samples/sync_samples/mgmt_queue.py @@ -66,12 +66,15 @@ def get_and_update_queue(servicebus_mgmt_client): def get_queue_runtime_properties(servicebus_mgmt_client): print("-- Get Queue Runtime Properties") - get_queue_runtime_properties = servicebus_mgmt_client.get_queue_runtime_properties(QUEUE_NAME) - print("Queue Name:", get_queue_runtime_properties.name) + queue_runtime_properties = servicebus_mgmt_client.get_queue_runtime_properties(QUEUE_NAME) + print("Queue Name:", queue_runtime_properties.name) print("Queue Runtime Properties:") - print("Updated at:", get_queue_runtime_properties.updated_at_utc) - print("Size in Bytes:", get_queue_runtime_properties.size_in_bytes) - print("Message Count:", get_queue_runtime_properties.total_message_count) + print("Updated at:", queue_runtime_properties.updated_at_utc) + print("Size in Bytes:", queue_runtime_properties.size_in_bytes) + print("Message Count:", queue_runtime_properties.total_message_count) + print("Active Message Count:", queue_runtime_properties.active_message_count) + print("Scheduled Message Count:", queue_runtime_properties.scheduled_message_count) + print("Dead-letter Message Count:", queue_runtime_properties.dead_letter_message_count) print("Please refer to QueueRuntimeProperties from complete available runtime properties.") print("")