Skip to content

Commit c11ec70

Browse files
dsc bugifx
1 parent bdf05e9 commit c11ec70

File tree

5 files changed

+33
-10
lines changed

5 files changed

+33
-10
lines changed

src/ResourceManager/Automation/Commands.Automation/Cmdlet/StartAzureAutomationDscCompilationJob.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,23 @@
1212
// limitations under the License.
1313
// ----------------------------------------------------------------------------------
1414

15+
using System;
1516
using System.Collections;
1617
using System.Collections.Generic;
18+
using System.Globalization;
1719
using System.Management.Automation;
1820
using System.Security.Permissions;
1921
using Microsoft.Azure.Commands.Automation.Common;
2022
using Microsoft.Azure.Commands.Automation.Model;
23+
using Microsoft.Azure.Commands.Automation.Properties;
2124
using Microsoft.WindowsAzure.Commands.Utilities.Common;
2225

2326
namespace Microsoft.Azure.Commands.Automation.Cmdlet
2427
{
2528
/// <summary>
2629
/// starts azure automation compilation job
2730
/// </summary>
28-
[Cmdlet(VerbsLifecycle.Start, "AzureRmAutomationDscCompilationJob")]
31+
[Cmdlet(VerbsLifecycle.Start, "AzureRMAutomationDscCompilationJob")]
2932
[OutputType(typeof(CompilationJob))]
3033
public class StartAzureAutomationDscCompilationJob : AzureAutomationBaseCmdlet
3134
{
@@ -56,11 +59,15 @@ protected override void AutomationProcessRecord()
5659
{
5760
CompilationJob job = null;
5861

59-
if (this.ConfigurationData != null)
62+
if (this.Parameters != null && this.Parameters.Contains("ConfigurationData"))
6063
{
61-
Parameters.Add("ConfigurationData", this.ConfigurationData);
64+
throw new ArgumentException(
65+
string.Format(
66+
CultureInfo.CurrentCulture,
67+
Resources.ConfigurationDataShouldNotBeInJobParameters, "-ConfigurationData"));
6268
}
63-
job = this.AutomationClient.StartCompilationJob(this.ResourceGroupName, this.AutomationAccountName, this.ConfigurationName, this.Parameters);
69+
70+
job = this.AutomationClient.StartCompilationJob(this.ResourceGroupName, this.AutomationAccountName, this.ConfigurationName, this.Parameters, this.ConfigurationData);
6471

6572
this.WriteObject(job);
6673
}

src/ResourceManager/Automation/Commands.Automation/Common/AutomationClientDSC.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1015,7 +1015,7 @@ public Model.CompilationJob GetCompilationJob(string resourceGroupName, string a
10151015
}
10161016
}
10171017

1018-
public Model.CompilationJob StartCompilationJob(string resourceGroupName, string automationAccountName, string configurationName, IDictionary parameters)
1018+
public CompilationJob StartCompilationJob(string resourceGroupName, string automationAccountName, string configurationName, IDictionary parameters, IDictionary configurationData)
10191019
{
10201020
using (var request = new RequestSettings(this.automationManagementClient))
10211021
{
@@ -1027,7 +1027,7 @@ public Model.CompilationJob StartCompilationJob(string resourceGroupName, string
10271027
{
10281028
Name = configurationName
10291029
},
1030-
Parameters = this.ProcessConfigurationParameters(resourceGroupName, automationAccountName, configurationName, parameters)
1030+
Parameters = this.ProcessConfigurationParameters(parameters, configurationData)
10311031
}
10321032
};
10331033

@@ -1477,15 +1477,19 @@ private string FormatDateTime(DateTimeOffset dateTime)
14771477
return string.Format(CultureInfo.InvariantCulture, "{0:O}", dateTime.ToUniversalTime());
14781478
}
14791479

1480-
private IDictionary<string, string> ProcessConfigurationParameters(string resourceGroupName, string automationAccountName, string configurationName, IDictionary parameters)
1480+
private IDictionary<string, string> ProcessConfigurationParameters(IDictionary parameters, IDictionary configurationData)
14811481
{
14821482
parameters = parameters ?? new Dictionary<string, string>();
14831483
var filteredParameters = new Dictionary<string,string>();
1484+
if (configurationData != null)
1485+
{
1486+
filteredParameters.Add("ConfigurationData", JsonConvert.SerializeObject(configurationData));
1487+
}
14841488
foreach (var key in parameters.Keys)
14851489
{
14861490
try
14871491
{
1488-
filteredParameters.Add(key.ToString(), Newtonsoft.Json.JsonConvert.SerializeObject(parameters[key]));
1492+
filteredParameters.Add(key.ToString(), JsonConvert.SerializeObject(parameters[key]));
14891493
}
14901494
catch (JsonSerializationException)
14911495
{

src/ResourceManager/Automation/Commands.Automation/Common/IAutomationClient.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public interface IAutomationClient
4949

5050
IEnumerable<CompilationJob> ListCompilationJobs(string resourceGroupName, string automationAccountName, DateTimeOffset? startTime, DateTimeOffset? endTime, string jobStatus);
5151

52-
CompilationJob StartCompilationJob(string resourceGroupName, string automationAccountName, string configurationName, IDictionary parameters);
52+
CompilationJob StartCompilationJob(string resourceGroupName, string automationAccountName, string configurationName, IDictionary parameters, IDictionary configurationData);
5353

5454
IEnumerable<JobStream> GetDscCompilationJobStream(string resourceGroupName, string automationAccountname, Guid jobId, DateTimeOffset? time, string streamType);
5555
#endregion

src/ResourceManager/Automation/Commands.Automation/Properties/Resources.Designer.cs

Lines changed: 10 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/ResourceManager/Automation/Commands.Automation/Properties/Resources.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,4 +418,7 @@
418418
<value>Invalid node configuration name. Please specify in the format &lt;config name&gt;.&lt;node name&gt;</value>
419419
<comment>Automation</comment>
420420
</data>
421+
<data name="ConfigurationDataShouldNotBeInJobParameters" xml:space="preserve">
422+
<value>ConfigurationData cannot be part of the job parameters. You can specify the ConfigurationData using the {0} switch</value>
423+
</data>
421424
</root>

0 commit comments

Comments
 (0)