Skip to content

Commit

Permalink
Merge pull request #772 from dlcs/remove/initialorigin_legacyingest
Browse files Browse the repository at this point in the history
Remove deprecated functionality (LegacyIngestEvent & InitialOrigin)
  • Loading branch information
griffri committed Mar 22, 2024
2 parents 90492d6 + 5270957 commit 15ef522
Show file tree
Hide file tree
Showing 16 changed files with 44 additions and 813 deletions.
5 changes: 0 additions & 5 deletions src/protagonist/DLCS.Core/Settings/DlcsSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,4 @@ public class DlcsSettings
/// URL format for generating manifests for single assets
/// </summary>
public string SingleAssetManifestTemplate { get; set; }

Check warning on line 39 in src/protagonist/DLCS.Core/Settings/DlcsSettings.cs

View workflow job for this annotation

GitHub Actions / test-dotnet

Non-nullable property 'SingleAssetManifestTemplate' must contain a non-null value when exiting constructor. Consider declaring the property as nullable.

/// <summary>
/// If true, the legacy/Deliverator message format is used for requests to Engine
/// </summary>
public bool UseLegacyEngineMessage { get; set; }
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ public class EngineClientTests
private readonly IQueueLookup queueLookup;
private readonly IQueueSender queueSender;
private readonly HttpClient httpClient;

private readonly EngineClient sut;

public EngineClientTests()
{
httpHandler = new ControllableHttpMessageHandler();
Expand All @@ -35,37 +36,17 @@ public EngineClientTests()

queueLookup = A.Fake<IQueueLookup>();
queueSender = A.Fake<IQueueSender>();
}

[Theory]
[InlineData(AssetFamily.File, 'F')]
[InlineData(AssetFamily.Image, 'I')]
[InlineData(AssetFamily.Timebased, 'T')]
public void SynchronousIngest_FailsToCallEngineWithLegacyModel_IfUseLegacyEngineMessageTrue(
AssetFamily family, char expected)
{
// Arrange
var asset = new Asset(AssetId.FromString("99/1/ingest-asset"))

var engineClientOptions = Options.Create(new DlcsSettings
{
Family = family
};

var ingestRequest = new IngestAssetRequest(asset.Id, DateTime.UtcNow);
HttpRequestMessage message = null;
httpHandler.RegisterCallback(r => message = r);
httpHandler.GetResponseMessage("{ \"engine\": \"hello\" }", HttpStatusCode.OK);

var sut = GetSut(true);

// Act
Action action = () => sut.SynchronousIngest(asset).Wait();

// Assert
action.Should().Throw<InvalidOperationException>().WithMessage("Legacy ingest events are no longer supported");
EngineRoot = new Uri("http://engine.dlcs/")
});

sut = new EngineClient(queueLookup, queueSender, httpClient, engineClientOptions, new NullLogger<EngineClient>());
}

[Fact]
public async Task SynchronousIngest_CallsEngineWithCurrentModel_IfUseLegacyEngineMessageFalse()
public async Task SynchronousIngest_CallsEngine()
{
// Arrange
var asset = new Asset(AssetId.FromString("99/1/ingest-asset"))
Expand All @@ -81,8 +62,6 @@ public async Task SynchronousIngest_CallsEngineWithCurrentModel_IfUseLegacyEngin
httpHandler.RegisterCallback(r => message = r);
httpHandler.GetResponseMessage("{ \"engine\": \"hello\" }", HttpStatusCode.OK);

var sut = GetSut(false);

// Act
var statusCode = await sut.SynchronousIngest(asset);

Expand All @@ -102,32 +81,7 @@ public async Task SynchronousIngest_CallsEngineWithCurrentModel_IfUseLegacyEngin
}

[Fact]
public void AsynchronousIngest_FailsToQueueLegacyModel_IfUseLegacyEngineMessageTrue()
{
// Arrange
var asset = new Asset(AssetId.FromString("99/1/ingest-asset"))
{
Family = AssetFamily.Image
};

var ingestRequest = new IngestAssetRequest(asset.Id, DateTime.UtcNow);

var sut = GetSut(true);
string jsonString = string.Empty;
A.CallTo(() => queueLookup.GetQueueNameForFamily(AssetFamily.Image, false)).Returns("test-queue");
A.CallTo(() => queueSender.QueueMessage("test-queue", A<string>._, A<CancellationToken>._))
.Invokes((string _, string message, CancellationToken _) => jsonString = message)
.Returns(true);

// Act
Action action = () => sut.AsynchronousIngest(asset).Wait();

// Assert
action.Should().Throw<InvalidOperationException>().WithMessage("Legacy ingest events are no longer supported");
}

[Fact]
public async Task AsynchronousIngest_QueuesMessageWithCurrentModel_IfUseLegacyEngineMessageFalse()
public async Task AsynchronousIngest_QueuesMessage()
{
// Arrange
var asset = new Asset(AssetId.FromString("99/1/ingest-asset"))
Expand All @@ -139,9 +93,8 @@ public async Task AsynchronousIngest_QueuesMessageWithCurrentModel_IfUseLegacyEn
};

var ingestRequest = new IngestAssetRequest(asset.Id, DateTime.UtcNow);
var sut = GetSut(false);

string jsonString = string.Empty;

var jsonString = string.Empty;
A.CallTo(() => queueLookup.GetQueueNameForFamily(AssetFamily.Image, false)).Returns("test-queue");
A.CallTo(() => queueSender.QueueMessage("test-queue", A<string>._, A<CancellationToken>._))
.Invokes((string _, string message, CancellationToken _) => jsonString = message)
Expand All @@ -163,14 +116,12 @@ public async Task AsynchronousIngest_QueuesMessageWithCurrentModel_IfUseLegacyEn
[Fact]
public async Task GetAllowedAvOptions_RetrievesAllowedAvPolicies()
{
// Act
var sut = GetSut(false);

// Arrange
HttpRequestMessage message = null;
httpHandler.RegisterCallback(r => message = r);
httpHandler.GetResponseMessage("[\"video-mp4-480p\",\"video-webm-720p\",\"audio-mp3-128k\"]", HttpStatusCode.OK);

// Assert
// Act
var returnedAvPolicyOptions = await sut.GetAllowedAvPolicyOptions();

// Assert
Expand All @@ -183,30 +134,17 @@ public async Task GetAllowedAvOptions_RetrievesAllowedAvPolicies()
[Fact]
public async Task GetAllowedAvOptions_ReturnsNull_IfEngineAvPolicyEndpointUnreachable()
{
// Act
var sut = GetSut(false);

// Arrange
HttpRequestMessage message = null;
httpHandler.RegisterCallback(r => message = r);
httpHandler.GetResponseMessage("Not found", HttpStatusCode.NotFound);

// Assert
// Act
var returnedAvPolicyOptions = await sut.GetAllowedAvPolicyOptions();

// Assert
httpHandler.CallsMade.Should().ContainSingle().Which.Should().Be("http://engine.dlcs/allowed-av");
message.Method.Should().Be(HttpMethod.Get);
returnedAvPolicyOptions.Should().BeNull();
}

private EngineClient GetSut(bool useLegacyMessageFormat)
{
var options = Options.Create(new DlcsSettings
{
EngineRoot = new Uri("http://engine.dlcs/"),
UseLegacyEngineMessage = useLegacyMessageFormat
});

return new EngineClient(queueLookup, queueSender, httpClient, options, new NullLogger<EngineClient>());
}
}
6 changes: 0 additions & 6 deletions src/protagonist/DLCS.Repository/Messaging/EngineClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -155,12 +155,6 @@ public async Task<HttpStatusCode> SynchronousIngest(Asset asset, CancellationTok

private string GetJsonString(Asset asset)
{
// If running in legacy mode, the payload should contain the full Legacy JSON string
if (dlcsSettings.UseLegacyEngineMessage)
{
throw new InvalidOperationException("Legacy ingest events are no longer supported");
}

var ingestAssetRequest = new IngestAssetRequest(asset.Id, DateTime.UtcNow);

// Otherwise, it should contain only the Asset ID - for now, this is an Asset object containing just the ID
Expand Down
203 changes: 0 additions & 203 deletions src/protagonist/DLCS.Repository/Messaging/LegacyJsonMessageHelpers.cs

This file was deleted.

Loading

0 comments on commit 15ef522

Please sign in to comment.