Skip to content

Commit 7b48033

Browse files
authored
Merge pull request #630 from Azure/dev
huangpf PR: dev <- Azure:dev
2 parents a756a4b + 7c63206 commit 7b48033

File tree

1 file changed

+79
-41
lines changed

1 file changed

+79
-41
lines changed

src/ResourceManager/Profile/Commands.Profile/Account/AddAzureRmAccount.cs

Lines changed: 79 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,19 @@ namespace Microsoft.Azure.Commands.Profile
2929
/// <summary>
3030
/// Cmdlet to log into an environment and download the subscriptions
3131
/// </summary>
32-
[Cmdlet("Add", "AzureRmAccount", DefaultParameterSetName = "User", SupportsShouldProcess=true)]
32+
[Cmdlet("Add", "AzureRmAccount", DefaultParameterSetName = "UserWithSubscriptionId", SupportsShouldProcess=true)]
3333
[Alias("Login-AzureRmAccount")]
3434
[OutputType(typeof(PSAzureProfile))]
3535
public class AddAzureRMAccountCommand : AzureRMCmdlet, IModuleAssemblyInitializer
3636
{
37-
private const string UserParameterSet = "User";
38-
private const string ServicePrincipalParameterSet = "ServicePrincipal";
39-
private const string ServicePrincipalCertificateParameterSet = "ServicePrincipalCertificate";
40-
private const string AccessTokenParameterSet = "AccessToken";
41-
private const string SubscriptionNameParameterSet = "SubscriptionName";
42-
private const string SubscriptionIdParameterSet = "SubscriptionId";
37+
private const string UserParameterSetWithSubscriptionId = "UserWithSubscriptionId";
38+
private const string UserParameterSetWithSubscriptionName = "UserWithSubscriptionName";
39+
private const string ServicePrincipalParameterSetWithSubscriptionId = "ServicePrincipalWithSubscriptionId";
40+
private const string ServicePrincipalParameterSetWithSubscriptionName = "ServicePrincipalWithSubscriptionName";
41+
private const string ServicePrincipalCertificateParameterSetWithSubscriptionId = "ServicePrincipalCertificateWithSubscriptionId";
42+
private const string ServicePrincipalCertificateParameterSetWithSubscriptionName = "ServicePrincipalCertificateWithSubscriptionName";
43+
private const string AccessTokenParameterSetWithSubscriptionId = "AccessTokenWithSubscriptionId";
44+
private const string AccessTokenParameterSetWithSubscriptionName = "AccessTokenWithSubscriptionName";
4345

4446
[Parameter(Mandatory = false, HelpMessage = "Environment containing the account to log into")]
4547
[ValidateNotNullOrEmpty]
@@ -50,56 +52,92 @@ public class AddAzureRMAccountCommand : AzureRMCmdlet, IModuleAssemblyInitialize
5052

5153
public string EnvironmentName { get; set; }
5254

53-
54-
[Parameter(ParameterSetName = UserParameterSet, Mandatory = false, HelpMessage = "Optional credential")]
55-
[Parameter(ParameterSetName = ServicePrincipalParameterSet, Mandatory = true, HelpMessage = "Credential")]
56-
[Parameter(ParameterSetName = SubscriptionIdParameterSet, Mandatory = false, HelpMessage = "Optional credential")]
57-
[Parameter(ParameterSetName = SubscriptionNameParameterSet, Mandatory = false, HelpMessage = "Optional credential")]
55+
56+
[Parameter(ParameterSetName = UserParameterSetWithSubscriptionId,
57+
Mandatory = false, HelpMessage = "Optional credential", Position = 0)]
58+
[Parameter(ParameterSetName = UserParameterSetWithSubscriptionName,
59+
Mandatory = false, HelpMessage = "Optional credential", Position = 0)]
60+
[Parameter(ParameterSetName = ServicePrincipalParameterSetWithSubscriptionId,
61+
Mandatory = true, HelpMessage = "Credential")]
62+
[Parameter(ParameterSetName = ServicePrincipalParameterSetWithSubscriptionName,
63+
Mandatory = true, HelpMessage = "Credential")]
5864
public PSCredential Credential { get; set; }
5965

60-
[Parameter(ParameterSetName = ServicePrincipalCertificateParameterSet, Mandatory = true, HelpMessage = "Certificate Hash (Thumbprint)")]
61-
[Parameter(ParameterSetName = SubscriptionIdParameterSet, Mandatory = false, HelpMessage = "Certificate Hash (Thumbprint)")]
62-
[Parameter(ParameterSetName = SubscriptionNameParameterSet, Mandatory = false, HelpMessage = "Certificate Hash (Thumbprint)")]
66+
[Parameter(ParameterSetName = ServicePrincipalCertificateParameterSetWithSubscriptionId,
67+
Mandatory = true, HelpMessage = "Certificate Hash (Thumbprint)")]
68+
[Parameter(ParameterSetName = ServicePrincipalCertificateParameterSetWithSubscriptionName,
69+
Mandatory = true, HelpMessage = "Certificate Hash (Thumbprint)")]
6370
public string CertificateThumbprint { get; set; }
64-
65-
[Parameter(ParameterSetName = ServicePrincipalCertificateParameterSet, Mandatory = true, HelpMessage = "SPN")]
66-
[Parameter(ParameterSetName = SubscriptionIdParameterSet, Mandatory = false, HelpMessage = "SPN")]
67-
[Parameter(ParameterSetName = SubscriptionNameParameterSet, Mandatory = false, HelpMessage = "SPN")]
71+
72+
[Parameter(ParameterSetName = ServicePrincipalCertificateParameterSetWithSubscriptionId,
73+
Mandatory = true, HelpMessage = "SPN")]
74+
[Parameter(ParameterSetName = ServicePrincipalCertificateParameterSetWithSubscriptionName,
75+
Mandatory = true, HelpMessage = "SPN")]
6876
public string ApplicationId { get; set; }
6977

70-
[Parameter(ParameterSetName = ServicePrincipalParameterSet, Mandatory = true)]
71-
[Parameter(ParameterSetName = ServicePrincipalCertificateParameterSet, Mandatory = true)]
78+
[Parameter(ParameterSetName = ServicePrincipalParameterSetWithSubscriptionId,
79+
Mandatory = true)]
80+
[Parameter(ParameterSetName = ServicePrincipalParameterSetWithSubscriptionName,
81+
Mandatory = true)]
82+
[Parameter(ParameterSetName = ServicePrincipalCertificateParameterSetWithSubscriptionId,
83+
Mandatory = true)]
84+
[Parameter(ParameterSetName = ServicePrincipalCertificateParameterSetWithSubscriptionName,
85+
Mandatory = true)]
7286
public SwitchParameter ServicePrincipal { get; set; }
73-
74-
[Parameter(ParameterSetName = UserParameterSet, Mandatory = false, HelpMessage = "Optional tenant name or ID")]
75-
[Parameter(ParameterSetName = ServicePrincipalParameterSet, Mandatory = true, HelpMessage = "TenantId name or ID")]
76-
[Parameter(ParameterSetName = AccessTokenParameterSet, Mandatory = false, HelpMessage = "TenantId name or ID")]
77-
[Parameter(ParameterSetName = ServicePrincipalCertificateParameterSet, Mandatory = true, HelpMessage = "TenantId name or ID")]
78-
[Parameter(ParameterSetName = SubscriptionIdParameterSet, Mandatory = false, HelpMessage = "TenantId name or ID")]
79-
[Parameter(ParameterSetName = SubscriptionNameParameterSet, Mandatory = false, HelpMessage = "TenantId name or ID")]
87+
88+
[Parameter(ParameterSetName = UserParameterSetWithSubscriptionId,
89+
Mandatory = false, HelpMessage = "Optional tenant name or ID")]
90+
[Parameter(ParameterSetName = UserParameterSetWithSubscriptionName,
91+
Mandatory = false, HelpMessage = "Optional tenant name or ID")]
92+
[Parameter(ParameterSetName = ServicePrincipalParameterSetWithSubscriptionId,
93+
Mandatory = true, HelpMessage = "Tenant name or ID")]
94+
[Parameter(ParameterSetName = ServicePrincipalParameterSetWithSubscriptionName,
95+
Mandatory = true, HelpMessage = "Tenant name or ID")]
96+
[Parameter(ParameterSetName = AccessTokenParameterSetWithSubscriptionId,
97+
Mandatory = false, HelpMessage = "Tenant name or ID")]
98+
[Parameter(ParameterSetName = AccessTokenParameterSetWithSubscriptionName,
99+
Mandatory = false, HelpMessage = "Tenant name or ID")]
100+
[Parameter(ParameterSetName = ServicePrincipalCertificateParameterSetWithSubscriptionId,
101+
Mandatory = true, HelpMessage = "Tenant name or ID")]
102+
[Parameter(ParameterSetName = ServicePrincipalCertificateParameterSetWithSubscriptionName,
103+
Mandatory = true, HelpMessage = "Tenant name or ID")]
80104
[Alias("Domain")]
81105
[ValidateNotNullOrEmpty]
82106
public string TenantId { get; set; }
83-
84-
[Parameter(ParameterSetName = AccessTokenParameterSet, Mandatory = true, HelpMessage = "AccessToken")]
85-
[Parameter(ParameterSetName = SubscriptionIdParameterSet, Mandatory = false, HelpMessage = "AccessToken")]
86-
[Parameter(ParameterSetName = SubscriptionNameParameterSet, Mandatory = false, HelpMessage = "AccessToken")]
107+
108+
[Parameter(ParameterSetName = AccessTokenParameterSetWithSubscriptionId,
109+
Mandatory = true, HelpMessage = "AccessToken")]
110+
[Parameter(ParameterSetName = AccessTokenParameterSetWithSubscriptionName,
111+
Mandatory = true, HelpMessage = "AccessToken")]
87112
[ValidateNotNullOrEmpty]
88113
public string AccessToken { get; set; }
89-
90-
[Parameter(ParameterSetName = AccessTokenParameterSet, Mandatory = true, HelpMessage = "Account Id for access token")]
91-
[Parameter(ParameterSetName = SubscriptionIdParameterSet, Mandatory = false, HelpMessage = "Account Id for access token")]
92-
[Parameter(ParameterSetName = SubscriptionNameParameterSet, Mandatory = false, HelpMessage = "Account Id for access token")]
114+
115+
[Parameter(ParameterSetName = AccessTokenParameterSetWithSubscriptionId,
116+
Mandatory = true, HelpMessage = "Account Id for access token")]
117+
[Parameter(ParameterSetName = AccessTokenParameterSetWithSubscriptionName,
118+
Mandatory = true, HelpMessage = "Account Id for access token")]
93119
[ValidateNotNullOrEmpty]
94120
public string AccountId { get; set; }
95-
96-
[Parameter(ParameterSetName = SubscriptionIdParameterSet, Mandatory = false, HelpMessage = "Subscription", ValueFromPipelineByPropertyName = true)]
97-
[Parameter(ParameterSetName = ServicePrincipalParameterSet, Mandatory = false, HelpMessage = "Subscription", ValueFromPipelineByPropertyName = true)]
121+
122+
[Parameter(ParameterSetName = UserParameterSetWithSubscriptionId,
123+
Mandatory = false, HelpMessage = "Subscription ID", ValueFromPipeline = true)]
124+
[Parameter(ParameterSetName = ServicePrincipalParameterSetWithSubscriptionId,
125+
Mandatory = false, HelpMessage = "Subscription ID", ValueFromPipeline = true)]
126+
[Parameter(ParameterSetName = ServicePrincipalCertificateParameterSetWithSubscriptionId,
127+
Mandatory = false, HelpMessage = "Subscription ID", ValueFromPipeline = true)]
128+
[Parameter(ParameterSetName = AccessTokenParameterSetWithSubscriptionId,
129+
Mandatory = false, HelpMessage = "Subscription ID", ValueFromPipeline = true)]
98130
[ValidateNotNullOrEmpty]
99131
public string SubscriptionId { get; set; }
100132

101-
[Parameter(ParameterSetName = SubscriptionNameParameterSet, Mandatory = false, HelpMessage = "Subscription Name", ValueFromPipelineByPropertyName = true)]
102-
[Parameter(ParameterSetName = ServicePrincipalParameterSet, Mandatory = false, HelpMessage = "Subscription Name", ValueFromPipelineByPropertyName = true)]
133+
[Parameter(ParameterSetName = UserParameterSetWithSubscriptionName,
134+
Mandatory = true, HelpMessage = "Subscription Name", ValueFromPipeline = true)]
135+
[Parameter(ParameterSetName = ServicePrincipalParameterSetWithSubscriptionName,
136+
Mandatory = true, HelpMessage = "Subscription Name", ValueFromPipeline = true)]
137+
[Parameter(ParameterSetName = ServicePrincipalCertificateParameterSetWithSubscriptionName,
138+
Mandatory = true, HelpMessage = "Subscription Name", ValueFromPipeline = true)]
139+
[Parameter(ParameterSetName = AccessTokenParameterSetWithSubscriptionName,
140+
Mandatory = true, HelpMessage = "Subscription Name", ValueFromPipeline = true)]
103141
[ValidateNotNullOrEmpty]
104142
public string SubscriptionName { get; set; }
105143

0 commit comments

Comments
 (0)