Skip to content

Commit 915f4f4

Browse files
committed
improved logging in GeneratePortNumberMacro
1 parent 2c6607a commit 915f4f4

30 files changed

+272
-19
lines changed

src/Microsoft.TemplateEngine.Orchestrator.RunnableProjects/LocalizableStrings.Designer.cs

Lines changed: 27 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Microsoft.TemplateEngine.Orchestrator.RunnableProjects/LocalizableStrings.resx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,15 @@ Details: {1}</value>
199199
<value>Unrecognized evaluator: '{0}'.</value>
200200
<comment>{0} - invalid evaluator value</comment>
201201
</data>
202+
<data name="GeneratePortNumberConfig_Warning_InvalidHighBound" xml:space="preserve">
203+
<value>The high port bound '{0}' is greater than the maximum allowed, '{1}' will be used instead.</value>
204+
</data>
205+
<data name="GeneratePortNumberConfig_Warning_InvalidLowBound" xml:space="preserve">
206+
<value>The low port bound '{0}' is less than the minimum allowed, '{1}' will be used instead.</value>
207+
</data>
208+
<data name="GeneratePortNumberConfig_Warning_InvalidLowHighBound" xml:space="preserve">
209+
<value>The low port bound '{0}' is greater the high port bound '{1}', the default range [{2}-{3}] will be used instead.</value>
210+
</data>
202211
<data name="JoinMacroConfig_Exception_ValuePropertyIsEmpty" xml:space="preserve">
203212
<value>Generated symbol '{0}': array '{1}' should contain JSON objects with property non-empty '{2}' when '{3}' is '{4}'.</value>
204213
<comment>{0} - name of generated symbol, {1} - the invalid property name; {2}, {3}, {4} - the property names and values.</comment>

src/Microsoft.TemplateEngine.Orchestrator.RunnableProjects/Macros/BaseGeneratedSymbolMacro.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@ public IMacroConfig CreateConfig(IEngineEnvironmentSettings environmentSettings,
2222
{
2323
throw new InvalidCastException($"Couldn't cast the {nameof(rawConfig)} as {nameof(IGeneratedSymbolConfig)}.");
2424
}
25-
return CreateConfig(deferredConfig);
25+
return CreateConfig(environmentSettings, deferredConfig);
2626
}
2727

2828
public void Evaluate(IEngineEnvironmentSettings environmentSettings, IVariableCollection vars, IGeneratedSymbolConfig deferredConfig)
2929
{
30-
Evaluate(environmentSettings, vars, CreateConfig(deferredConfig));
30+
Evaluate(environmentSettings, vars, CreateConfig(environmentSettings, deferredConfig));
3131
}
3232

33-
protected abstract T CreateConfig(IGeneratedSymbolConfig deferredConfig);
33+
protected abstract T CreateConfig(IEngineEnvironmentSettings environmentSettings, IGeneratedSymbolConfig deferredConfig);
3434
}
3535

3636
/// <summary>
@@ -49,6 +49,6 @@ internal abstract class BaseNondeterministicMacro<T> : BaseGeneratedSymbolMacro<
4949
/// <typeparam name="T">The macro config.</typeparam>
5050
internal abstract class BaseNondeterministicGenSymMacro<T> : BaseNondeterministicMacro<T>, IDeterministicModeMacro<IGeneratedSymbolConfig> where T : BaseMacroConfig, IMacroConfig
5151
{
52-
public void EvaluateDeterministically(IEngineEnvironmentSettings environmentSettings, IVariableCollection variables, IGeneratedSymbolConfig config) => EvaluateDeterministically(environmentSettings, variables, CreateConfig(config));
52+
public void EvaluateDeterministically(IEngineEnvironmentSettings environmentSettings, IVariableCollection variables, IGeneratedSymbolConfig config) => EvaluateDeterministically(environmentSettings, variables, CreateConfig(environmentSettings, config));
5353
}
5454
}

src/Microsoft.TemplateEngine.Orchestrator.RunnableProjects/Macros/CaseChangeMacro.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ public override void Evaluate(IEngineEnvironmentSettings environmentSettings, IV
3434
environmentSettings.Host.Logger.LogDebug("[{macro}]: Assigned variable '{var}' to '{value}'.", nameof(CaseChangeMacro), config.VariableName, value);
3535
}
3636

37-
protected override CaseChangeMacroConfig CreateConfig(IGeneratedSymbolConfig deferredConfig) => new(this, deferredConfig);
37+
protected override CaseChangeMacroConfig CreateConfig(IEngineEnvironmentSettings environmentSettings, IGeneratedSymbolConfig deferredConfig) => new(this, deferredConfig);
3838
}
3939
}

src/Microsoft.TemplateEngine.Orchestrator.RunnableProjects/Macros/CoalesceMacro.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,6 @@ public override void Evaluate(IEngineEnvironmentSettings environmentSettings, IV
3939
environmentSettings.Host.Logger.LogDebug("[{macro}]: Variable '{var}' was not assigned, neither source nor fallback variable was found.", nameof(CoalesceMacro), config.VariableName);
4040
}
4141

42-
protected override CoalesceMacroConfig CreateConfig(IGeneratedSymbolConfig deferredConfig) => new(this, deferredConfig);
42+
protected override CoalesceMacroConfig CreateConfig(IEngineEnvironmentSettings environmentSettings, IGeneratedSymbolConfig deferredConfig) => new(this, deferredConfig);
4343
}
4444
}

src/Microsoft.TemplateEngine.Orchestrator.RunnableProjects/Macros/ConstantMacro.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ public override void Evaluate(IEngineEnvironmentSettings environmentSettings, IV
2121
environmentSettings.Host.Logger.LogDebug("[{macro}]: Variable '{var}' was assigned to value '{value}'.", nameof(ConstantMacro), config.VariableName, config.Value);
2222
}
2323

24-
protected override ConstantMacroConfig CreateConfig(IGeneratedSymbolConfig deferredConfig) => new(this, deferredConfig);
24+
protected override ConstantMacroConfig CreateConfig(IEngineEnvironmentSettings environmentSettings, IGeneratedSymbolConfig deferredConfig) => new(this, deferredConfig);
2525
}
2626
}

src/Microsoft.TemplateEngine.Orchestrator.RunnableProjects/Macros/GeneratePortNumberConfig.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
// Licensed to the .NET Foundation under one or more agreements.
22
// The .NET Foundation licenses this file to you under the MIT license.
33

4+
using System;
45
using System.Collections.Concurrent;
56
using System.Collections.Generic;
67
using System.Linq;
78
using System.Net;
89
using System.Net.Sockets;
10+
using Microsoft.Extensions.Logging;
911
using Microsoft.TemplateEngine.Orchestrator.RunnableProjects.Abstractions;
1012

1113
namespace Microsoft.TemplateEngine.Orchestrator.RunnableProjects.Macros
@@ -45,29 +47,47 @@ internal class GeneratePortNumberConfig : BaseMacroConfig<GeneratePortNumberMacr
4547
internal GeneratePortNumberConfig(GeneratePortNumberMacro macro, string variableName, string? dataType, int fallback, int low, int high)
4648
: base(macro, variableName, dataType)
4749
{
50+
if (low < LowPortDefault)
51+
{
52+
throw new ArgumentException($"{nameof(low)} should be greater than {LowPortDefault}.", nameof(low));
53+
}
54+
55+
if (high > HighPortDefault)
56+
{
57+
throw new ArgumentException($"{nameof(high)} should be less than {HighPortDefault}.", nameof(high));
58+
}
59+
60+
if (low > high)
61+
{
62+
throw new ArgumentException($"{nameof(low)} should be greater than {nameof(high)}.", nameof(low));
63+
}
64+
4865
Fallback = fallback;
4966
Low = low;
5067
High = high;
5168
Port = AllocatePort(low, high, fallback);
5269
}
5370

54-
internal GeneratePortNumberConfig(GeneratePortNumberMacro macro, IGeneratedSymbolConfig generatedSymbolConfig)
71+
internal GeneratePortNumberConfig(ILogger logger, GeneratePortNumberMacro macro, IGeneratedSymbolConfig generatedSymbolConfig)
5572
: base(macro, generatedSymbolConfig.VariableName, generatedSymbolConfig.DataType)
5673
{
5774
int low = GetOptionalParameterValue(generatedSymbolConfig, "low", ConvertJTokenToInt, LowPortDefault);
5875
int high = GetOptionalParameterValue(generatedSymbolConfig, "high", ConvertJTokenToInt, HighPortDefault);
5976
if (low < LowPortDefault)
6077
{
78+
logger.LogWarning(LocalizableStrings.GeneratePortNumberConfig_Warning_InvalidLowBound, low, LowPortDefault);
6179
low = LowPortDefault;
6280
}
6381

6482
if (high > HighPortDefault)
6583
{
84+
logger.LogWarning(LocalizableStrings.GeneratePortNumberConfig_Warning_InvalidHighBound, high, HighPortDefault);
6685
high = HighPortDefault;
6786
}
6887

6988
if (low > high)
7089
{
90+
logger.LogWarning(LocalizableStrings.GeneratePortNumberConfig_Warning_InvalidLowHighBound, low, high, LowPortDefault, HighPortDefault);
7191
low = LowPortDefault;
7292
high = HighPortDefault;
7393
}

src/Microsoft.TemplateEngine.Orchestrator.RunnableProjects/Macros/GeneratePortNumberMacro.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public override void EvaluateDeterministically(IEngineEnvironmentSettings enviro
2727
environmentSettings.Host.Logger.LogDebug("[{macro}]: Variable '{var}' was assigned to value '{value}' in deterministic mode.", nameof(GeneratePortNumberMacro), config.VariableName, config.Low);
2828
}
2929

30-
protected override GeneratePortNumberConfig CreateConfig(IGeneratedSymbolConfig deferredConfig) => new(this, deferredConfig);
30+
protected override GeneratePortNumberConfig CreateConfig(IEngineEnvironmentSettings environmentSettings, IGeneratedSymbolConfig deferredConfig)
31+
=> new(environmentSettings.Host.Logger, this, deferredConfig);
3132
}
3233
}

src/Microsoft.TemplateEngine.Orchestrator.RunnableProjects/Macros/GuidMacro.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public override void EvaluateDeterministically(IEngineEnvironmentSettings enviro
2727
EvaluateInternal(DeterministicModeValue, environmentSettings, variables, config);
2828
}
2929

30-
protected override GuidMacroConfig CreateConfig(IGeneratedSymbolConfig deferredConfig) => new(this, deferredConfig);
30+
protected override GuidMacroConfig CreateConfig(IEngineEnvironmentSettings environmentSettings, IGeneratedSymbolConfig deferredConfig) => new(this, deferredConfig);
3131

3232
private void EvaluateInternal(Guid g, IEngineEnvironmentSettings environmentSettings, IVariableCollection vars, GuidMacroConfig config)
3333
{

src/Microsoft.TemplateEngine.Orchestrator.RunnableProjects/Macros/JoinMacro.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,6 @@ public override void Evaluate(IEngineEnvironmentSettings environmentSettings, IV
5252
environmentSettings.Host.Logger.LogDebug("[{macro}]: Variable '{var}' was assigned to value '{value}'.", nameof(JoinMacro), config.VariableName, result);
5353
}
5454

55-
protected override JoinMacroConfig CreateConfig(IGeneratedSymbolConfig deferredConfig) => new(this, deferredConfig);
55+
protected override JoinMacroConfig CreateConfig(IEngineEnvironmentSettings environmentSettings, IGeneratedSymbolConfig deferredConfig) => new(this, deferredConfig);
5656
}
5757
}

0 commit comments

Comments
 (0)