-
Notifications
You must be signed in to change notification settings - Fork 118
Conversation
RuntimeInfo part of Description. Removed overloads of cancellationToken from interface Removed couple of EntityStatus enum values.
MessagingEntityNotFoundExceptionTest
public static readonly TimeSpan MinimumDuplicateDetectionHistoryTimeWindow = TimeSpan.FromSeconds(20); | ||
public static readonly int MinAllowedMaxDeliveryCount = 1; | ||
public static readonly int MinAllowedMaxEntitySizeInGB = 1; | ||
public static readonly int MaxAllowedMaxEntitySizeInGB = 5; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will not be right for the Premium tier, won't it?
private string namespaceConnectionString; | ||
|
||
// TODO: Expose other constructor overloads | ||
public ManagementClient(ServiceBusConnectionStringBuilder connectionStringBuilder) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regarding ctor and TODO comment - management client shoudl by default receive connection string and internally exercise ServiceBusConnectionStringBuilder
. While it's not that difficult to write
new ManagementClient(new ServiceBusConnectionStringBuilder(connectionString));
customers will appreciate just doing
new ManagementClient(connectionString);
{ | ||
// TODO: Document all exceptions that might be thrown | ||
// TODO: Retry for transient | ||
public class ManagementClient : ClientEntity, IManagementClient |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What ClientEntity
is for? If for connection, shouldn't it be incapsulated rather than ingerited? #ByDesign
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It gives you IsClosedOrClosing
, Connection
, Timeout
, RetryPolicy
and CloseAsync()
.
In reply to: 194202130 [](ancestors = 194202130)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are those needed for ManagementClient
internally? From the API standpoint it's not obvious that these are needed (looking at IManagementClient
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nemakam it still feels off to implement ClientEntity
rather than encapsulate one internally. Connection string would give you what you need, no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What part of that feels off?
Like I mentioned, we still need IsClosedOrClosing
, and same thing with OperationTimeout
, RetryPolicy
and CloseAsync()
.
namespace Microsoft.Azure.ServiceBus.Management | ||
{ | ||
// TODO: Input validation | ||
public class QueueDescription : IEquatable<QueueDescription> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like de-dup related properties are missing #Resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nemakam |
@nemakam is there anything else on this PR or could it be merged/released? |
@SeanFeldman |
1. Moving public methods before private 2. Constants cleanup
🎉 🎈 🎆 |
How weird and sad that it should take so long to get queue and topic creation capabilities back in the driver, but it's so awesome that it's finally in! 👍 🎉 🌮 |
Introduces Serivce Bus Management operations - CRUD of entities
Fixes #65
The API is exposed through
ManagementClient
which uses HTTP underneath to perform these operations.Summary of exposed operations:
GetQueue
returns theQueueDescription
which contains static information about the queue.QueueDescription
is required to Create or Update the queue.ManagementClient.GetQueueRuntimeInfo
returnsQueueRuntimeInfo
which contains runtime information of the queue like the message count and the size.GetQueues
will return list ofQueueDescription
and will not contain runtime information.Majority of the operations are similar to the ones exposed in older client (
Microsoft.ServiceBus
->NamespaceManager
), with following differences:GetQueue
now returns only static information as part ofQueueDescription
and runtime information is part ofQueueRuntimeInfo
.DuplicateDetection
feature is 1 minute.