From 7172ad51eb421f110831663fd778d48dcb5ae4d8 Mon Sep 17 00:00:00 2001 From: ogail Date: Thu, 8 Oct 2015 11:42:14 -0700 Subject: [PATCH] Support SM/RM cmdlets execution with RP registration --- .../Commands.ResourceManager.Common/AzureRMCmdlet.cs | 7 ++++++- .../RPRegistrationDelegatingHandler.cs | 3 +-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ResourceManager/Common/Commands.ResourceManager.Common/AzureRMCmdlet.cs b/src/ResourceManager/Common/Commands.ResourceManager.Common/AzureRMCmdlet.cs index 534e719037ac..2d3ad79efe06 100644 --- a/src/ResourceManager/Common/Commands.ResourceManager.Common/AzureRMCmdlet.cs +++ b/src/ResourceManager/Common/Commands.ResourceManager.Common/AzureRMCmdlet.cs @@ -43,11 +43,16 @@ static AzureRMCmdlet() } } + /// + /// Creates new instance from AzureRMCmdlet and add the RPRegistration handler. + /// public AzureRMCmdlet() { AzureSession.ClientFactory.RemoveHandler(typeof(RPRegistrationDelegatingHandler)); AzureSession.ClientFactory.AddHandler(new RPRegistrationDelegatingHandler( - () => AzureSession.ClientFactory.CreateClient(DefaultContext, AzureEnvironment.Endpoint.ResourceManager), + () => new ResourceManagementClient( + AzureSession.AuthenticationFactory.GetSubscriptionCloudCredentials(DefaultContext, AzureEnvironment.Endpoint.ResourceManager), + DefaultContext.Environment.GetEndpointAsUri(AzureEnvironment.Endpoint.ResourceManager)), s => _debugMessages.Enqueue(s))); } diff --git a/src/ResourceManager/Common/Commands.ResourceManager.Common/RPRegistrationDelegatingHandler.cs b/src/ResourceManager/Common/Commands.ResourceManager.Common/RPRegistrationDelegatingHandler.cs index 4bc45f617e86..62e6f4e8cdca 100644 --- a/src/ResourceManager/Common/Commands.ResourceManager.Common/RPRegistrationDelegatingHandler.cs +++ b/src/ResourceManager/Common/Commands.ResourceManager.Common/RPRegistrationDelegatingHandler.cs @@ -48,8 +48,6 @@ public RPRegistrationDelegatingHandler(Func createClie protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { - ResourceManagementClient = createClient(); - HttpResponseMessage responseMessage = await base.SendAsync(request, cancellationToken).ConfigureAwait(false); if (IsProviderNotRegistereError(responseMessage)) { @@ -61,6 +59,7 @@ protected override async Task SendAsync(HttpRequestMessage registeredProviders.Add(providerName); try { + ResourceManagementClient = createClient(); writeDebug(string.Format(Resources.ResourceProviderRegisterAttempt, providerName)); ResourceManagementClient.Providers.Register(providerName); Provider provider = null;