File tree Expand file tree Collapse file tree 5 files changed +52
-3
lines changed
Compute/Commands.Compute.Test/ScenarioTests
Profile/Commands.Profile.Test
Resources/Commands.ResourceManager/Cmdlets/Implementation Expand file tree Collapse file tree 5 files changed +52
-3
lines changed Original file line number Diff line number Diff line change @@ -137,13 +137,50 @@ protected string PSVersion
137
137
138
138
protected abstract string DataCollectionWarning { get ; }
139
139
140
+ private SessionState _sessionState ;
141
+
142
+ public new SessionState SessionState
143
+ {
144
+ get
145
+ {
146
+ return _sessionState ;
147
+ }
148
+ set
149
+ {
150
+ _sessionState = value ;
151
+ }
152
+ }
153
+
154
+ private RuntimeDefinedParameterDictionary _asJobDynamicParameters ;
155
+
156
+ public RuntimeDefinedParameterDictionary AsJobDynamicParameters
157
+ {
158
+ get
159
+ {
160
+ if ( _asJobDynamicParameters == null )
161
+ {
162
+ _asJobDynamicParameters = new RuntimeDefinedParameterDictionary ( ) ;
163
+ }
164
+ return _asJobDynamicParameters ;
165
+ }
166
+ set
167
+ {
168
+ _asJobDynamicParameters = value ;
169
+ }
170
+ }
171
+
140
172
/// <summary>
141
173
/// Initializes AzurePSCmdlet properties.
142
174
/// </summary>
143
175
public AzurePSCmdlet ( )
144
176
{
145
177
DebugMessages = new ConcurrentQueue < string > ( ) ;
178
+ }
146
179
180
+ // Register Dynamic Parameters for use in long running jobs
181
+ public void RegisterDynamicParameters ( RuntimeDefinedParameterDictionary parameters )
182
+ {
183
+ this . AsJobDynamicParameters = parameters ;
147
184
}
148
185
149
186
@@ -252,6 +289,7 @@ protected virtual void TearDownHttpClientPipeline()
252
289
/// </summary>
253
290
protected override void BeginProcessing ( )
254
291
{
292
+ SessionState = base . SessionState ;
255
293
var profile = _dataCollectionProfile ;
256
294
//TODO: Inject from CI server
257
295
lock ( lockObject )
Original file line number Diff line number Diff line change @@ -107,7 +107,9 @@ function Test-VirtualMachineSetRunCommand
107
107
108
108
$path = ' ScenarioTests\test.ps1' ;
109
109
110
- $result = Invoke-AzureRmVMRunCommand - ResourceGroupName $rgname - Name $vmname - CommandId $commandId - ScriptPath $path - Parameter $param ;
110
+ $job = Invoke-AzureRmVMRunCommand - ResourceGroupName $rgname - Name $vmname - CommandId $commandId - ScriptPath $path - Parameter $param - AsJob;
111
+ $result = $job | Wait-Job
112
+
111
113
Assert-AreEqual " Succeeded" $result.Status
112
114
113
115
# Remove All VMs
Original file line number Diff line number Diff line change @@ -183,6 +183,7 @@ public void JobCopiesCmdletParameterSet()
183
183
Mock < ICommandRuntime > mock = new Mock < ICommandRuntime > ( ) ;
184
184
var cmdlet = new AzureParameterSetCmdlet ( ) ;
185
185
cmdlet . SetParameterSet ( "ParameterSetIsSet" ) ;
186
+ cmdlet . AsJobDynamicParameters = new RuntimeDefinedParameterDictionary ( ) ;
186
187
cmdlet . CommandRuntime = mock . Object ;
187
188
var job = cmdlet . ExecuteAsJob ( "Test parameter set job" ) as AzureLongRunningJob < AzureParameterSetCmdlet > ;
188
189
WaitForCompletion ( job , j =>
@@ -389,6 +390,10 @@ public override void ExecuteCmdlet()
389
390
{
390
391
throw new InvalidOperationException ( "Parameter set must be set" ) ;
391
392
}
393
+ if ( this . AsJobDynamicParameters == null )
394
+ {
395
+ throw new InvalidOperationException ( "Dynamic parameters must be set" ) ;
396
+ }
392
397
}
393
398
394
399
protected override void InitializeQosEvent ( )
Original file line number Diff line number Diff line change @@ -135,6 +135,8 @@ public object GetDynamicParameters()
135
135
}
136
136
}
137
137
138
+ RegisterDynamicParameters ( dynamicParameters ) ;
139
+
138
140
return dynamicParameters ;
139
141
}
140
142
@@ -172,7 +174,7 @@ protected Hashtable GetTemplateParameterObject(Hashtable templateParameterObject
172
174
}
173
175
174
176
// Load dynamic parameters
175
- IEnumerable < RuntimeDefinedParameter > parameters = PowerShellUtilities . GetUsedDynamicParameters ( dynamicParameters , MyInvocation ) ;
177
+ IEnumerable < RuntimeDefinedParameter > parameters = PowerShellUtilities . GetUsedDynamicParameters ( this . AsJobDynamicParameters , MyInvocation ) ;
176
178
if ( parameters . Any ( ) )
177
179
{
178
180
parameters . ForEach ( dp => prameterObject [ ( ( ParameterAttribute ) dp . Attributes [ 0 ] ) . HelpMessage ] = new Hashtable { { "value" , dp . Value } } ) ;
Original file line number Diff line number Diff line change @@ -248,6 +248,8 @@ object IDynamicParameters.GetDynamicParameters()
248
248
}
249
249
}
250
250
251
+ RegisterDynamicParameters ( dynamicParameters ) ;
252
+
251
253
return this . dynamicParameters ;
252
254
}
253
255
@@ -269,7 +271,7 @@ private JObject GetParameters()
269
271
}
270
272
271
273
// Load dynamic parameters
272
- var parameters = PowerShellUtilities . GetUsedDynamicParameters ( dynamicParameters , MyInvocation ) ;
274
+ var parameters = PowerShellUtilities . GetUsedDynamicParameters ( AsJobDynamicParameters , MyInvocation ) ;
273
275
if ( parameters . Count ( ) > 0 )
274
276
{
275
277
return MyInvocation . BoundParameters . ToJObjectWithValue ( parameters . Select ( p => p . Name ) ) ;
You can’t perform that action at this time.
0 commit comments