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

Commit aa2bed5

Browse files
author
Christy Henriksson
authored
Merge pull request #586 from NuGet/dev
[ReleasePrep][2018.10.15]RI of dev into master
2 parents 05ba525 + 7f052ef commit aa2bed5

182 files changed

Lines changed: 8734 additions & 1549 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

build.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ param (
99
[string]$SemanticVersion = '1.0.0-zlocal',
1010
[string]$Branch = 'zlocal',
1111
[string]$CommitSHA,
12-
[string]$BuildBranch = 'c35bbc228717720bdbc610f3285259391635e90e'
12+
[string]$BuildBranch = '80b8f1b4a1cfe57367881e59fca063866dcaaa42'
1313
)
1414

1515
$msBuildVersion = 15;

src/Gallery.Maintenance/DeleteExpiredVerificationKeysTask.cs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -61,19 +61,21 @@ public override async Task RunAsync(Job job)
6161
if (expectedRowCount > 0)
6262
{
6363
using (var connection = await job.OpenSqlConnectionAsync<GalleryDbConfiguration>())
64+
using (var transaction = connection.BeginTransaction())
65+
using (var command = connection.CreateCommand())
6466
{
65-
using (var transaction = connection.BeginTransaction())
66-
{
67-
var numKeys = 0;
68-
var parameters = credentialKeys.Select(c => new SqlParameter("@Key" + numKeys++, SqlDbType.Int) { Value = c }).ToArray();
69-
70-
rowCount = await connection.ExecuteAsync(
71-
string.Format(DeleteQuery, string.Join(",", parameters.Select(p => p.ParameterName))),
72-
parameters,
73-
transaction, _commandTimeout);
74-
75-
transaction.Commit();
76-
}
67+
var numKeys = 0;
68+
var parameters = credentialKeys.Select(c => new SqlParameter("@Key" + numKeys++, SqlDbType.Int) { Value = c }).ToArray();
69+
command.Parameters.AddRange(parameters);
70+
71+
command.CommandText = string.Format(DeleteQuery, string.Join(",", parameters.Select(p => p.ParameterName)));
72+
command.CommandType = CommandType.Text;
73+
command.CommandTimeout = (int)_commandTimeout.TotalSeconds;
74+
command.Transaction = transaction;
75+
76+
rowCount = await command.ExecuteNonQueryAsync();
77+
78+
transaction.Commit();
7779
}
7880
}
7981

src/NuGet.Jobs.Common/Extensions/DapperExtensions.cs

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,30 +10,6 @@ namespace System.Data.SqlClient
1010
{
1111
public static class DapperExtensions
1212
{
13-
public static Task<int> ExecuteAsync(this SqlConnection connection, string sql, SqlParameter[] parameters = null, SqlTransaction transaction = null, TimeSpan? commandTimeout = null)
14-
{
15-
SqlCommand cmd = connection.CreateCommand();
16-
cmd.CommandText = sql;
17-
cmd.CommandType = CommandType.Text;
18-
19-
if (parameters != null)
20-
{
21-
cmd.Parameters.AddRange(parameters);
22-
}
23-
24-
if (commandTimeout.HasValue)
25-
{
26-
cmd.CommandTimeout = (int)commandTimeout.Value.TotalSeconds;
27-
}
28-
29-
if (transaction != null)
30-
{
31-
cmd.Transaction = transaction;
32-
}
33-
34-
return cmd.ExecuteNonQueryAsync();
35-
}
36-
3713
public static async Task<IEnumerable<T>> QueryWithRetryAsync<T>(
3814
this SqlConnection connection,
3915
string sql,

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,13 @@
9494
<Version>2.27.0</Version>
9595
</PackageReference>
9696
<PackageReference Include="NuGet.Services.KeyVault">
97-
<Version>2.28.0</Version>
97+
<Version>2.29.0</Version>
9898
</PackageReference>
9999
<PackageReference Include="NuGet.Services.Logging">
100100
<Version>2.27.0</Version>
101101
</PackageReference>
102102
<PackageReference Include="NuGet.Services.Sql">
103-
<Version>2.28.0</Version>
103+
<Version>2.29.0</Version>
104104
</PackageReference>
105105
<PackageReference Include="System.Net.Http">
106106
<Version>4.3.3</Version>

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,10 @@
117117
</ItemGroup>
118118
<ItemGroup>
119119
<PackageReference Include="NuGet.Services.Status">
120-
<Version>2.27.0</Version>
120+
<Version>2.29.0</Version>
121121
</PackageReference>
122122
<PackageReference Include="NuGet.Services.Storage">
123-
<Version>2.27.0</Version>
123+
<Version>2.29.0</Version>
124124
</PackageReference>
125125
</ItemGroup>
126126
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -599,6 +599,7 @@ private static void ConfigureOrchestratorSymbolTypes(IServiceCollection services
599599
services.AddTransient<IValidationSetProvider<SymbolPackage>, ValidationSetProvider<SymbolPackage>>();
600600
services.AddTransient<IMessageService<SymbolPackage>, SymbolsPackageMessageService>();
601601
services.AddTransient<IBrokeredMessageSerializer<SymbolsValidatorMessage>, SymbolsValidatorMessageSerializer>();
602+
services.AddTransient<IBrokeredMessageSerializer<SymbolsIngesterMessage>, SymbolsIngesterMessageSerializer>();
602603
services.AddTransient<ISymbolsValidationEntitiesService, SymbolsValidationEntitiesService>();
603604
}
604605

@@ -653,25 +654,24 @@ private static void ConfigureSymbolsIngester(ContainerBuilder builder)
653654
.Keyed<ITopicClient>(SymbolsIngesterBindingKey);
654655

655656
builder
656-
.RegisterType<SymbolsMessageEnqueuer>()
657+
.RegisterType<SymbolsIngesterMessageEnqueuer>()
657658
.WithKeyedParameter(typeof(ITopicClient), SymbolsIngesterBindingKey)
658659
.WithParameter(
659660
(pi, ctx) => pi.ParameterType == typeof(TimeSpan?),
660661
(pi, ctx) => ctx.Resolve<IOptionsSnapshot<SymbolsIngesterConfiguration>>().Value.MessageDelay)
661-
.Keyed<ISymbolsMessageEnqueuer>(SymbolsIngesterBindingKey)
662-
.As<ISymbolsMessageEnqueuer>();
662+
.Keyed<ISymbolsIngesterMessageEnqueuer>(SymbolsIngesterBindingKey)
663+
.As<ISymbolsIngesterMessageEnqueuer>();
663664

664665
builder
665666
.RegisterType<SymbolsIngester>()
666667
.WithKeyedParameter(typeof(IValidatorStateService), SymbolsIngesterBindingKey)
667-
.WithKeyedParameter(typeof(ISymbolsMessageEnqueuer), SymbolsIngesterBindingKey)
668+
.WithKeyedParameter(typeof(ISymbolsIngesterMessageEnqueuer), SymbolsIngesterBindingKey)
668669
.AsSelf();
669670
}
670671

671672
private T GetRequiredService<T>()
672673
{
673674
return _serviceProvider.GetRequiredService<T>();
674675
}
675-
676676
}
677677
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
<Compile Include="Error.cs" />
5454
<Compile Include="Services\MessageServiceConfiguration.cs" />
5555
<Compile Include="Services\SymbolsMessageService.cs" />
56+
<Compile Include="Symbols\ISymbolsIngesterMessageEnqueuer.cs" />
5657
<Compile Include="Symbols\SymbolScanOnlyConfiguration.cs" />
5758
<Compile Include="Symbols\SymbolCriteriaEvaluator.cs" />
5859
<Compile Include="Symbols\SymbolScanValidator.cs" />
@@ -62,6 +63,7 @@
6263
<Compile Include="IPackageStatusProcessor.cs" />
6364
<Compile Include="Services\SymbolEntityService.cs" />
6465
<Compile Include="Symbols\ISymbolsMessageEnqueuer.cs" />
66+
<Compile Include="Symbols\SymbolsIngesterMessageEnqueuer.cs" />
6567
<Compile Include="Symbols\SymbolsMessageEnqueuer.cs" />
6668
<Compile Include="Symbols\SymbolsIngesterConfiguration.cs" />
6769
<Compile Include="Symbols\SymbolsIngester.cs" />
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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+
using System.Threading.Tasks;
5+
using NuGet.Jobs.Validation.Symbols.Core;
6+
7+
namespace NuGet.Services.Validation.Symbols
8+
{
9+
public interface ISymbolsIngesterMessageEnqueuer
10+
{
11+
/// <summary>
12+
/// Enqueues a message to one of the topics used by the Symbol Ingester.
13+
/// </summary>
14+
/// <param name="request">The validation request.</param>
15+
/// <returns>A <see cref="Task"/> that will be completed when the execution is completed.</returns>
16+
Task<SymbolsIngesterMessage> EnqueueSymbolsIngestionMessageAsync(IValidationRequest request);
17+
}
18+
}

src/NuGet.Services.Validation.Orchestrator/Symbols/SymbolsIngester.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ namespace NuGet.Services.Validation.Symbols
1515
public class SymbolsIngester : BaseValidator, IValidator
1616
{
1717
private readonly ISymbolsValidationEntitiesService _symbolsValidationEntitiesService;
18-
private readonly ISymbolsMessageEnqueuer _symbolMessageEnqueuer;
18+
private readonly ISymbolsIngesterMessageEnqueuer _symbolMessageEnqueuer;
1919
private readonly ITelemetryService _telemetryService;
2020
private readonly ILogger<SymbolsIngester> _logger;
2121

2222
public SymbolsIngester(
2323
ISymbolsValidationEntitiesService symbolsValidationEntitiesService,
24-
ISymbolsMessageEnqueuer symbolMessageEnqueuer,
24+
ISymbolsIngesterMessageEnqueuer symbolMessageEnqueuer,
2525
ITelemetryService telemetryService,
2626
ILogger<SymbolsIngester> logger)
2727
{
@@ -40,11 +40,12 @@ public async Task<IValidationResult> GetResultAsync(IValidationRequest request)
4040

4141
var result = SymbolsValidationEntitiesService.ConvertToIValidationResult(await _symbolsValidationEntitiesService.GetSymbolsServerRequestAsync(request));
4242
_logger.LogInformation(
43-
"Symbols status {Status} for PackageId: {PackageId}, PackageNormalizedVersion {PackageNormalizedVersion}, SymbolsPackageKey {SymbolsPackageKey} ",
43+
"Symbols status {Status} for PackageId: {PackageId}, PackageNormalizedVersion {PackageNormalizedVersion}, SymbolsPackageKey {SymbolsPackageKey} ValidationId {ValidationId}",
4444
result.Status,
4545
request.PackageId,
4646
request.PackageVersion,
47-
request.PackageKey);
47+
request.PackageKey,
48+
request.ValidationId);
4849

4950
return result;
5051
}
@@ -78,9 +79,9 @@ public async Task<IValidationResult> StartAsync(IValidationRequest request)
7879
}
7980

8081
_telemetryService.TrackSymbolsMessageEnqueued(ValidatorName.SymbolsIngester, request.ValidationId);
81-
await _symbolMessageEnqueuer.EnqueueSymbolsValidationMessageAsync(request);
82+
var message = await _symbolMessageEnqueuer.EnqueueSymbolsIngestionMessageAsync(request);
8283

83-
var newSymbolsRequest = SymbolsValidationEntitiesService.CreateFromValidationRequest(request, SymbolsPackageIngestRequestStatus.Ingesting);
84+
var newSymbolsRequest = SymbolsValidationEntitiesService.CreateFromValidationRequest(request, SymbolsPackageIngestRequestStatus.Ingesting, message.RequestName);
8485
var savedSymbolRequest = await _symbolsValidationEntitiesService.AddSymbolsServerRequestAsync(newSymbolsRequest);
8586

8687
if(savedSymbolRequest.RequestStatusKey != SymbolsPackageIngestRequestStatus.Ingesting)
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
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+
using System;
5+
using System.Threading.Tasks;
6+
using Microsoft.Extensions.Options;
7+
using NuGet.Jobs.Validation.Symbols.Core;
8+
using NuGet.Services.ServiceBus;
9+
10+
namespace NuGet.Services.Validation.Symbols
11+
{
12+
public class SymbolsIngesterMessageEnqueuer : ISymbolsIngesterMessageEnqueuer
13+
{
14+
private readonly ITopicClient _topicClient;
15+
private readonly TimeSpan? _messageDelay;
16+
private readonly IBrokeredMessageSerializer<SymbolsIngesterMessage> _serializer;
17+
18+
public SymbolsIngesterMessageEnqueuer(
19+
ITopicClient topicClient,
20+
IBrokeredMessageSerializer<SymbolsIngesterMessage> serializer,
21+
TimeSpan? messageDelay)
22+
{
23+
_topicClient = topicClient ?? throw new ArgumentNullException(nameof(topicClient));
24+
_serializer = serializer ?? throw new ArgumentNullException(nameof(serializer));
25+
_messageDelay = messageDelay;
26+
}
27+
28+
public async Task<SymbolsIngesterMessage> EnqueueSymbolsIngestionMessageAsync(IValidationRequest request)
29+
{
30+
var message = new SymbolsIngesterMessage(validationId: request.ValidationId,
31+
symbolPackageKey: request.PackageKey,
32+
packageId: request.PackageId,
33+
packageNormalizedVersion: request.PackageVersion,
34+
snupkgUrl: request.NupkgUrl,
35+
requestName : SymbolsValidationEntitiesService.CreateSymbolServerRequestNameFromValidationRequest(request));
36+
var brokeredMessage = _serializer.Serialize(message);
37+
38+
var visibleAt = DateTimeOffset.UtcNow + (_messageDelay ?? TimeSpan.Zero);
39+
brokeredMessage.ScheduledEnqueueTimeUtc = visibleAt;
40+
41+
await _topicClient.SendAsync(brokeredMessage);
42+
return message;
43+
}
44+
}
45+
}

0 commit comments

Comments
 (0)