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

Commit 3ea64a7

Browse files
authored
Add error code for ScanOperationStates table (#421)
1 parent dcad893 commit 3ea64a7

File tree

5 files changed

+204
-3
lines changed

5 files changed

+204
-3
lines changed

src/NuGet.Services.Validation/Entities/ScanOperationState.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,16 @@ public class ScanOperationState
6666
/// </summary>
6767
public string OperationId { get; set; }
6868

69+
/// <summary>
70+
/// Operation error code.
71+
/// </summary>
72+
public string ErrorCode { get; set; }
73+
74+
/// <summary>
75+
/// Any applicable operation details in text format.
76+
/// </summary>
77+
public string OperationDetails { get; set; }
78+
6979
/// <summary>
7080
/// Used for optimistic concurrency when updating statuses.
7181
/// </summary>

src/NuGet.Services.Validation/Entities/ValidationEntitiesContext.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public class ValidationEntitiesContext : DbContext, IValidationEntitiesContext
9090
private const string PackageCompatibilityIssuesTable = "PackageCompatibilityIssues";
9191

9292
private const string ScanOperationStatesTable = "ScanOperationStates";
93-
private const string ScanOperationStatesPackageValidationKeyAttemptIndex = "IX_ScanOperationStates_PackageValidationKey_AttemptIndex";
93+
private const string ScanOperationStatesPackageValidationKeyOperationTypeAttemptIndex = "IX_ScanOperationStates_PackageValidationKey_OperationType_AttemptIndex";
9494
private const string ScanOperationStatesScanStateCreatedIndex = "IX_ScanOperationStates_ScanState_Created";
9595

9696
private const string PackageRevalidationPackageIdPackageVersionIndex = "IX_PackageRevalidations_PackageId_PackageNormalizedVersion";
@@ -625,7 +625,19 @@ private void RegisterScanningEntities(DbModelBuilder modelBuilder)
625625
IndexAnnotation.AnnotationName,
626626
new IndexAnnotation(new[]
627627
{
628-
new IndexAttribute(ScanOperationStatesPackageValidationKeyAttemptIndex, 0)
628+
new IndexAttribute(ScanOperationStatesPackageValidationKeyOperationTypeAttemptIndex, 0)
629+
{
630+
IsUnique = true
631+
}
632+
}));
633+
634+
modelBuilder.Entity<ScanOperationState>()
635+
.Property(s => s.OperationType)
636+
.HasColumnAnnotation(
637+
IndexAnnotation.AnnotationName,
638+
new IndexAnnotation(new[]
639+
{
640+
new IndexAttribute(ScanOperationStatesPackageValidationKeyOperationTypeAttemptIndex, 1)
629641
{
630642
IsUnique = true
631643
}
@@ -637,7 +649,7 @@ private void RegisterScanningEntities(DbModelBuilder modelBuilder)
637649
IndexAnnotation.AnnotationName,
638650
new IndexAnnotation(new[]
639651
{
640-
new IndexAttribute(ScanOperationStatesPackageValidationKeyAttemptIndex, 1)
652+
new IndexAttribute(ScanOperationStatesPackageValidationKeyOperationTypeAttemptIndex, 2)
641653
{
642654
IsUnique = true
643655
}

src/NuGet.Services.Validation/Migrations/202403221929285_AddErrorCodeOperationDetails.Designer.cs

Lines changed: 29 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
namespace NuGet.Services.Validation
2+
{
3+
using System;
4+
using System.Data.Entity.Migrations;
5+
6+
public partial class AddErrorCodeOperationDetails : DbMigration
7+
{
8+
public override void Up()
9+
{
10+
DropIndex("scan.ScanOperationStates", "IX_ScanOperationStates_PackageValidationKey_AttemptIndex");
11+
AddColumn("scan.ScanOperationStates", "ErrorCode", c => c.String());
12+
AddColumn("scan.ScanOperationStates", "OperationDetails", c => c.String());
13+
CreateIndex("scan.ScanOperationStates", new[] { "PackageValidationKey", "OperationType", "AttemptIndex" }, unique: true, name: "IX_ScanOperationStates_PackageValidationKey_OperationType_AttemptIndex");
14+
}
15+
16+
public override void Down()
17+
{
18+
DropIndex("scan.ScanOperationStates", "IX_ScanOperationStates_PackageValidationKey_OperationType_AttemptIndex");
19+
DropColumn("scan.ScanOperationStates", "OperationDetails");
20+
DropColumn("scan.ScanOperationStates", "ErrorCode");
21+
CreateIndex("scan.ScanOperationStates", new[] { "PackageValidationKey", "AttemptIndex" }, unique: true, name: "IX_ScanOperationStates_PackageValidationKey_AttemptIndex");
22+
}
23+
}
24+
}

0 commit comments

Comments
 (0)