Skip to content

Commit 1fe92df

Browse files
Removing service registration for profiles (#8507)
1 parent 39bf60f commit 1fe92df

12 files changed

+40
-59
lines changed

src/WebJobs.Script/ScriptHostBuilderExtensions.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -296,10 +296,6 @@ public static IHostBuilder AddScriptHostCore(this IHostBuilder builder, ScriptAp
296296

297297
services.AddSingleton<IFileLoggingStatusManager, FileLoggingStatusManager>();
298298

299-
services.AddSingleton<IWorkerProfileManager, WorkerProfileManager>();
300-
301-
services.AddSingleton<IWorkerProfileConditionProvider, WorkerProfileConditionProvider>();
302-
303299
if (!applicationHostOptions.HasParentScope)
304300
{
305301
AddCommonServices(services);
@@ -351,8 +347,6 @@ public static void AddCommonServices(IServiceCollection services)
351347
services.TryAddSingleton<IWorkerConsoleLogSource, WorkerConsoleLogSource>();
352348
services.AddSingleton<IWorkerProcessFactory, DefaultWorkerProcessFactory>();
353349
services.AddSingleton<IRpcWorkerProcessFactory, RpcWorkerProcessFactory>();
354-
services.AddSingleton<IWorkerProfileManager, WorkerProfileManager>();
355-
services.AddSingleton<IWorkerProfileConditionProvider, WorkerProfileConditionProvider>();
356350
services.TryAddSingleton<IWebHostRpcWorkerChannelManager, WebHostRpcWorkerChannelManager>();
357351
services.TryAddSingleton<IDebugManager, DebugManager>();
358352
services.TryAddSingleton<IDebugStateProvider, DebugStateProvider>();

src/WebJobs.Script/Workers/Profiles/EnvironmentCondition.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public bool Evaluate()
5151
return false;
5252
}
5353

54-
_logger.LogDebug($"Evaluating EnvironmentCondition with value '{value}' and expression '{Expression}'");
54+
_logger.LogDebug($"Evaluating EnvironmentCondition with name: '{Name}', value: '{value}' and expression: '{Expression}'");
5555

5656
return _regex.IsMatch(value);
5757
}

src/WebJobs.Script/Workers/Profiles/HostPropertyCondition.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public bool Evaluate()
6868
return false;
6969
}
7070

71-
_logger.LogDebug($"Evaluating HostPropertyCondition with value: {value} and expression {Expression}");
71+
_logger.LogDebug($"Evaluating HostPropertyCondition with name: {Name}, value: {value} and expression {Expression}");
7272

7373
return _regex.IsMatch(value);
7474
}

src/WebJobs.Script/Workers/Profiles/WorkerProfileConditionProvider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ namespace Microsoft.Azure.WebJobs.Script.Workers
99
{
1010
internal sealed class WorkerProfileConditionProvider : IWorkerProfileConditionProvider
1111
{
12-
private readonly ILogger<WorkerProfileConditionProvider> _logger;
12+
private readonly ILogger _logger;
1313
private readonly IEnvironment _environment;
1414

15-
public WorkerProfileConditionProvider(ILogger<WorkerProfileConditionProvider> logger, IEnvironment environment)
15+
public WorkerProfileConditionProvider(ILogger logger, IEnvironment environment)
1616
{
1717
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
1818
_environment = environment ?? throw new ArgumentNullException(nameof(environment));

src/WebJobs.Script/Workers/Profiles/WorkerProfileManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ internal class WorkerProfileManager : IWorkerProfileManager
1919
private Dictionary<string, List<WorkerDescriptionProfile>> _profiles;
2020
private string _activeProfile;
2121

22-
public WorkerProfileManager(ILogger<WorkerProfileManager> logger, IEnumerable<IWorkerProfileConditionProvider> conditionProviders)
22+
public WorkerProfileManager(ILogger logger, IEnumerable<IWorkerProfileConditionProvider> conditionProviders)
2323
{
2424
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
2525
_conditionProviders = conditionProviders ?? throw new ArgumentNullException(nameof(conditionProviders));

src/WebJobs.Script/Workers/Rpc/Configuration/LanguageWorkerOptionsSetup.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ namespace Microsoft.Azure.WebJobs.Script.Workers.Rpc
1212
{
1313
internal class LanguageWorkerOptionsSetup : IConfigureOptions<LanguageWorkerOptions>
1414
{
15-
private readonly IWorkerProfileManager _profileConditionManager;
1615
private readonly IConfiguration _configuration;
1716
private readonly ILogger _logger;
1817
private readonly IEnvironment _environment;
@@ -21,15 +20,13 @@ internal class LanguageWorkerOptionsSetup : IConfigureOptions<LanguageWorkerOpti
2120
public LanguageWorkerOptionsSetup(IConfiguration configuration,
2221
ILoggerFactory loggerFactory,
2322
IEnvironment environment,
24-
IWorkerProfileManager profileConditionManager,
2523
IMetricsLogger metricsLogger)
2624
{
2725
if (loggerFactory is null)
2826
{
2927
throw new ArgumentNullException(nameof(loggerFactory));
3028
}
3129

32-
_profileConditionManager = profileConditionManager ?? throw new System.ArgumentNullException(nameof(profileConditionManager));
3330
_configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
3431
_environment = environment ?? throw new ArgumentNullException(nameof(environment));
3532
_metricsLogger = metricsLogger ?? throw new ArgumentNullException(nameof(metricsLogger));
@@ -47,9 +44,7 @@ public void Configure(LanguageWorkerOptions options)
4744
return;
4845
}
4946

50-
var configFactory = new RpcWorkerConfigFactory(_configuration, _logger, SystemRuntimeInformation.Instance,
51-
_profileConditionManager, _environment, _metricsLogger);
52-
47+
var configFactory = new RpcWorkerConfigFactory(_configuration, _logger, SystemRuntimeInformation.Instance, _environment, _metricsLogger);
5348
options.WorkerConfigs = configFactory.GetConfigs();
5449
}
5550
}

src/WebJobs.Script/Workers/Rpc/Configuration/RpcWorkerConfigFactory.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,12 @@ internal class RpcWorkerConfigFactory
3131
public RpcWorkerConfigFactory(IConfiguration config,
3232
ILogger logger,
3333
ISystemRuntimeInformation systemRuntimeInfo,
34-
IWorkerProfileManager profileManager,
3534
IEnvironment environment,
3635
IMetricsLogger metricsLogger)
3736
{
3837
_config = config ?? throw new ArgumentNullException(nameof(config));
3938
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
4039
_systemRuntimeInformation = systemRuntimeInfo ?? throw new ArgumentNullException(nameof(systemRuntimeInfo));
41-
_profileManager = profileManager ?? throw new ArgumentNullException(nameof(profileManager));
4240
_environment = environment ?? throw new ArgumentNullException(nameof(environment));
4341
_metricsLogger = metricsLogger;
4442
_workerRuntime = _environment.GetEnvironmentVariable(RpcWorkerConstants.FunctionWorkerRuntimeSettingName);
@@ -49,6 +47,11 @@ public RpcWorkerConfigFactory(IConfiguration config,
4947
{
5048
WorkersDirPath = workersDirectorySection.Value;
5149
}
50+
var conditionProviders = new List<IWorkerProfileConditionProvider>
51+
{
52+
new WorkerProfileConditionProvider(_logger, _environment)
53+
};
54+
_profileManager = new WorkerProfileManager(_logger, conditionProviders);
5255
}
5356

5457
public string WorkersDirPath { get; }

src/WebJobs.Script/Workers/Rpc/WebHostRpcWorkerChannelManager.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using System.Threading.Tasks;
1010
using Microsoft.Azure.WebJobs.Script.Diagnostics;
1111
using Microsoft.Azure.WebJobs.Script.Eventing;
12+
using Microsoft.Azure.WebJobs.Script.Workers.Profiles;
1213
using Microsoft.Extensions.Configuration;
1314
using Microsoft.Extensions.Logging;
1415
using Microsoft.Extensions.Options;
@@ -39,8 +40,7 @@ public WebHostRpcWorkerChannelManager(IScriptEventManager eventManager,
3940
IRpcWorkerChannelFactory rpcWorkerChannelFactory,
4041
IOptionsMonitor<ScriptApplicationHostOptions> applicationHostOptions,
4142
IMetricsLogger metricsLogger, IOptionsMonitor<LanguageWorkerOptions> languageWorkerOptions,
42-
IConfiguration config,
43-
IWorkerProfileManager profileManager)
43+
IConfiguration config)
4444
{
4545
_environment = environment ?? throw new ArgumentNullException(nameof(environment));
4646
_eventManager = eventManager;
@@ -51,8 +51,11 @@ public WebHostRpcWorkerChannelManager(IScriptEventManager eventManager,
5151
_applicationHostOptions = applicationHostOptions;
5252
_lanuageworkerOptions = languageWorkerOptions;
5353
_config = config ?? throw new ArgumentNullException(nameof(config));
54-
_profileManager = profileManager ?? throw new ArgumentNullException(nameof(profileManager));
55-
54+
var conditionProviders = new List<IWorkerProfileConditionProvider>
55+
{
56+
new WorkerProfileConditionProvider(_logger, _environment)
57+
};
58+
_profileManager = new WorkerProfileManager(_logger, conditionProviders);
5659
_shutdownStandbyWorkerChannels = ScheduleShutdownStandbyChannels;
5760
_shutdownStandbyWorkerChannels = _shutdownStandbyWorkerChannels.Debounce(milliseconds: 5000);
5861
}

test/WebJobs.Script.Tests/Configuration/LanguageWorkerOptionsSetupTests.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,12 @@ public void LanguageWorkerOptions_Expected_ListOfConfigs(string workerRuntime)
2424
var configurationBuilder = new ConfigurationBuilder()
2525
.Add(new ScriptEnvironmentVariablesConfigurationSource());
2626

27-
var profileConditionProvider = new WorkerProfileConditionProvider(new TestLogger<WorkerProfileConditionProvider>(), testEnvironment);
28-
var profileConditionManager = new WorkerProfileManager(new TestLogger<WorkerProfileManager>(), new[] { profileConditionProvider });
29-
3027
var configuration = configurationBuilder.Build();
3128
if (!string.IsNullOrEmpty(workerRuntime))
3229
{
3330
testEnvironment.SetEnvironmentVariable(RpcWorkerConstants.FunctionWorkerRuntimeSettingName, workerRuntime);
3431
}
35-
LanguageWorkerOptionsSetup setup = new LanguageWorkerOptionsSetup(configuration, NullLoggerFactory.Instance, testEnvironment, profileConditionManager, new TestMetricsLogger());
32+
LanguageWorkerOptionsSetup setup = new LanguageWorkerOptionsSetup(configuration, NullLoggerFactory.Instance, testEnvironment, new TestMetricsLogger());
3633
LanguageWorkerOptions options = new LanguageWorkerOptions();
3734
setup.Configure(options);
3835
if (string.IsNullOrEmpty(workerRuntime))

test/WebJobs.Script.Tests/Workers/Rpc/RpcWorkerConfigFactoryTests.cs

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,12 @@ namespace Microsoft.Azure.WebJobs.Script.Tests.Workers.Rpc
1717
{
1818
public class RpcWorkerConfigFactoryTests : IDisposable
1919
{
20-
private readonly WorkerProfileManager _profileManager;
2120
private TestSystemRuntimeInformation _testSysRuntimeInfo = new TestSystemRuntimeInformation();
2221
private TestEnvironment _testEnvironment;
2322

2423
public RpcWorkerConfigFactoryTests()
2524
{
2625
_testEnvironment = new TestEnvironment();
27-
28-
var profileConditionProvider = new WorkerProfileConditionProvider(new TestLogger<WorkerProfileConditionProvider>(), _testEnvironment);
29-
_profileManager = new WorkerProfileManager(new TestLogger<WorkerProfileManager>(), new[] { profileConditionProvider });
3026
}
3127

3228
public void Dispose()
@@ -40,7 +36,7 @@ public void DefaultLanguageWorkersDir()
4036
var expectedWorkersDir = Path.Combine(Path.GetDirectoryName(new Uri(typeof(RpcWorkerConfigFactory).Assembly.CodeBase).LocalPath), RpcWorkerConstants.DefaultWorkersDirectoryName);
4137
var config = new ConfigurationBuilder().Build();
4238
var testLogger = new TestLogger("test");
43-
var configFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _profileManager, _testEnvironment, new TestMetricsLogger());
39+
var configFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _testEnvironment, new TestMetricsLogger());
4440
Assert.Equal(expectedWorkersDir, configFactory.WorkersDirPath);
4541
}
4642

@@ -73,7 +69,7 @@ public void LanguageWorker_WorkersDir_Set()
7369
})
7470
.Build();
7571
var testLogger = new TestLogger("test");
76-
var configFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _profileManager, _testEnvironment, new TestMetricsLogger());
72+
var configFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _testEnvironment, new TestMetricsLogger());
7773
Assert.Equal(expectedWorkersDir, configFactory.WorkersDirPath);
7874
}
7975

@@ -89,7 +85,7 @@ public void LanguageWorker_WorkersDir_NotSet()
8985
var config = configBuilder.Build();
9086
var scriptSettingsManager = new ScriptSettingsManager(config);
9187
var testLogger = new TestLogger("test");
92-
var configFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _profileManager, _testEnvironment, new TestMetricsLogger());
88+
var configFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _testEnvironment, new TestMetricsLogger());
9389
Assert.Equal(expectedWorkersDir, configFactory.WorkersDirPath);
9490
}
9591

@@ -100,7 +96,7 @@ public void JavaPath_FromEnvVars()
10096
var config = configBuilder.Build();
10197
var scriptSettingsManager = new ScriptSettingsManager(config);
10298
var testLogger = new TestLogger("test");
103-
var configFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _profileManager, _testEnvironment, new TestMetricsLogger());
99+
var configFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _testEnvironment, new TestMetricsLogger());
104100
var workerConfigs = configFactory.GetConfigs();
105101
var javaPath = workerConfigs.Where(c => c.Description.Language.Equals("java", StringComparison.OrdinalIgnoreCase)).FirstOrDefault().Description.DefaultExecutablePath;
106102
Assert.DoesNotContain(@"%JAVA_HOME%", javaPath);
@@ -121,7 +117,7 @@ public void DefaultWorkerConfigs_Overrides_DefaultWorkerRuntimeVersion_AppSettin
121117
var testLogger = new TestLogger("test");
122118
using (var variables = new TestScopedSettings(scriptSettingsManager, testEnvVariables))
123119
{
124-
var configFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _profileManager, _testEnvironment, new TestMetricsLogger());
120+
var configFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _testEnvironment, new TestMetricsLogger());
125121
var workerConfigs = configFactory.GetConfigs();
126122
var pythonWorkerConfig = workerConfigs.Where(w => w.Description.Language.Equals("python", StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
127123
var powershellWorkerConfig = workerConfigs.Where(w => w.Description.Language.Equals("powershell", StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
@@ -143,7 +139,7 @@ public void DefaultWorkerConfigs_Overrides_VersionAppSetting()
143139
var config = configBuilder.Build();
144140
var scriptSettingsManager = new ScriptSettingsManager(config);
145141
var testLogger = new TestLogger("test");
146-
var configFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _profileManager, testEnvironment, new TestMetricsLogger());
142+
var configFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, testEnvironment, new TestMetricsLogger());
147143
var workerConfigs = configFactory.GetConfigs();
148144
var powershellWorkerConfig = workerConfigs.Where(w => w.Description.Language.Equals("powershell", StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
149145
Assert.Equal(1, workerConfigs.Count);
@@ -170,7 +166,7 @@ public void ShouldAddProvider_Returns_Expected(string workerLanguage, string wor
170166
}
171167
var config = new ConfigurationBuilder().Build();
172168
var testLogger = new TestLogger("test");
173-
RpcWorkerConfigFactory rpcWorkerConfigFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _profileManager, _testEnvironment, new TestMetricsLogger());
169+
RpcWorkerConfigFactory rpcWorkerConfigFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _testEnvironment, new TestMetricsLogger());
174170
_testEnvironment.SetEnvironmentVariable(RpcWorkerConstants.FunctionWorkerRuntimeSettingName, workerRuntime);
175171
Assert.Equal(expectedResult, rpcWorkerConfigFactory.ShouldAddWorkerConfig(workerLanguage));
176172
}
@@ -200,7 +196,7 @@ public void GetWorkerProcessCount_Tests(bool defaultWorkerConfig, bool setProces
200196
}
201197
var config = new ConfigurationBuilder().Build();
202198
var testLogger = new TestLogger("test");
203-
RpcWorkerConfigFactory rpcWorkerConfigFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _profileManager, _testEnvironment, new TestMetricsLogger());
199+
RpcWorkerConfigFactory rpcWorkerConfigFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _testEnvironment, new TestMetricsLogger());
204200
var result = rpcWorkerConfigFactory.GetWorkerProcessCount(workerConfig);
205201
if (defaultWorkerConfig)
206202
{
@@ -244,7 +240,7 @@ public void GetWorkerProcessCount_ThrowsException_Tests()
244240

245241
var config = new ConfigurationBuilder().Build();
246242
var testLogger = new TestLogger("test");
247-
RpcWorkerConfigFactory rpcWorkerConfigFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _profileManager, _testEnvironment, new TestMetricsLogger());
243+
RpcWorkerConfigFactory rpcWorkerConfigFactory = new RpcWorkerConfigFactory(config, testLogger, _testSysRuntimeInfo, _testEnvironment, new TestMetricsLogger());
248244
var resultEx1 = Assert.Throws<ArgumentOutOfRangeException>(() => rpcWorkerConfigFactory.GetWorkerProcessCount(workerConfig));
249245
Assert.Contains("ProcessCount must be greater than 0", resultEx1.Message);
250246

0 commit comments

Comments
 (0)