diff --git a/sdk/storage/Azure.Storage.DataMovement/api/Azure.Storage.DataMovement.net6.0.cs b/sdk/storage/Azure.Storage.DataMovement/api/Azure.Storage.DataMovement.net6.0.cs index a2fd3a8d7dac3..32db900941c43 100644 --- a/sdk/storage/Azure.Storage.DataMovement/api/Azure.Storage.DataMovement.net6.0.cs +++ b/sdk/storage/Azure.Storage.DataMovement/api/Azure.Storage.DataMovement.net6.0.cs @@ -5,6 +5,7 @@ public partial class DataTransfer internal DataTransfer() { } public bool HasCompleted { get { throw null; } } public string Id { get { throw null; } } + public Azure.Storage.DataMovement.TransferManager TransferManager { get { throw null; } } public Azure.Storage.DataMovement.StorageTransferStatus TransferStatus { get { throw null; } } public System.Threading.Tasks.Task AwaitCompletion(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public void EnsureCompleted(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { } diff --git a/sdk/storage/Azure.Storage.DataMovement/api/Azure.Storage.DataMovement.netstandard2.0.cs b/sdk/storage/Azure.Storage.DataMovement/api/Azure.Storage.DataMovement.netstandard2.0.cs index a2fd3a8d7dac3..32db900941c43 100644 --- a/sdk/storage/Azure.Storage.DataMovement/api/Azure.Storage.DataMovement.netstandard2.0.cs +++ b/sdk/storage/Azure.Storage.DataMovement/api/Azure.Storage.DataMovement.netstandard2.0.cs @@ -5,6 +5,7 @@ public partial class DataTransfer internal DataTransfer() { } public bool HasCompleted { get { throw null; } } public string Id { get { throw null; } } + public Azure.Storage.DataMovement.TransferManager TransferManager { get { throw null; } } public Azure.Storage.DataMovement.StorageTransferStatus TransferStatus { get { throw null; } } public System.Threading.Tasks.Task AwaitCompletion(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public void EnsureCompleted(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { } diff --git a/sdk/storage/Azure.Storage.DataMovement/src/Shared/DataTransfer.cs b/sdk/storage/Azure.Storage.DataMovement/src/Shared/DataTransfer.cs index f4d855bd9019d..8b67014e2a54f 100644 --- a/sdk/storage/Azure.Storage.DataMovement/src/Shared/DataTransfer.cs +++ b/sdk/storage/Azure.Storage.DataMovement/src/Shared/DataTransfer.cs @@ -1,10 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Text; using System.Threading; using System.Threading.Tasks; using Azure.Core; @@ -13,7 +9,7 @@ namespace Azure.Storage.DataMovement { /// - /// Holds transfer information + /// Holds transfer information. /// public class DataTransfer { @@ -32,6 +28,11 @@ public class DataTransfer /// public string Id => _state.Id; + /// + /// The responsible for this transfer. + /// + public TransferManager TransferManager { get; } + /// /// Defines the current state of the transfer. /// @@ -48,13 +49,17 @@ internal DataTransfer() /// Constructing a DataTransfer object. /// /// The transfer ID of the transfer object. + /// Reference to the transfer manager running this transfer. /// The Transfer Status of the Transfer. See . internal DataTransfer( string id, + TransferManager transferManager, StorageTransferStatus status = StorageTransferStatus.Queued) { Argument.AssertNotNullOrEmpty(id, nameof(id)); + Argument.AssertNotNull(transferManager, nameof(transferManager)); _state = new DataTransferState(id, status); + TransferManager = transferManager; } /// diff --git a/sdk/storage/Azure.Storage.DataMovement/src/Shared/TransferManager.cs b/sdk/storage/Azure.Storage.DataMovement/src/Shared/TransferManager.cs index 060aa55c94df9..14905316ac21b 100644 --- a/sdk/storage/Azure.Storage.DataMovement/src/Shared/TransferManager.cs +++ b/sdk/storage/Azure.Storage.DataMovement/src/Shared/TransferManager.cs @@ -460,7 +460,7 @@ private async Task BuildAndAddTransferJobAsync( bool resumeJob, CancellationToken cancellationToken) { - DataTransfer dataTransfer = new DataTransfer(id: transferId); + DataTransfer dataTransfer = new DataTransfer(id: transferId, transferManager: this); _dataTransfers.Add(dataTransfer.Id, dataTransfer); TransferJobInternal transferJobInternal; @@ -805,6 +805,7 @@ private async Task SetDataTransfers() _dataTransfers.Add(transferId, new DataTransfer( id: transferId, + transferManager: this, status: header.AtomicJobStatus)); } } diff --git a/sdk/storage/Azure.Storage.DataMovement/tests/DataTransferTests.cs b/sdk/storage/Azure.Storage.DataMovement/tests/DataTransferTests.cs index 5f111c8d058b0..81d5e9156f030 100644 --- a/sdk/storage/Azure.Storage.DataMovement/tests/DataTransferTests.cs +++ b/sdk/storage/Azure.Storage.DataMovement/tests/DataTransferTests.cs @@ -18,12 +18,14 @@ public void Ctor_Default() { // Arrange string transferId = GetNewTransferId(); + TransferManager transferManager = new(); // Act - DataTransfer transfer = new DataTransfer(id: transferId); + DataTransfer transfer = new DataTransfer(id: transferId, transferManager: transferManager); // Assert Assert.AreEqual(transferId, transfer.Id); + Assert.AreEqual(transferManager, transfer.TransferManager); Assert.IsFalse(transfer.HasCompleted); } @@ -38,14 +40,17 @@ public void HasCompleted_False(StorageTransferStatus status) { // Arrange string transferId = GetNewTransferId(); + TransferManager transferManager = new(); // Act DataTransfer transfer = new DataTransfer( id: transferId, + transferManager: transferManager, status: status); // Assert Assert.AreEqual(transferId, transfer.Id); + Assert.AreEqual(transferManager, transfer.TransferManager); Assert.IsFalse(transfer.HasCompleted); } @@ -57,14 +62,17 @@ public void HasCompleted_True(StorageTransferStatus status) { // Arrange string transferId = GetNewTransferId(); + TransferManager transferManager = new(); // Act DataTransfer transfer = new DataTransfer( id: transferId, + transferManager: transferManager, status: status); // Assert Assert.AreEqual(transferId, transfer.Id); + Assert.AreEqual(transferManager, transfer.TransferManager); Assert.IsTrue(transfer.HasCompleted); } @@ -73,9 +81,11 @@ public void EnsureCompleted() { // Arrange string transferId = GetNewTransferId(); + TransferManager transferManager = new(); DataTransfer transfer = new DataTransfer( id: transferId, + transferManager: transferManager, status: StorageTransferStatus.Completed); // Act @@ -83,6 +93,7 @@ public void EnsureCompleted() // Assert Assert.AreEqual(transferId, transfer.Id); + Assert.AreEqual(transferManager, transfer.TransferManager); Assert.IsTrue(transfer.HasCompleted); } @@ -94,6 +105,7 @@ public void EnsureCompleted_CancellationToken() DataTransfer transfer = new DataTransfer( id: transferId, + transferManager: new(), status: StorageTransferStatus.Queued); CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(1)); @@ -108,9 +120,11 @@ public async Task AwaitCompletion() { // Arrange string transferId = GetNewTransferId(); + TransferManager transferManager = new(); DataTransfer transfer = new DataTransfer( id: transferId, + transferManager: transferManager, status: StorageTransferStatus.Completed); // Act @@ -118,6 +132,7 @@ public async Task AwaitCompletion() // Assert Assert.AreEqual(transferId, transfer.Id); + Assert.AreEqual(transferManager, transfer.TransferManager); Assert.IsTrue(transfer.HasCompleted); } @@ -129,6 +144,7 @@ public void AwaitCompletion_CancellationToken() DataTransfer transfer = new DataTransfer( id: transferId, + transferManager: new(), status: StorageTransferStatus.Queued); CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(1)); @@ -145,6 +161,7 @@ public async Task TryPauseAsync() DataTransfer transfer = new DataTransfer( id: transferId, + transferManager: new(), status: StorageTransferStatus.InProgress); // Act @@ -176,6 +193,7 @@ public async Task TryPauseAsync_AlreadyPaused(StorageTransferStatus status) DataTransfer transfer = new DataTransfer( id: transferId, + transferManager: new(), status: status); Assert.AreEqual(status, transfer.TransferStatus); @@ -191,6 +209,7 @@ public async Task TryPauseAsync_CancellationToken() DataTransfer transfer = new DataTransfer( id: transferId, + transferManager: new(), status: StorageTransferStatus.InProgress); CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(1)); diff --git a/sdk/storage/Azure.Storage.DataMovement/tests/GetTransfersTests.cs b/sdk/storage/Azure.Storage.DataMovement/tests/GetTransfersTests.cs index d08dd8e25229a..ecb614934a040 100644 --- a/sdk/storage/Azure.Storage.DataMovement/tests/GetTransfersTests.cs +++ b/sdk/storage/Azure.Storage.DataMovement/tests/GetTransfersTests.cs @@ -43,6 +43,7 @@ private DataTransfer GetNewDataTransfer( { return new DataTransfer( id: Guid.NewGuid().ToString(), + transferManager: new(), status: status); }