Skip to content

Commit 4832c5f

Browse files
author
Wan Yang
committed
fix NewAzureSynapseSparkPool
1 parent 2b5e92d commit 4832c5f

File tree

1 file changed

+41
-28
lines changed

1 file changed

+41
-28
lines changed

src/Synapse/Synapse/Commands/ManagementCommands/SparkPool/NewAzureSynapseSparkPool.cs

Lines changed: 41 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -13,26 +13,35 @@
1313

1414
namespace Microsoft.Azure.Commands.Synapse
1515
{
16-
[Cmdlet(VerbsCommon.New, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + SynapseConstants.SynapsePrefix + SynapseConstants.SparkPool, DefaultParameterSetName = CreateByNameParameterSet, SupportsShouldProcess = true)]
16+
[Cmdlet(VerbsCommon.New, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + SynapseConstants.SynapsePrefix + SynapseConstants.SparkPool, DefaultParameterSetName = CreateByNameAndEnableAutoScaleParameterSet, SupportsShouldProcess = true)]
1717
[OutputType(typeof(PSSynapseSparkPool))]
1818
public class NewAzureSynapseSparkPool : SynapseCmdletBase
1919
{
20-
private const string CreateByNameParameterSet = "CreateByNameParameterSet";
21-
private const string CreateByParentObjectParameterSet = "CreateByParentObjectParameterSet";
20+
private const string CreateByNameAndEnableAutoScaleParameterSet = "CreateByNameAndEnableAutoScaleParameterSet";
21+
private const string CreateByNameAndUnableAutoScaleParameterSet = "CreateByNameAndUnableAutoScaleParameterSet";
22+
private const string CreateByParentObjectAndEnableAutoScaleParameterSet = "CreateByParentObjectAndEnableAutoScaleParameterSet";
23+
private const string CreateByParentObjectAndUnableAutoScaleParameterSet = "CreateByParentObjectAndUnableAutoScaleParameterSet";
2224

23-
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = CreateByNameParameterSet,
25+
26+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = CreateByNameAndEnableAutoScaleParameterSet,
27+
Mandatory = false, HelpMessage = HelpMessages.ResourceGroupName)]
28+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = CreateByNameAndUnableAutoScaleParameterSet,
2429
Mandatory = false, HelpMessage = HelpMessages.ResourceGroupName)]
2530
[ResourceGroupCompleter]
2631
[ValidateNotNullOrEmpty]
2732
public string ResourceGroupName { get; set; }
2833

29-
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = CreateByNameParameterSet,
34+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = CreateByNameAndEnableAutoScaleParameterSet,
35+
Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)]
36+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = CreateByNameAndUnableAutoScaleParameterSet,
3037
Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)]
3138
[ResourceNameCompleter(ResourceTypes.Workspace, nameof(ResourceGroupName))]
3239
[ValidateNotNullOrEmpty]
3340
public string WorkspaceName { get; set; }
3441

35-
[Parameter(ValueFromPipeline = true, ParameterSetName = CreateByParentObjectParameterSet,
42+
[Parameter(ValueFromPipeline = true, ParameterSetName = CreateByParentObjectAndEnableAutoScaleParameterSet,
43+
Mandatory = true, HelpMessage = HelpMessages.WorkspaceObject)]
44+
[Parameter(ValueFromPipeline = true, ParameterSetName = CreateByParentObjectAndUnableAutoScaleParameterSet,
3645
Mandatory = true, HelpMessage = HelpMessages.WorkspaceObject)]
3746
[ValidateNotNull]
3847
public PSSynapseWorkspace WorkspaceObject { get; set; }
@@ -48,8 +57,10 @@ public class NewAzureSynapseSparkPool : SynapseCmdletBase
4857
[ValidateNotNull]
4958
public Hashtable Tag { get; set; }
5059

51-
[Parameter(ValueFromPipelineByPropertyName = false, Mandatory = false,
52-
HelpMessage = HelpMessages.NodeCount)]
60+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = CreateByNameAndUnableAutoScaleParameterSet,
61+
Mandatory = true, HelpMessage = HelpMessages.NodeCount)]
62+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = CreateByParentObjectAndUnableAutoScaleParameterSet,
63+
Mandatory = true, HelpMessage = HelpMessages.NodeCount)]
5364
[ValidateRange(3, 200)]
5465
public int NodeCount { get; set; }
5566

@@ -63,13 +74,17 @@ public class NewAzureSynapseSparkPool : SynapseCmdletBase
6374
HelpMessage = HelpMessages.EnableAutoScale)]
6475
public SwitchParameter EnableAutoScale { get; set; }
6576

66-
[Parameter(ValueFromPipelineByPropertyName = false, Mandatory = false,
67-
HelpMessage = HelpMessages.AutoScaleMinNodeCount)]
77+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = CreateByNameAndEnableAutoScaleParameterSet,
78+
Mandatory = true, HelpMessage = HelpMessages.AutoScaleMinNodeCount)]
79+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = CreateByParentObjectAndEnableAutoScaleParameterSet,
80+
Mandatory = true, HelpMessage = HelpMessages.AutoScaleMinNodeCount)]
6881
[ValidateRange(3, 200)]
6982
public int AutoScaleMinNodeCount { get; set; }
7083

71-
[Parameter(ValueFromPipelineByPropertyName = false, Mandatory = false,
72-
HelpMessage = HelpMessages.AutoScaleMaxNodeCount)]
84+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = CreateByNameAndEnableAutoScaleParameterSet,
85+
Mandatory = true, HelpMessage = HelpMessages.AutoScaleMinNodeCount)]
86+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = CreateByParentObjectAndEnableAutoScaleParameterSet,
87+
Mandatory = true, HelpMessage = HelpMessages.AutoScaleMinNodeCount)]
7388
[ValidateRange(3, 200)]
7489
public int AutoScaleMaxNodeCount { get; set; }
7590

@@ -98,6 +113,16 @@ public class NewAzureSynapseSparkPool : SynapseCmdletBase
98113

99114
public override void ExecuteCmdlet()
100115
{
116+
switch (ParameterSetName)
117+
{
118+
case CreateByNameAndEnableAutoScaleParameterSet:
119+
this.EnableAutoScale = true;
120+
break;
121+
case CreateByParentObjectAndEnableAutoScaleParameterSet:
122+
this.EnableAutoScale = true;
123+
break;
124+
}
125+
101126
if (this.IsParameterBound(c => c.WorkspaceObject))
102127
{
103128
this.ResourceGroupName = new ResourceIdentifier(this.WorkspaceObject.Id).ResourceGroupName;
@@ -139,17 +164,8 @@ public override void ExecuteCmdlet()
139164
throw new SynapseException(string.Format(Resources.WorkspaceDoesNotExist, this.WorkspaceName));
140165
}
141166

142-
// NodeCount and EnableAutoScale are given at the same time
143-
if (this.NodeCount != 0 && EnableAutoScale.IsPresent)
144-
{
145-
throw new SynapseException(string.Format("",""));
146-
}
147-
// both NodeCount and EnableAutoScale are not given
148-
if (this.NodeCount == 0 && !EnableAutoScale.IsPresent) {
149-
throw new SynapseException(string.Format("", ""));
150-
}
151167

152-
LibraryRequirements libraryRequirements = null;
168+
LibraryRequirements libraryRequirements = null;
153169
if (this.IsParameterBound(c => c.LibraryRequirementsFilePath))
154170
{
155171
var powerShellDestinationPath = SessionState.Path.GetUnresolvedProviderPathFromPSPath(LibraryRequirementsFilePath);
@@ -165,15 +181,12 @@ public override void ExecuteCmdlet()
165181
{
166182
Location = existingWorkspace.Location,
167183
Tags = TagsConversionHelper.CreateTagDictionary(this.Tag, validate: true),
168-
//NodeCount = this.NodeCount,
169-
170-
NodeCount = EnableAutoScale.IsPresent ? (int?) null : this.NodeCount,
171-
184+
NodeCount = this.EnableAutoScale ? (int?) null : this.NodeCount,
172185
NodeSizeFamily = NodeSizeFamily.MemoryOptimized,
173186
NodeSize = NodeSize,
174-
AutoScale = !EnableAutoScale.IsPresent ? null : new AutoScaleProperties
187+
AutoScale = !this.EnableAutoScale ? null : new AutoScaleProperties
175188
{
176-
Enabled = EnableAutoScale.IsPresent,
189+
Enabled = this.EnableAutoScale,
177190
MinNodeCount = AutoScaleMinNodeCount,
178191
MaxNodeCount = AutoScaleMaxNodeCount
179192
},

0 commit comments

Comments
 (0)