13
13
14
14
namespace Microsoft . Azure . Commands . Synapse
15
15
{
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 ) ]
17
17
[ OutputType ( typeof ( PSSynapseSparkPool ) ) ]
18
18
public class NewAzureSynapseSparkPool : SynapseCmdletBase
19
19
{
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" ;
22
24
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 ,
24
29
Mandatory = false , HelpMessage = HelpMessages . ResourceGroupName ) ]
25
30
[ ResourceGroupCompleter ]
26
31
[ ValidateNotNullOrEmpty ]
27
32
public string ResourceGroupName { get ; set ; }
28
33
29
- [ Parameter ( ValueFromPipelineByPropertyName = false , ParameterSetName = CreateByNameParameterSet ,
34
+ [ Parameter ( ValueFromPipelineByPropertyName = false , ParameterSetName = CreateByNameAndEnableAutoScaleParameterSet ,
35
+ Mandatory = true , HelpMessage = HelpMessages . WorkspaceName ) ]
36
+ [ Parameter ( ValueFromPipelineByPropertyName = false , ParameterSetName = CreateByNameAndUnableAutoScaleParameterSet ,
30
37
Mandatory = true , HelpMessage = HelpMessages . WorkspaceName ) ]
31
38
[ ResourceNameCompleter ( ResourceTypes . Workspace , nameof ( ResourceGroupName ) ) ]
32
39
[ ValidateNotNullOrEmpty ]
33
40
public string WorkspaceName { get ; set ; }
34
41
35
- [ Parameter ( ValueFromPipeline = true , ParameterSetName = CreateByParentObjectParameterSet ,
42
+ [ Parameter ( ValueFromPipeline = true , ParameterSetName = CreateByParentObjectAndEnableAutoScaleParameterSet ,
43
+ Mandatory = true , HelpMessage = HelpMessages . WorkspaceObject ) ]
44
+ [ Parameter ( ValueFromPipeline = true , ParameterSetName = CreateByParentObjectAndUnableAutoScaleParameterSet ,
36
45
Mandatory = true , HelpMessage = HelpMessages . WorkspaceObject ) ]
37
46
[ ValidateNotNull ]
38
47
public PSSynapseWorkspace WorkspaceObject { get ; set ; }
@@ -48,8 +57,10 @@ public class NewAzureSynapseSparkPool : SynapseCmdletBase
48
57
[ ValidateNotNull ]
49
58
public Hashtable Tag { get ; set ; }
50
59
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 ) ]
53
64
[ ValidateRange ( 3 , 200 ) ]
54
65
public int NodeCount { get ; set ; }
55
66
@@ -63,13 +74,17 @@ public class NewAzureSynapseSparkPool : SynapseCmdletBase
63
74
HelpMessage = HelpMessages . EnableAutoScale ) ]
64
75
public SwitchParameter EnableAutoScale { get ; set ; }
65
76
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 ) ]
68
81
[ ValidateRange ( 3 , 200 ) ]
69
82
public int AutoScaleMinNodeCount { get ; set ; }
70
83
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 ) ]
73
88
[ ValidateRange ( 3 , 200 ) ]
74
89
public int AutoScaleMaxNodeCount { get ; set ; }
75
90
@@ -98,6 +113,16 @@ public class NewAzureSynapseSparkPool : SynapseCmdletBase
98
113
99
114
public override void ExecuteCmdlet ( )
100
115
{
116
+ switch ( ParameterSetName )
117
+ {
118
+ case CreateByNameAndEnableAutoScaleParameterSet :
119
+ this . EnableAutoScale = true ;
120
+ break ;
121
+ case CreateByParentObjectAndEnableAutoScaleParameterSet :
122
+ this . EnableAutoScale = true ;
123
+ break ;
124
+ }
125
+
101
126
if ( this . IsParameterBound ( c => c . WorkspaceObject ) )
102
127
{
103
128
this . ResourceGroupName = new ResourceIdentifier ( this . WorkspaceObject . Id ) . ResourceGroupName ;
@@ -139,17 +164,8 @@ public override void ExecuteCmdlet()
139
164
throw new SynapseException ( string . Format ( Resources . WorkspaceDoesNotExist , this . WorkspaceName ) ) ;
140
165
}
141
166
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
- }
151
167
152
- LibraryRequirements libraryRequirements = null ;
168
+ LibraryRequirements libraryRequirements = null ;
153
169
if ( this . IsParameterBound ( c => c . LibraryRequirementsFilePath ) )
154
170
{
155
171
var powerShellDestinationPath = SessionState . Path . GetUnresolvedProviderPathFromPSPath ( LibraryRequirementsFilePath ) ;
@@ -165,15 +181,12 @@ public override void ExecuteCmdlet()
165
181
{
166
182
Location = existingWorkspace . Location ,
167
183
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 ,
172
185
NodeSizeFamily = NodeSizeFamily . MemoryOptimized ,
173
186
NodeSize = NodeSize ,
174
- AutoScale = ! EnableAutoScale . IsPresent ? null : new AutoScaleProperties
187
+ AutoScale = ! this . EnableAutoScale ? null : new AutoScaleProperties
175
188
{
176
- Enabled = EnableAutoScale . IsPresent ,
189
+ Enabled = this . EnableAutoScale ,
177
190
MinNodeCount = AutoScaleMinNodeCount ,
178
191
MaxNodeCount = AutoScaleMaxNodeCount
179
192
} ,
0 commit comments