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

Commit 640e3d8

Browse files
author
Christy Henriksson
authored
Migrate Gallery.Maintenance to JsonConfig (#516)
1 parent 8b54901 commit 640e3d8

8 files changed

Lines changed: 57 additions & 22 deletions

File tree

src/Gallery.Maintenance/DeleteExpiredVerificationKeysTask.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using System.Threading.Tasks;
1010
using Gallery.Maintenance.Models;
1111
using Microsoft.Extensions.Logging;
12+
using NuGet.Jobs.Configuration;
1213

1314
namespace Gallery.Maintenance
1415
{
@@ -37,7 +38,7 @@ public override async Task RunAsync(Job job)
3738
{
3839
IEnumerable<PackageVerificationKey> expiredKeys;
3940

40-
using (var connection = await job.GalleryDatabase.CreateAsync())
41+
using (var connection = await job.OpenSqlConnectionAsync<GalleryDbConfiguration>())
4142
{
4243
expiredKeys = await connection.QueryWithRetryAsync<PackageVerificationKey>(
4344
SelectQuery,
@@ -59,7 +60,7 @@ public override async Task RunAsync(Job job)
5960

6061
if (expectedRowCount > 0)
6162
{
62-
using (var connection = await job.GalleryDatabase.CreateAsync())
63+
using (var connection = await job.OpenSqlConnectionAsync<GalleryDbConfiguration>())
6364
{
6465
using (var transaction = connection.BeginTransaction())
6566
{

src/Gallery.Maintenance/Gallery.Maintenance.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@
5353
<SubType>Designer</SubType>
5454
</None>
5555
<None Include="Scripts\*" />
56+
<None Include="Settings\dev.json" />
57+
<None Include="Settings\int.json" />
58+
<None Include="Settings\prod.json" />
5659
</ItemGroup>
5760
<ItemGroup>
5861
<ProjectReference Include="..\NuGet.Jobs.Common\NuGet.Jobs.Common.csproj">
@@ -67,9 +70,6 @@
6770
<PackageReference Include="Newtonsoft.Json">
6871
<Version>9.0.1</Version>
6972
</PackageReference>
70-
<PackageReference Include="NuGet.Services.Sql">
71-
<Version>2.27.0</Version>
72-
</PackageReference>
7373
<PackageReference Include="System.Net.Http">
7474
<Version>4.3.3</Version>
7575
</PackageReference>

src/Gallery.Maintenance/Gallery.Maintenance.nuspec

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,7 @@
1818
<file src="Scripts\PreDeploy.ps1" />
1919
<file src="Scripts\PostDeploy.ps1" />
2020
<file src="Scripts\nssm.exe" />
21+
22+
<file src="Settings\*.json" target="bin" />
2123
</files>
2224
</package>

src/Gallery.Maintenance/Job.cs

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,21 @@
33

44
using System;
55
using System.Collections.Generic;
6-
using System.ComponentModel.Design;
7-
using System.Data;
86
using System.Linq;
97
using System.Threading.Tasks;
8+
using Autofac;
9+
using Microsoft.Extensions.Configuration;
10+
using Microsoft.Extensions.DependencyInjection;
1011
using Microsoft.Extensions.Logging;
1112
using NuGet.Jobs;
12-
using NuGet.Services.KeyVault;
13-
using NuGet.Services.Sql;
1413

1514
namespace Gallery.Maintenance
1615
{
1716
/// <summary>
1817
/// Runs all <see cref="MaintenanceTask"/>s against the Gallery database.
1918
/// </summary>
20-
public class Job : JobBase
19+
public class Job : JsonConfigurationJob
2120
{
22-
23-
public ISqlConnectionFactory GalleryDatabase { get; private set; }
24-
25-
public override void Init(IServiceContainer serviceContainer, IDictionary<string, string> jobArgsDictionary)
26-
{
27-
var secretInjector = (ISecretInjector)serviceContainer.GetService(typeof(ISecretInjector));
28-
var databaseConnectionString = JobConfigurationManager.GetArgument(jobArgsDictionary, JobArgumentNames.GalleryDatabase);
29-
30-
GalleryDatabase = new AzureSqlConnectionFactory(databaseConnectionString, secretInjector);
31-
}
32-
3321
public override async Task Run()
3422
{
3523
var failedTasks = new List<string>();
@@ -88,5 +76,13 @@ public ILogger CreateTypedLogger(Type type)
8876
.MakeGenericMethod(type)
8977
.Invoke(null, new object[] { LoggerFactory }) as ILogger;
9078
}
79+
80+
protected override void ConfigureAutofacServices(ContainerBuilder containerBuilder)
81+
{
82+
}
83+
84+
protected override void ConfigureJobServices(IServiceCollection services, IConfigurationRoot configurationRoot)
85+
{
86+
}
9187
}
9288
}

src/Gallery.Maintenance/Scripts/Gallery.Maintenance.cmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ cd bin
77

88
title #{Jobs.Gallery.Maintenance.Title}
99

10-
start /w Gallery.Maintenance.exe -VaultName "#{Deployment.Azure.KeyVault.VaultName}" -ClientId "#{Deployment.Azure.KeyVault.ClientId}" -CertificateThumbprint "#{Deployment.Azure.KeyVault.CertificateThumbprint}" -GalleryDatabase "#{Jobs.Gallery.Maintenance.GalleryDatabase}" -InstrumentationKey "#{Jobs.Gallery.Maintenance.InstrumentationKey}" -verbose true -Interval #{Jobs.Gallery.Maintenance.Interval}
10+
start /w Gallery.Maintenance.exe -Configuration "#{Jobs.gallery.maintenance.Configuration}" -InstrumentationKey "#{Jobs.gallery.maintenance.InstrumentationKey}" -Interval #{Jobs.gallery.maintenance.Interval}
1111

1212
echo "Finished #{Jobs.Gallery.Maintenance.Title}"
1313

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"GalleryDb": {
3+
"ConnectionString": "Data Source=tcp:#{Deployment.Azure.Sql.GalleryDatabaseAddress};Initial Catalog=nuget-dev-0-v2gallery;User ID=$$Dev-GalleryDBWriter-UserName$$;Password=$$Dev-GalleryDBWriter-Password$$;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
4+
},
5+
6+
"KeyVault_VaultName": "#{Deployment.Azure.KeyVault.VaultName}",
7+
"KeyVault_ClientId": "#{Deployment.Azure.KeyVault.ClientId}",
8+
"KeyVault_CertificateThumbprint": "#{Deployment.Azure.KeyVault.CertificateThumbprint}",
9+
"KeyVault_ValidateCertificate": true,
10+
"KeyVault_StoreName": "My",
11+
"KeyVault_StoreLocation": "LocalMachine"
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"GalleryDb": {
3+
"ConnectionString": "Data Source=tcp:#{Deployment.Azure.Sql.GalleryDatabaseAddress};Initial Catalog=nuget-int-0-v2gallery;User ID=$$Int-GalleryDBWriter-UserName$$;Password=$$Int-GalleryDBWriter-Password$$;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
4+
},
5+
6+
"KeyVault_VaultName": "#{Deployment.Azure.KeyVault.VaultName}",
7+
"KeyVault_ClientId": "#{Deployment.Azure.KeyVault.ClientId}",
8+
"KeyVault_CertificateThumbprint": "#{Deployment.Azure.KeyVault.CertificateThumbprint}",
9+
"KeyVault_ValidateCertificate": true,
10+
"KeyVault_StoreName": "My",
11+
"KeyVault_StoreLocation": "LocalMachine"
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"GalleryDb": {
3+
"ConnectionString": "Data Source=tcp:#{Deployment.Azure.Sql.GalleryDatabaseAddress};Initial Catalog=NuGetGallery;User ID=$$Prod-GalleryDBWriter-UserName$$;Password=$$Prod-GalleryDBWriter-Password$$;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
4+
},
5+
6+
"KeyVault_VaultName": "#{Deployment.Azure.KeyVault.VaultName}",
7+
"KeyVault_ClientId": "#{Deployment.Azure.KeyVault.ClientId}",
8+
"KeyVault_CertificateThumbprint": "#{Deployment.Azure.KeyVault.CertificateThumbprint}",
9+
"KeyVault_ValidateCertificate": true,
10+
"KeyVault_StoreName": "My",
11+
"KeyVault_StoreLocation": "LocalMachine"
12+
}

0 commit comments

Comments
 (0)