Skip to content

Commit 7685cbe

Browse files
committed
reducing ILogger messages in SecretManager
1 parent af16383 commit 7685cbe

File tree

6 files changed

+28
-51
lines changed

6 files changed

+28
-51
lines changed

src/WebJobs.Script.WebHost/GlobalSuppressions.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,6 @@
106106
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.DefaultSecretsRepositoryFactory.#Create(Microsoft.Azure.WebJobs.Script.Config.ScriptSettingsManager,Microsoft.Azure.WebJobs.Script.WebHost.WebHostSettings,Microsoft.Azure.WebJobs.Script.ScriptHostConfiguration)")]
107107
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1014:MarkAssembliesWithClsCompliant")]
108108
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.DefaultSecretManagerFactory.#Create(Microsoft.Azure.WebJobs.Script.Config.ScriptSettingsManager,Microsoft.Azure.WebJobs.Host.TraceWriter,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Azure.WebJobs.Script.WebHost.ISecretsRepository)")]
109-
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.SecretManager.#.ctor(Microsoft.Azure.WebJobs.Script.WebHost.ISecretsRepository,Microsoft.Azure.WebJobs.Script.WebHost.IKeyValueConverterFactory,Microsoft.Azure.WebJobs.Host.TraceWriter,Microsoft.Extensions.Logging.ILoggerFactory,System.Boolean)")]
110109
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "host", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.StandbyManager.#WarmUp(Microsoft.Azure.WebJobs.Script.ScriptHost)")]
111110
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "settings", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.WebHostResolver.#GetPerformanceManager(Microsoft.Azure.WebJobs.Script.WebHost.WebHostSettings)")]
112111
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", MessageId = "_specializationTimer", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.WebHostResolver.#Dispose()")]
@@ -126,4 +125,4 @@
126125
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.WebScriptHostManager.#.ctor(Microsoft.Azure.WebJobs.Script.ScriptHostConfiguration,Microsoft.Azure.WebJobs.Script.WebHost.ISecretManagerFactory,Microsoft.Azure.WebJobs.Script.Eventing.IScriptEventManager,Microsoft.Azure.WebJobs.Script.Config.ScriptSettingsManager,Microsoft.Azure.WebJobs.Script.WebHost.WebHostSettings,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Azure.WebJobs.Script.IScriptHostFactory,Microsoft.Azure.WebJobs.Script.WebHost.ISecretsRepositoryFactory,Microsoft.Azure.WebJobs.Script.Scale.HostPerformanceManager,System.Int32,System.Int32)")]
127126
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", MessageId = "_syncTimer", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.WebScriptHostManager.#Dispose(System.Boolean)")]
128127
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "config", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.Extensions.FunctionMetadataExtensions.#GetTestData(System.String,Microsoft.Azure.WebJobs.Script.ScriptHostConfiguration)")]
129-
128+
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "Microsoft.Azure.WebJobs.Script.WebHost.SecretManager.#.ctor(Microsoft.Azure.WebJobs.Script.WebHost.ISecretsRepository,Microsoft.Azure.WebJobs.Script.WebHost.IKeyValueConverterFactory,Microsoft.Azure.WebJobs.Host.TraceWriter,System.Boolean)")]
Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the MIT License. See License.txt in the project root for license information.
33

4-
using System;
5-
using System.Collections.Generic;
6-
using System.Linq;
7-
using System.Text;
8-
using System.Threading.Tasks;
94
using Microsoft.Azure.WebJobs.Host;
105
using Microsoft.Azure.WebJobs.Script.Config;
116
using Microsoft.Extensions.Logging;
@@ -15,6 +10,6 @@ namespace Microsoft.Azure.WebJobs.Script.WebHost
1510
public sealed class DefaultSecretManagerFactory : ISecretManagerFactory
1611
{
1712
public ISecretManager Create(ScriptSettingsManager settingsManager, TraceWriter traceWriter, ILoggerFactory loggerFactory, ISecretsRepository secretsRepository)
18-
=> new SecretManager(settingsManager, secretsRepository, traceWriter, loggerFactory);
13+
=> new SecretManager(settingsManager, secretsRepository, traceWriter);
1914
}
2015
}

src/WebJobs.Script.WebHost/Security/SecretManager.cs

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ public class SecretManager : IDisposable, ISecretManager
2424
private readonly ConcurrentDictionary<string, Dictionary<string, string>> _secretsMap = new ConcurrentDictionary<string, Dictionary<string, string>>();
2525
private readonly IKeyValueConverterFactory _keyValueConverterFactory;
2626
private readonly TraceWriter _traceWriter;
27-
private readonly ILogger _logger;
2827
private readonly ISecretsRepository _repository;
2928
private HostSecretsInfo _hostSecrets;
3029
private SemaphoreSlim _hostSecretsLock = new SemaphoreSlim(1, 1);
@@ -34,18 +33,17 @@ public SecretManager()
3433
{
3534
}
3635

37-
public SecretManager(ScriptSettingsManager settingsManager, ISecretsRepository repository, TraceWriter traceWriter, ILoggerFactory loggerFactory, bool createHostSecretsIfMissing = false)
38-
: this(repository, new DefaultKeyValueConverterFactory(settingsManager), traceWriter, loggerFactory, createHostSecretsIfMissing)
36+
public SecretManager(ScriptSettingsManager settingsManager, ISecretsRepository repository, TraceWriter traceWriter, bool createHostSecretsIfMissing = false)
37+
: this(repository, new DefaultKeyValueConverterFactory(settingsManager), traceWriter, createHostSecretsIfMissing)
3938
{
4039
}
4140

42-
public SecretManager(ISecretsRepository repository, IKeyValueConverterFactory keyValueConverterFactory, TraceWriter traceWriter, ILoggerFactory loggerFactory, bool createHostSecretsIfMissing = false)
41+
public SecretManager(ISecretsRepository repository, IKeyValueConverterFactory keyValueConverterFactory, TraceWriter traceWriter, bool createHostSecretsIfMissing = false)
4342
{
4443
_repository = repository;
4544
_keyValueConverterFactory = keyValueConverterFactory;
4645
_traceWriter = traceWriter;
4746
_repository.SecretsChanged += OnSecretsChanged;
48-
_logger = loggerFactory?.CreateLogger(ScriptConstants.LogCategoryKeys);
4947

5048
if (createHostSecretsIfMissing)
5149
{
@@ -55,7 +53,6 @@ public SecretManager(ISecretsRepository repository, IKeyValueConverterFactory ke
5553

5654
string message = string.Format(Resources.TraceSecretsRepo, repository.ToString());
5755
_traceWriter.Info(message);
58-
_logger?.LogInformation(message);
5956
}
6057

6158
public void Dispose()
@@ -88,7 +85,6 @@ public async virtual Task<HostSecretsInfo> GetHostSecretsAsync()
8885
{
8986
// host secrets do not yet exist so generate them
9087
_traceWriter.Verbose(Resources.TraceHostSecretGeneration);
91-
_logger?.LogDebug(Resources.TraceHostSecretGeneration);
9288
hostSecrets = GenerateHostSecrets();
9389
await PersistSecretsAsync(hostSecrets);
9490
}
@@ -102,7 +98,6 @@ public async virtual Task<HostSecretsInfo> GetHostSecretsAsync()
10298
catch (CryptographicException)
10399
{
104100
_traceWriter.Verbose(Resources.TraceNonDecryptedHostSecretRefresh);
105-
_logger?.LogDebug(Resources.TraceNonDecryptedHostSecretRefresh);
106101
await PersistSecretsAsync(hostSecrets, null, true);
107102
hostSecrets = GenerateHostSecrets(hostSecrets);
108103
await RefreshSecretsAsync(hostSecrets);
@@ -113,7 +108,6 @@ public async virtual Task<HostSecretsInfo> GetHostSecretsAsync()
113108
if (hostSecrets.HasStaleKeys)
114109
{
115110
_traceWriter.Verbose(Resources.TraceStaleHostSecretRefresh);
116-
_logger?.LogDebug(Resources.TraceStaleHostSecretRefresh);
117111
await RefreshSecretsAsync(hostSecrets);
118112
}
119113

@@ -131,7 +125,6 @@ public async virtual Task<HostSecretsInfo> GetHostSecretsAsync()
131125
}
132126

133127
_traceWriter.Info(Resources.TraceHostKeysLoaded);
134-
_logger?.LogInformation(Resources.TraceHostKeysLoaded);
135128

136129
return _hostSecrets;
137130
}
@@ -158,7 +151,6 @@ public async virtual Task<IDictionary<string, string>> GetFunctionSecretsAsync(s
158151
// no secrets exist for this function so generate them
159152
string messageGeneratoin = string.Format(Resources.TraceFunctionSecretGeneration, functionName);
160153
_traceWriter.Info(messageGeneratoin, traceProperties);
161-
_logger?.LogInformation(messageGeneratoin);
162154
secrets = GenerateFunctionSecrets();
163155

164156
await PersistSecretsAsync(secrets, functionName);
@@ -173,7 +165,6 @@ public async virtual Task<IDictionary<string, string>> GetFunctionSecretsAsync(s
173165
{
174166
string messageNonDecrypted = string.Format(Resources.TraceNonDecryptedFunctionSecretRefresh, functionName);
175167
_traceWriter.Info(messageNonDecrypted, traceProperties);
176-
_logger?.LogInformation(messageNonDecrypted);
177168
await PersistSecretsAsync(secrets, functionName, true);
178169
secrets = GenerateFunctionSecrets(secrets);
179170
await RefreshSecretsAsync(secrets, functionName);
@@ -183,7 +174,6 @@ public async virtual Task<IDictionary<string, string>> GetFunctionSecretsAsync(s
183174
{
184175
string messageStaleFunction = string.Format(Resources.TraceStaleFunctionSecretRefresh, functionName);
185176
_traceWriter.Info(messageStaleFunction);
186-
_logger?.LogInformation(messageStaleFunction);
187177
await RefreshSecretsAsync(secrets, functionName);
188178
}
189179

@@ -205,7 +195,6 @@ public async virtual Task<IDictionary<string, string>> GetFunctionSecretsAsync(s
205195

206196
string messageLoaded = string.Format(Resources.TraceFunctionsKeysLoaded, functionName);
207197
_traceWriter.Info(messageLoaded);
208-
_logger?.LogInformation(messageLoaded);
209198

210199
return functionSecrets;
211200
}
@@ -232,7 +221,6 @@ public async Task<KeyOperationResult> AddOrUpdateFunctionSecretAsync(string secr
232221

233222
string message = string.Format(Resources.TraceAddOrUpdateFunctionSecret, secretsType, secretName, keyScope ?? "host", result.Result);
234223
_traceWriter.Info(message);
235-
_logger?.LogInformation(message);
236224

237225
return result;
238226
}
@@ -268,7 +256,6 @@ public async Task<KeyOperationResult> SetMasterKeyAsync(string value = null)
268256

269257
string message = string.Format(Resources.TraceMasterKeyCreatedOrUpdated, result);
270258
_traceWriter.Info(message);
271-
_logger?.LogInformation(message);
272259

273260
return new KeyOperationResult(masterKey, result);
274261
}
@@ -289,8 +276,6 @@ public async Task<bool> DeleteSecretAsync(string secretName, string keyScope, Sc
289276

290277
string message = string.Format(Resources.TraceSecretDeleted, target, secretName);
291278
_traceWriter.Info(message);
292-
293-
_logger?.LogInformation(message);
294279
}
295280

296281
return deleted;
@@ -477,7 +462,6 @@ private async Task PersistSecretsAsync<T>(T secrets, string keyScope = null, boo
477462
string message = string.Format(Resources.ErrorTooManySecretBackups, ScriptConstants.MaximumSecretBackupCount, string.IsNullOrEmpty(keyScope) ? "host" : keyScope, await AnalizeSnapshots<T>(secretBackups));
478463
TraceEvent traceEvent = new TraceEvent(TraceLevel.Verbose, message);
479464
_traceWriter.Info(message);
480-
_logger?.LogInformation(message);
481465
throw new InvalidOperationException(message);
482466
}
483467
await _repository.WriteSnapshotAsync(secretsType, keyScope, ScriptSecretSerializer.SerializeSecrets<T>(secrets));
@@ -489,7 +473,6 @@ private async Task PersistSecretsAsync<T>(T secrets, string keyScope = null, boo
489473
secrets.DecryptionKeyId = hashes;
490474
string message = $"Encription keys hashes: {hashes}";
491475
_traceWriter.Info(message);
492-
_logger?.LogInformation(message);
493476

494477
await _repository.WriteAsync(secretsType, keyScope, ScriptSecretSerializer.SerializeSecrets<T>(secrets));
495478
}

test/WebJobs.Script.Tests.Integration/FunctionGeneratorEndToEndTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ internal async Task GeneratedMethods_WithOutParams_DoNotCauseDeadlocks(string fi
112112
WebHostSettings webHostSettings = new WebHostSettings();
113113
webHostSettings.SecretsPath = secretsPath;
114114
var eventManagerMock = new Mock<IScriptEventManager>();
115-
var secretManager = new SecretManager(SettingsManager, repository, NullTraceWriter.Instance, null);
115+
var secretManager = new SecretManager(SettingsManager, repository, NullTraceWriter.Instance);
116116
var loggerProvider = new TestLoggerProvider();
117117
var loggerFactory = new LoggerFactory();
118118
loggerFactory.AddProvider(loggerProvider);

test/WebJobs.Script.Tests.Integration/Host/WebScriptHostManagerTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public WebScriptHostManagerTests(WebScriptHostManagerTests.Fixture fixture)
5555
};
5656

5757
var secretsRepository = new FileSystemSecretsRepository(_secretsDirectory.Path);
58-
SecretManager secretManager = new SecretManager(_settingsManager, secretsRepository, NullTraceWriter.Instance, null);
58+
SecretManager secretManager = new SecretManager(_settingsManager, secretsRepository, NullTraceWriter.Instance);
5959
WebHostSettings webHostSettings = new WebHostSettings
6060
{
6161
SecretsPath = _secretsDirectory.Path
@@ -147,7 +147,7 @@ public async Task EmptyHost_StartsSuccessfully()
147147
};
148148
string connectionString = AmbientConnectionStringProvider.Instance.GetConnectionString(ConnectionStringNames.Storage);
149149
ISecretsRepository repository = new BlobStorageSecretsRepository(secretsDir, connectionString, "EmptyHost_StartsSuccessfully");
150-
ISecretManager secretManager = new SecretManager(_settingsManager, repository, NullTraceWriter.Instance, null);
150+
ISecretManager secretManager = new SecretManager(_settingsManager, repository, NullTraceWriter.Instance);
151151
WebHostSettings webHostSettings = new WebHostSettings();
152152
webHostSettings.SecretsPath = _secretsDirectory.Path;
153153
var mockEventManager = new Mock<IScriptEventManager>();
@@ -375,7 +375,7 @@ public Fixture()
375375
};
376376

377377
ISecretsRepository repository = new FileSystemSecretsRepository(SecretsPath);
378-
ISecretManager secretManager = new SecretManager(_settingsManager, repository, NullTraceWriter.Instance, null);
378+
ISecretManager secretManager = new SecretManager(_settingsManager, repository, NullTraceWriter.Instance);
379379
WebHostSettings webHostSettings = new WebHostSettings();
380380
webHostSettings.SecretsPath = SecretsPath;
381381

0 commit comments

Comments
 (0)