From 41def27f5eca19c3d66c75f138d5c75e1fcbee81 Mon Sep 17 00:00:00 2001 From: Dingmeng Xue Date: Tue, 26 Jan 2021 17:21:27 +0800 Subject: [PATCH] Update error kind when context is incorrect (#14013) --- .../Authentication/Factories/AuthenticationFactory.cs | 3 ++- .../Authentication/Factories/ClientFactory.cs | 11 ++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Accounts/Authentication/Factories/AuthenticationFactory.cs b/src/Accounts/Authentication/Factories/AuthenticationFactory.cs index 5dc8c058978e..e774df4a738a 100644 --- a/src/Accounts/Authentication/Factories/AuthenticationFactory.cs +++ b/src/Accounts/Authentication/Factories/AuthenticationFactory.cs @@ -22,6 +22,7 @@ using Microsoft.Azure.Commands.Common.Authentication.Abstractions; using Microsoft.Azure.Commands.Common.Authentication.Authentication; using Microsoft.Azure.Commands.Common.Authentication.Properties; +using Microsoft.Azure.Commands.Common.Exceptions; using Microsoft.Identity.Client; using Microsoft.Rest; @@ -285,7 +286,7 @@ public ServiceClientCredentials GetServiceClientCredentials(IAzureContext contex { if (context.Account == null) { - throw new ArgumentException(Resources.ArmAccountNotFound); + throw new AzPSArgumentException(Resources.ArmAccountNotFound, "context.Account", ErrorKind.UserError); } switch (context.Account.Type) { diff --git a/src/Accounts/Authentication/Factories/ClientFactory.cs b/src/Accounts/Authentication/Factories/ClientFactory.cs index fdcc772407c8..6ee22462db6a 100644 --- a/src/Accounts/Authentication/Factories/ClientFactory.cs +++ b/src/Accounts/Authentication/Factories/ClientFactory.cs @@ -19,6 +19,7 @@ #endif using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Common.Authentication.Properties; +using Microsoft.Azure.Commands.Common.Exceptions; using System; using System.Collections.Concurrent; using System.Collections.Generic; @@ -56,7 +57,7 @@ public virtual TClient CreateArmClient(IAzureContext context, string en { if (context == null) { - throw new ApplicationException(Resources.NoSubscriptionInContext); + throw new AzPSApplicationException(Resources.NoSubscriptionInContext, ErrorKind.UserError); } var creds = AzureSession.Instance.AuthenticationFactory.GetServiceClientCredentials(context, endpoint); @@ -129,7 +130,7 @@ public virtual TClient CreateClient(IAzureContext context, string endpo var exceptionMessage = endpoint == AzureEnvironment.Endpoint.ServiceManagement ? Resources.InvalidDefaultSubscription : Resources.NoSubscriptionInContext; - throw new ApplicationException(exceptionMessage); + throw new AzPSApplicationException(exceptionMessage, ErrorKind.UserError); } SubscriptionCloudCredentials creds = AzureSession.Instance.AuthenticationFactory.GetSubscriptionCloudCredentials(context, endpoint); @@ -165,21 +166,21 @@ public virtual TClient CreateClient(IAzureContextContainer profile, IAz { if (subscription == null) { - throw new ApplicationException(Resources.InvalidDefaultSubscription); + throw new AzPSApplicationException(Resources.InvalidDefaultSubscription, ErrorKind.UserError); } var account = profile.Accounts.FirstOrDefault((a) => string.Equals(a.Id, (subscription.GetAccount()), StringComparison.OrdinalIgnoreCase)); if (null == account) { - throw new ArgumentException(string.Format("Account with name '{0}' does not exist.", subscription.GetAccount()), "accountName"); + throw new AzPSArgumentException(string.Format("Account with name '{0}' does not exist.", subscription.GetAccount()), "accountName", ErrorKind.UserError); } var environment = profile.Environments.FirstOrDefault((e) => string.Equals(e.Name, subscription.GetEnvironment(), StringComparison.OrdinalIgnoreCase)); if (null == environment) { - throw new ArgumentException(string.Format(Resources.EnvironmentNotFound, subscription.GetEnvironment())); + throw new AzPSArgumentException(string.Format(Resources.EnvironmentNotFound, subscription.GetEnvironment()), "environment", ErrorKind.UserError); } AzureContext context = new AzureContext(subscription, account, environment);