44using System ;
55using System . Threading . Tasks ;
66using Microsoft . Extensions . Logging ;
7+ using Microsoft . Extensions . Logging . Abstractions ;
78using NuGet . Services . KeyVault ;
89
910namespace NuGetGallery . FunctionalTests
@@ -12,9 +13,15 @@ class EnvVarWrapperSecretReader : ISecretReader
1213 {
1314 private readonly Lazy < ISecretReader > _secretReader ;
1415
15- public EnvVarWrapperSecretReader ( ISecretReaderFactory factory ) => _secretReader = new Lazy < ISecretReader > ( factory . CreateSecretReader ) ;
16- public Task < string > GetSecretAsync ( string secretName ) => GetSecretAsync ( secretName , logger : null ) ;
17- public Task < ISecret > GetSecretObjectAsync ( string secretName ) => GetSecretObjectAsync ( secretName , logger : null ) ;
16+ public EnvVarWrapperSecretReader ( ISecretReaderFactory factory )
17+ {
18+ _secretReader = new Lazy < ISecretReader > ( factory . CreateSecretReader ) ;
19+ }
20+
21+ public Task < string > GetSecretAsync ( string secretName )
22+ {
23+ return GetSecretAsync ( secretName , NullLogger . Instance ) ;
24+ }
1825
1926 public Task < string > GetSecretAsync ( string secretName , ILogger logger )
2027 {
@@ -26,6 +33,26 @@ public Task<string> GetSecretAsync(string secretName, ILogger logger)
2633 return _secretReader . Value . GetSecretAsync ( secretName , logger ) ;
2734 }
2835
36+ public string GetSecret ( string secretName )
37+ {
38+ return GetSecret ( secretName , NullLogger . Instance ) ;
39+ }
40+
41+ public string GetSecret ( string secretName , ILogger logger )
42+ {
43+ if ( TryGetFromEnvironmentVariable ( secretName , logger ) is string envVarValue )
44+ {
45+ return envVarValue ;
46+ }
47+
48+ return _secretReader . Value . GetSecret ( secretName , logger ) ;
49+ }
50+
51+ public Task < ISecret > GetSecretObjectAsync ( string secretName )
52+ {
53+ return GetSecretObjectAsync ( secretName , NullLogger . Instance ) ;
54+ }
55+
2956 public Task < ISecret > GetSecretObjectAsync ( string secretName , ILogger logger )
3057 {
3158 if ( TryGetFromEnvironmentVariable ( secretName , logger ) is string envVarValue )
@@ -37,7 +64,23 @@ public Task<ISecret> GetSecretObjectAsync(string secretName, ILogger logger)
3764 return _secretReader . Value . GetSecretObjectAsync ( secretName , logger ) ;
3865 }
3966
40- private string TryGetFromEnvironmentVariable ( string secretName , ILogger logger )
67+ public ISecret GetSecretObject ( string secretName )
68+ {
69+ return GetSecretObject ( secretName , NullLogger . Instance ) ;
70+ }
71+
72+ public ISecret GetSecretObject ( string secretName , ILogger logger )
73+ {
74+ if ( TryGetFromEnvironmentVariable ( secretName , logger ) is string envVarValue )
75+ {
76+ ISecret result = new KeyVaultSecret ( secretName , envVarValue , null ) ;
77+ return result ;
78+ }
79+
80+ return _secretReader . Value . GetSecretObject ( secretName , logger ) ;
81+ }
82+
83+ private static string TryGetFromEnvironmentVariable ( string secretName , ILogger logger )
4184 {
4285 var message = $ "Source of secret '{ secretName } ': ";
4386 var envVarValue = Environment . GetEnvironmentVariable ( secretName ) ;
0 commit comments