Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove deprecated functionality (LegacyIngestEvent & InitialOrigin) #772

Merged
merged 4 commits into from
Mar 22, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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; }

/// <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

This file was deleted.

Loading
Loading