Skip to content

Commit 5e91d55

Browse files
committed
Revert "Merge branch 'agr-stsdk-ft-advay26' into dev-feature-sdkmigration"
This reverts commit 774816d, reversing changes made to b3855a8.
1 parent 774816d commit 5e91d55

16 files changed

Lines changed: 83 additions & 258 deletions

File tree

src/NuGet.Jobs.Catalog2Registration/DependencyInjectionExtensions.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,13 @@ public static ContainerBuilder AddCatalog2Registration(this ContainerBuilder con
2828
RegisterCursorStorage(containerBuilder);
2929

3030
containerBuilder
31-
.RegisterStorageAccount<Catalog2RegistrationConfiguration>(c => c.StorageConnectionString, requestTimeout: DefaultBlobRequestOptions.ServerTimeout)
32-
.As<ICloudBlobClient>();
31+
.Register<ICloudBlobClient>(c =>
32+
{
33+
var options = c.Resolve<IOptionsSnapshot<Catalog2RegistrationConfiguration>>();
34+
return new CloudBlobClientWrapper(
35+
options.Value.StorageConnectionString,
36+
requestTimeout: DefaultBlobRequestOptions.ServerTimeout);
37+
});
3338

3439
containerBuilder.Register(c => new Catalog2RegistrationCommand(
3540
c.Resolve<ICollector>(),

src/NuGet.Jobs.Common/JsonConfigurationJob.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,6 @@ protected virtual void ConfigureDefaultJobServices(IServiceCollection services,
167167
services.Configure<ValidationDbConfiguration>(configurationRoot.GetSection(ValidationDbConfigurationSectionName));
168168
services.Configure<ServiceBusConfiguration>(configurationRoot.GetSection(ServiceBusConfigurationSectionName));
169169
services.Configure<ValidationStorageConfiguration>(configurationRoot.GetSection(ValidationStorageConfigurationSectionName));
170-
services.ConfigureStorageMsi(configurationRoot);
171170

172171
services.AddSingleton(new TelemetryClient(ApplicationInsightsConfiguration.TelemetryConfiguration));
173172
services.AddTransient<ITelemetryClient, TelemetryClientWrapper>();
@@ -198,7 +197,13 @@ private void AddScopedSqlConnectionFactory<TDbConfiguration>(IServiceCollection
198197
public static void ConfigureFeatureFlagAutofacServices(ContainerBuilder containerBuilder)
199198
{
200199
containerBuilder
201-
.RegisterStorageAccount<FeatureFlagConfiguration>(c => c.ConnectionString, requestTimeout: TimeSpan.FromMinutes(2))
200+
.Register(c =>
201+
{
202+
var options = c.Resolve<IOptionsSnapshot<FeatureFlagConfiguration>>();
203+
return new CloudBlobClientWrapper(
204+
options.Value.ConnectionString,
205+
requestTimeout: TimeSpan.FromMinutes(2));
206+
})
202207
.Keyed<ICloudBlobClient>(FeatureFlagBindingKey);
203208

204209
containerBuilder

src/NuGet.Jobs.Common/StorageAccountExtensions.cs

Lines changed: 0 additions & 135 deletions
This file was deleted.

src/NuGet.Jobs.Common/StorageMsiConfiguration.cs

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/NuGet.Jobs.GitHubIndexer/Job.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,16 @@ protected override void ConfigureJobServices(IServiceCollection services, IConfi
4242
services.AddTransient<IRepositoriesCache, DiskRepositoriesCache>();
4343
services.AddTransient<IConfigFileParser, ConfigFileParser>();
4444
services.AddTransient<IRepoFetcher, RepoFetcher>();
45+
services.AddTransient<ICloudBlobClient>(provider => {
46+
var config = provider.GetRequiredService<IOptionsSnapshot<GitHubIndexerConfiguration>>();
47+
return new CloudBlobClientWrapper(config.Value.StorageConnectionString, config.Value.StorageReadAccessGeoRedundant);
48+
});
4549

4650
services.Configure<GitHubIndexerConfiguration>(configurationRoot.GetSection(GitHubIndexerConfigurationSectionName));
4751
}
4852

4953
protected override void ConfigureAutofacServices(ContainerBuilder containerBuilder, IConfigurationRoot configurationRoot)
5054
{
51-
containerBuilder
52-
.RegisterStorageAccount<GitHubIndexerConfiguration>(c => c.StorageConnectionString, c => c.StorageReadAccessGeoRedundant)
53-
.As<ICloudBlobClient>();
5455
}
5556
}
5657
}

src/NuGet.Services.AzureSearch/DependencyInjectionExtensions.cs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
using Microsoft.Extensions.Logging;
2020
using Microsoft.Extensions.Options;
2121
using Microsoft.Rest;
22-
using NuGet.Jobs;
2322
using NuGet.Protocol;
2423
using NuGet.Services.AzureSearch.Auxiliary2AzureSearch;
2524
using NuGet.Services.AzureSearch.AuxiliaryFiles;
@@ -109,7 +108,13 @@ private static void RegisterIndexServices(ContainerBuilder containerBuilder, str
109108
private static void RegisterAzureSearchStorageServices(ContainerBuilder containerBuilder, string key)
110109
{
111110
containerBuilder
112-
.RegisterStorageAccount<AzureSearchConfiguration>(c => c.StorageConnectionString, requestTimeout: DefaultBlobRequestOptions.ServerTimeout)
111+
.Register<ICloudBlobClient>(c =>
112+
{
113+
var options = c.Resolve<IOptionsSnapshot<AzureSearchConfiguration>>();
114+
return new CloudBlobClientWrapper(
115+
options.Value.StorageConnectionString,
116+
requestTimeout: DefaultBlobRequestOptions.ServerTimeout);
117+
})
113118
.Keyed<ICloudBlobClient>(key);
114119

115120
containerBuilder
@@ -216,9 +221,13 @@ private static void RegisterAzureSearchStorageServices(ContainerBuilder containe
216221
private static void RegisterAuxiliaryDataStorageServices(ContainerBuilder containerBuilder, string key)
217222
{
218223
containerBuilder
219-
.RegisterStorageAccount<AuxiliaryDataStorageConfiguration>(
220-
c => c.AuxiliaryDataStorageConnectionString,
221-
requestTimeout: DefaultBlobRequestOptions.ServerTimeout)
224+
.Register<ICloudBlobClient>(c =>
225+
{
226+
var options = c.Resolve<IOptionsSnapshot<AuxiliaryDataStorageConfiguration>>();
227+
return new CloudBlobClientWrapper(
228+
options.Value.AuxiliaryDataStorageConnectionString,
229+
requestTimeout: DefaultBlobRequestOptions.ServerTimeout);
230+
})
222231
.Keyed<ICloudBlobClient>(key);
223232

224233
containerBuilder

src/NuGet.Services.Configuration/Constants.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) .NET Foundation. All rights reserved.
1+
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

44
namespace NuGet.Services.Configuration
@@ -15,7 +15,5 @@ public static class Constants
1515
public static string KeyVaultStoreNameKey = "KeyVault_StoreName";
1616
public static string KeyVaultStoreLocationKey = "KeyVault_StoreLocation";
1717
public static string KeyVaultSendX5c = "KeyVault_SendX5c";
18-
public static string StorageUseManagedIdentityPropertyName = "Storage_UseManagedIdentity";
19-
public static string StorageManagedIdentityClientIdPropertyName = "Storage_ManagedIdentityClientId";
2018
}
2119
}

src/NuGet.Services.V3/NuGet.Services.V3.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="WindowsAzure.Storage" />
1110
<ProjectReference Include="..\Catalog\NuGet.Services.Metadata.Catalog.csproj" />
1211
<ProjectReference Include="..\Validation.Common.Job\Validation.Common.Job.csproj" />
1312
</ItemGroup>

src/NuGet.Services.Validation.Orchestrator/Job.cs

Lines changed: 18 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
using System.Threading.Tasks;
1111
using Autofac;
1212
using Autofac.Core;
13-
using Azure.Identity;
1413
using Azure.Storage.Blobs;
1514
using Microsoft.ApplicationInsights;
1615
using Microsoft.Extensions.Configuration;
@@ -181,6 +180,13 @@ protected override void ConfigureJobServices(IServiceCollection services, IConfi
181180
services.AddTransient<IBrokeredMessageSerializer<PackageValidationMessageData>, PackageValidationMessageDataSerializationAdapter>();
182181
services.AddTransient<ICriteriaEvaluator<Package>, PackageCriteriaEvaluator>();
183182
services.AddTransient<IProcessSignatureEnqueuer, ProcessSignatureEnqueuer>();
183+
services.AddTransient<ICloudBlobClient>(c =>
184+
{
185+
var configurationAccessor = c.GetRequiredService<IOptionsSnapshot<ValidationConfiguration>>();
186+
return new CloudBlobClientWrapper(
187+
configurationAccessor.Value.ValidationStorageConnectionString,
188+
readAccessGeoRedundant: false);
189+
});
184190
services.AddTransient<ICloudBlobContainerInformationProvider, GalleryCloudBlobContainerInformationProvider>();
185191
services.AddTransient<ICoreFileStorageService, CloudBlobCoreFileStorageService>();
186192
services.AddTransient<IFileDownloader, FileDownloader>();
@@ -230,10 +236,6 @@ protected override void ConfigureJobServices(IServiceCollection services, IConfi
230236

231237
protected override void ConfigureAutofacServices(ContainerBuilder containerBuilder, IConfigurationRoot configurationRoot)
232238
{
233-
containerBuilder
234-
.RegisterStorageAccount<ValidationConfiguration>(c => c.ValidationStorageConnectionString)
235-
.As<ICloudBlobClient>();
236-
237239
containerBuilder
238240
.Register(c =>
239241
{
@@ -385,9 +387,11 @@ private static void ConfigureLeaseService(ContainerBuilder builder)
385387
.Register(c =>
386388
{
387389
LeaseConfiguration config = c.Resolve<IOptionsSnapshot<LeaseConfiguration>>().Value;
388-
StorageMsiConfiguration storageMsiConfiguration = c.Resolve<IOptionsSnapshot<StorageMsiConfiguration>>().Value;
389390

390-
BlobServiceClient blobServiceClient = CreateBlobServiceClient(storageMsiConfiguration, config.ConnectionString);
391+
// workaround for https://github.com/Azure/azure-sdk-for-net/issues/44373
392+
var connectionString = config.ConnectionString.Replace("SharedAccessSignature=?", "SharedAccessSignature=");
393+
394+
BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
391395
return new CloudBlobLeaseService(blobServiceClient, config.ContainerName, config.StoragePath);
392396
})
393397
.As<ILeaseService>();
@@ -452,7 +456,13 @@ private static void ConfigureSymbolScanValidator(ContainerBuilder builder)
452456
private static void ConfigureFlatContainer(ContainerBuilder builder)
453457
{
454458
builder
455-
.RegisterStorageAccount<FlatContainerConfiguration>(c => c.ConnectionString)
459+
.Register<CloudBlobClientWrapper>(c =>
460+
{
461+
var configurationAccessor = c.Resolve<IOptionsSnapshot<FlatContainerConfiguration>>();
462+
return new CloudBlobClientWrapper(
463+
configurationAccessor.Value.ConnectionString,
464+
readAccessGeoRedundant: false);
465+
})
456466
.Keyed<ICloudBlobClient>(FlatContainerBindingKey);
457467

458468
builder
@@ -604,50 +614,5 @@ private T GetRequiredService<T>()
604614
{
605615
return _serviceProvider.GetRequiredService<T>();
606616
}
607-
608-
private static BlobServiceClient CreateBlobServiceClient(
609-
StorageMsiConfiguration msiConfiguration,
610-
string storageConnectionString,
611-
TimeSpan? requestTimeout = null)
612-
{
613-
BlobClientOptions blobClientOptions = new BlobClientOptions();
614-
if (requestTimeout.HasValue)
615-
{
616-
blobClientOptions.Retry.NetworkTimeout = requestTimeout.Value;
617-
}
618-
619-
if (msiConfiguration.UseManagedIdentity)
620-
{
621-
if (string.IsNullOrWhiteSpace(msiConfiguration.ManagedIdentityClientId))
622-
{
623-
// 1. Using MSI with DefaultAzureCredential (local debugging)
624-
var defaultAzureCredentialOptions = new DefaultAzureCredentialOptions
625-
{
626-
ManagedIdentityClientId = null,
627-
};
628-
629-
return new BlobServiceClient(
630-
ConnectionStringExtensions.GetBlobEndpointFromConnectionString(storageConnectionString),
631-
new DefaultAzureCredential(defaultAzureCredentialOptions),
632-
blobClientOptions);
633-
}
634-
else
635-
{
636-
// 2. Using MSI with ClientId
637-
return new BlobServiceClient(
638-
ConnectionStringExtensions.GetBlobEndpointFromConnectionString(storageConnectionString),
639-
new ManagedIdentityCredential(msiConfiguration.ManagedIdentityClientId),
640-
blobClientOptions);
641-
}
642-
}
643-
else
644-
{
645-
// 3. Using SAS token
646-
// workaround for https://github.com/Azure/azure-sdk-for-net/issues/44373
647-
var connectionString = storageConnectionString.Replace("SharedAccessSignature=?", "SharedAccessSignature=");
648-
649-
return new BlobServiceClient(connectionString, blobClientOptions);
650-
}
651-
}
652617
}
653618
}

0 commit comments

Comments
 (0)