Skip to content
This repository was archived by the owner on Jul 30, 2024. It is now read-only.

Commit 15d62a1

Browse files
authored
Orchestrator extracts license file to flatcontainer (#687)
* Added PackageStatusProcessor for package-specific code. * Added optional OnBeforeUpdateDatabaseToMakePackageAvailable to EntityStatusProcessor. * Added telemetry for license file operations. * ServerCommon version upgrade.
1 parent 8a3b27d commit 15d62a1

19 files changed

Lines changed: 533 additions & 277 deletions

File tree

src/NuGet.Jobs.Common/NuGet.Jobs.Common.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,13 +105,13 @@
105105
<PrivateAssets>all</PrivateAssets>
106106
</PackageReference>
107107
<PackageReference Include="NuGet.Services.Configuration">
108-
<Version>2.39.0</Version>
108+
<Version>2.40.0</Version>
109109
</PackageReference>
110110
<PackageReference Include="NuGet.Services.Logging">
111-
<Version>2.39.0</Version>
111+
<Version>2.40.0</Version>
112112
</PackageReference>
113113
<PackageReference Include="NuGet.Services.Sql">
114-
<Version>2.39.0</Version>
114+
<Version>2.40.0</Version>
115115
</PackageReference>
116116
<PackageReference Include="System.Net.Http">
117117
<Version>4.3.3</Version>

src/NuGet.Services.Revalidate/NuGet.Services.Revalidate.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@
123123
<PrivateAssets>all</PrivateAssets>
124124
</PackageReference>
125125
<PackageReference Include="NuGet.Services.Status">
126-
<Version>2.39.0</Version>
126+
<Version>2.40.0</Version>
127127
</PackageReference>
128128
</ItemGroup>
129129
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// Copyright (c) .NET Foundation. All rights reserved.
2+
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
3+
4+
namespace NuGet.Services.Validation.Orchestrator
5+
{
6+
public class FlatContainerConfiguration
7+
{
8+
public string ConnectionString { get; set; }
9+
}
10+
}

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

Lines changed: 315 additions & 0 deletions
Large diffs are not rendered by default.

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

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@ public class Job : JobBase
6161
private const string GalleryDbConfigurationSectionName = "GalleryDb";
6262
private const string ValidationDbConfigurationSectionName = "ValidationDb";
6363
private const string ServiceBusConfigurationSectionName = "ServiceBus";
64-
private const string SmtpConfigurationSectionName = "Smtp";
6564
private const string EmailConfigurationSectionName = "Email";
6665
private const string PackageDownloadTimeoutName = "PackageDownloadTimeout";
66+
private const string FlatContainerConfigurationSectionName = "FlatContainer";
6767

6868
private const string EmailBindingKey = EmailConfigurationSectionName;
6969
private const string PackageVerificationTopicClientBindingKey = "PackageVerificationTopicClient";
@@ -74,6 +74,7 @@ public class Job : JobBase
7474
private const string ScanBindingKey = "Scan";
7575
private const string ValidationStorageBindingKey = "ValidationStorage";
7676
private const string OrchestratorBindingKey = "Orchestrator";
77+
private const string CoreLicenseFileServiceBindingKey = "CoreLicenseFileService";
7778

7879
private const string SymbolsValidatorSectionName = "SymbolsValidator";
7980
private const string SymbolsValidationBindingKey = SymbolsValidatorSectionName;
@@ -193,6 +194,7 @@ private void ConfigureJobServices(IServiceCollection services, IConfigurationRoo
193194
services.Configure<ScanAndSignConfiguration>(configurationRoot.GetSection(ScanAndSignSectionName));
194195
services.Configure<SymbolScanOnlyConfiguration>(configurationRoot.GetSection(SymbolScanOnlySectionName));
195196
services.Configure<ScanAndSignEnqueuerConfiguration>(configurationRoot.GetSection(ScanAndSignSectionName));
197+
services.Configure<FlatContainerConfiguration>(configurationRoot.GetSection(FlatContainerConfigurationSectionName));
196198

197199
services.Configure<SymbolsValidationConfiguration>(configurationRoot.GetSection(SymbolsValidatorSectionName));
198200
services.Configure<SymbolsIngesterConfiguration>(configurationRoot.GetSection(SymbolsIngesterSectionName));
@@ -243,7 +245,7 @@ private void ConfigureJobServices(IServiceCollection services, IConfigurationRoo
243245
});
244246
services.AddTransient<ICoreFileStorageService, CloudBlobCoreFileStorageService>();
245247
services.AddTransient<IFileDownloader, PackageDownloader>();
246-
services.AddTransient<IStatusProcessor<Package>, EntityStatusProcessor<Package>>();
248+
services.AddTransient<IStatusProcessor<Package>, PackageStatusProcessor>();
247249
services.AddTransient<IValidationSetProvider<Package>, ValidationSetProvider<Package>>();
248250
services.AddTransient<IValidationSetProcessor, ValidationSetProcessor>();
249251
services.AddTransient<IBrokeredMessageSerializer<SignatureValidationMessage>, SignatureValidationMessageSerializer>();
@@ -349,6 +351,7 @@ private static IServiceProvider CreateProvider(IServiceCollection services, ICon
349351
ConfigurePackageCertificatesValidator(containerBuilder);
350352
ConfigureScanAndSignProcessor(containerBuilder);
351353
ConfigureScanValidator(containerBuilder);
354+
ConfigureFlatContainer(containerBuilder);
352355
break;
353356
case ValidatingType.SymbolPackage:
354357
ConfigureSymbolScanValidator(containerBuilder);
@@ -507,6 +510,33 @@ private static void ConfigureScanValidator(ContainerBuilder builder)
507510
.AsSelf();
508511
}
509512

513+
private static void ConfigureFlatContainer(ContainerBuilder builder)
514+
{
515+
builder
516+
.Register<CloudBlobClientWrapper>(c =>
517+
{
518+
var configurationAccessor = c.Resolve<IOptionsSnapshot<FlatContainerConfiguration>>();
519+
return new CloudBlobClientWrapper(
520+
configurationAccessor.Value.ConnectionString,
521+
readAccessGeoRedundant: false);
522+
})
523+
.Keyed<ICloudBlobClient>(CoreLicenseFileServiceBindingKey);
524+
525+
builder
526+
.RegisterType<CloudBlobCoreFileStorageService>()
527+
.WithKeyedParameter(typeof(ICloudBlobClient), CoreLicenseFileServiceBindingKey)
528+
.Keyed<ICoreFileStorageService>(CoreLicenseFileServiceBindingKey);
529+
530+
builder
531+
.RegisterType<OrchestratorContentFileMetadataService>()
532+
.As<IContentFileMetadataService>();
533+
534+
builder
535+
.RegisterType<CoreLicenseFileService>()
536+
.WithKeyedParameter(typeof(ICoreFileStorageService), CoreLicenseFileServiceBindingKey)
537+
.As<ICoreLicenseFileService>();
538+
}
539+
510540
private static void ConfigureOrchestratorMessageHandler(IServiceCollection services, IConfigurationRoot configurationRoot)
511541
{
512542
var validatingType = configurationRoot

src/NuGet.Services.Validation.Orchestrator/NuGet.Services.Validation.Orchestrator.csproj

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,16 @@
4545
<ItemGroup>
4646
<Compile Include="BaseValidator.cs" />
4747
<Compile Include="Configuration\ConfigurationValidator.cs" />
48+
<Compile Include="Configuration\FlatContainerConfiguration.cs" />
4849
<Compile Include="Configuration\TopologicalSort.cs" />
4950
<Compile Include="ContainerBuilderExtensions.cs" />
5051
<Compile Include="Configuration\CoreMessageServiceConfiguration.cs" />
5152
<Compile Include="Configuration\EmailConfiguration.cs" />
53+
<Compile Include="EntityStatusProcessor.cs" />
5254
<Compile Include="Error.cs" />
55+
<Compile Include="PackageStatusProcessor.cs" />
5356
<Compile Include="Services\MessageServiceConfiguration.cs" />
57+
<Compile Include="Services\OrchestratorContentFileMetadataService.cs" />
5458
<Compile Include="Services\SymbolsMessageService.cs" />
5559
<Compile Include="SymbolsStatusProcessor.cs" />
5660
<Compile Include="Symbols\ISymbolsIngesterMessageEnqueuer.cs" />
@@ -92,7 +96,6 @@
9296
<Compile Include="PackageSigning\ValidateCertificate\ValidateCertificateConfiguration.cs" />
9397
<Compile Include="PackageSigning\ValidateCertificate\ValidateCertificateEnqueuer.cs" />
9498
<Compile Include="PackageSigning\ProcessSignature\PackageSignatureValidator.cs" />
95-
<Compile Include="PackageStatusProcessor.cs" />
9699
<Compile Include="PackageValidationMessageDataSerializer.cs" />
97100
<Compile Include="Program.cs" />
98101
<Compile Include="Properties\AssemblyInfo.cs" />
@@ -160,7 +163,7 @@
160163
<PrivateAssets>all</PrivateAssets>
161164
</PackageReference>
162165
<PackageReference Include="NuGet.Services.Messaging.Email">
163-
<Version>2.39.0</Version>
166+
<Version>2.40.0</Version>
164167
</PackageReference>
165168
</ItemGroup>
166169
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

0 commit comments

Comments
 (0)