Skip to content

Commit 8a951a9

Browse files
[Storage][DataMovement] Update checkpoint schema versions for GA (Azure#47741)
1 parent 1fbfe17 commit 8a951a9

25 files changed

+72
-206
lines changed

sdk/storage/Azure.Storage.DataMovement.Blobs/src/BlobCheckpointData.cs

Lines changed: 0 additions & 26 deletions
This file was deleted.

sdk/storage/Azure.Storage.DataMovement.Blobs/src/BlobDestinationCheckpointData.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@
1111

1212
namespace Azure.Storage.DataMovement.Blobs
1313
{
14-
internal class BlobDestinationCheckpointData : BlobCheckpointData
14+
internal class BlobDestinationCheckpointData : StorageResourceCheckpointData
1515
{
16+
public int Version;
17+
1618
/// <summary>
1719
/// The type of blob.
1820
/// </summary>
@@ -74,8 +76,8 @@ public BlobDestinationCheckpointData(
7476
AccessTier? accessTier,
7577
DataTransferProperty<Metadata> metadata,
7678
DataTransferProperty<Tags> tags)
77-
: base(DataMovementBlobConstants.DestinationCheckpointData.SchemaVersion)
7879
{
80+
Version = DataMovementBlobConstants.DestinationCheckpointData.SchemaVersion;
7981
BlobType = blobType;
8082
PreserveBlobType = blobType?.Preserve ?? true;
8183
BlobTypeValue = blobType?.Value != default ? blobType.Value : default;
@@ -266,7 +268,7 @@ internal static BlobDestinationCheckpointData Deserialize(Stream stream)
266268
int version = reader.ReadInt32();
267269
if (version != DataMovementBlobConstants.DestinationCheckpointData.SchemaVersion)
268270
{
269-
throw Errors.UnsupportedJobSchemaVersionHeader(version.ToString());
271+
throw Errors.UnsupportedJobSchemaVersionHeader(version);
270272
}
271273

272274
// Index Values

sdk/storage/Azure.Storage.DataMovement.Blobs/src/BlobSourceCheckpointData.cs

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,17 @@
22
// Licensed under the MIT License.
33

44
using System.IO;
5-
using Azure.Storage.Blobs.Models;
6-
using Azure.Storage.Common;
75

86
namespace Azure.Storage.DataMovement.Blobs
97
{
10-
internal class BlobSourceCheckpointData : BlobCheckpointData
8+
internal class BlobSourceCheckpointData : StorageResourceCheckpointData
119
{
12-
public BlobSourceCheckpointData()
13-
: base(DataMovementBlobConstants.SourceCheckpointData.SchemaVersion)
14-
{
15-
}
16-
17-
public override int Length => DataMovementBlobConstants.SourceCheckpointData.DataSize;
10+
public override int Length => 0;
1811

1912
protected override void Serialize(Stream stream)
2013
{
21-
Argument.AssertNotNull(stream, nameof(stream));
22-
BinaryWriter writer = new BinaryWriter(stream);
23-
24-
// Version
25-
writer.Write(Version);
2614
}
2715

28-
internal static BlobSourceCheckpointData Deserialize(Stream stream)
29-
{
30-
Argument.AssertNotNull(stream, nameof(stream));
31-
BinaryReader reader = new BinaryReader(stream);
32-
33-
// Version
34-
int version = reader.ReadInt32();
35-
if (version != DataMovementBlobConstants.SourceCheckpointData.SchemaVersion)
36-
{
37-
throw Errors.UnsupportedJobSchemaVersionHeader(version.ToString());
38-
}
39-
40-
return new BlobSourceCheckpointData();
41-
}
16+
internal static BlobSourceCheckpointData Deserialize(Stream stream) => new();
4217
}
4318
}

sdk/storage/Azure.Storage.DataMovement.Blobs/src/BlobsStorageResourceProvider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ private StorageResource FromTransferProperties(
236236
bool getSource,
237237
CancellationToken cancellationToken)
238238
{
239-
BlobCheckpointData checkpointData = properties.GetCheckpointData(getSource);
239+
StorageResourceCheckpointData checkpointData = properties.GetCheckpointData(getSource);
240240

241241
ResourceType type = GetType(checkpointData, properties.IsContainer);
242242
Uri uri = getSource ? properties.SourceUri : properties.DestinationUri;
@@ -725,7 +725,7 @@ public StorageResource Rehydrate(
725725
}
726726
#endregion
727727

728-
private static ResourceType GetType(BlobCheckpointData checkpointData, bool isContainer)
728+
private static ResourceType GetType(StorageResourceCheckpointData checkpointData, bool isContainer)
729729
{
730730
if (isContainer)
731731
{

sdk/storage/Azure.Storage.DataMovement.Blobs/src/DataMovementBlobConstants.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,13 @@ internal class ResourceId
1616

1717
internal class SourceCheckpointData
1818
{
19-
internal const int SchemaVersion = 2;
20-
21-
internal const int VersionIndex = 0;
22-
internal const int DataSize = VersionIndex + IntSizeInBytes;
19+
internal const int DataSize = 0;
2320
}
2421

2522
internal class DestinationCheckpointData
2623
{
27-
internal const int SchemaVersion = 2;
24+
internal const int SchemaVersion_3 = 3;
25+
internal const int SchemaVersion = SchemaVersion_3;
2826

2927
internal const int VersionIndex = 0;
3028
internal const int PreserveBlobTypeIndex = VersionIndex + IntSizeInBytes;

sdk/storage/Azure.Storage.DataMovement.Blobs/src/DataMovementBlobsExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,7 @@ internal static PageBlobUploadPagesFromUriOptions ToUploadPagesFromUriOptions(
507507
};
508508
}
509509

510-
internal static BlobCheckpointData GetCheckpointData(this TransferProperties properties, bool isSource)
510+
internal static StorageResourceCheckpointData GetCheckpointData(this TransferProperties properties, bool isSource)
511511
{
512512
if (isSource)
513513
{

sdk/storage/Azure.Storage.DataMovement.Blobs/tests/BlobDestinationCheckpointDataTests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ private BlobDestinationCheckpointData CreateSetSampleValues()
6262

6363
private void TestAssertSerializedData(BlobDestinationCheckpointData data)
6464
{
65-
string samplePath = Path.Combine("Resources", "BlobDestinationCheckpointData.2.bin");
65+
string samplePath = Path.Combine("Resources", "BlobDestinationCheckpointData.3.bin");
6666
using (MemoryStream dataStream = new MemoryStream(DataMovementBlobConstants.DestinationCheckpointData.VariableLengthStartIndex))
6767
using (FileStream fileStream = File.OpenRead(samplePath))
6868
{
@@ -124,7 +124,7 @@ public void Serialize_NoPreserveTags()
124124
data.PreserveTags = true;
125125
data.TagsBytes = default;
126126

127-
string samplePath = Path.Combine("Resources", "BlobDestinationCheckpointData.2.bin");
127+
string samplePath = Path.Combine("Resources", "BlobDestinationCheckpointData.3.bin");
128128
using (MemoryStream dataStream = new MemoryStream(DataMovementBlobConstants.DestinationCheckpointData.VariableLengthStartIndex))
129129
using (FileStream fileStream = File.OpenRead(samplePath))
130130
{
@@ -163,7 +163,7 @@ public void Serialize_SetAccessTier()
163163
BlobDestinationCheckpointData data = CreateSetSampleValues();
164164
data.AccessTierValue = AccessTier.Cold;
165165

166-
string samplePath = Path.Combine("Resources", "BlobDestinationCheckpointData.2.bin");
166+
string samplePath = Path.Combine("Resources", "BlobDestinationCheckpointData.3.bin");
167167
using (MemoryStream dataStream = new MemoryStream(DataMovementBlobConstants.DestinationCheckpointData.VariableLengthStartIndex))
168168
using (FileStream fileStream = File.OpenRead(samplePath))
169169
{
@@ -198,14 +198,14 @@ public void Deserialize()
198198
}
199199

200200
[Test]
201-
public void Deserialize_File_Version_2()
201+
public void Deserialize_File_Version_3()
202202
{
203-
string samplePath = Path.Combine("Resources", "BlobDestinationCheckpointData.2.bin");
203+
string samplePath = Path.Combine("Resources", "BlobDestinationCheckpointData.3.bin");
204204
using (FileStream stream = File.OpenRead(samplePath))
205205
{
206206
stream.Position = 0;
207207
BlobDestinationCheckpointData deserialized = BlobDestinationCheckpointData.Deserialize(stream);
208-
VerifySampleValues(deserialized, 2);
208+
VerifySampleValues(deserialized, 3);
209209
}
210210
}
211211

sdk/storage/Azure.Storage.DataMovement.Blobs/tests/BlobSourceCheckpointDataTests.cs

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22
// Licensed under the MIT License.
33

44
extern alias DMBlobs;
5-
extern alias BaseBlobs;
65

6+
using System;
77
using System.IO;
8-
using BaseBlobs::Azure.Storage.Blobs.Models;
98
using DMBlobs::Azure.Storage.DataMovement.Blobs;
109
using NUnit.Framework;
1110

@@ -17,25 +16,17 @@ public class BlobSourceCheckpointDataTests
1716
public void Ctor()
1817
{
1918
BlobSourceCheckpointData data = new();
20-
21-
Assert.AreEqual(DataMovementBlobConstants.SourceCheckpointData.SchemaVersion, data.Version);
2219
}
2320

2421
[Test]
2522
public void Serialize()
2623
{
27-
BlobSourceCheckpointData data = new();
24+
byte[] expected = Array.Empty<byte>();
2825

29-
byte[] expected;
30-
using (MemoryStream stream = new MemoryStream(DataMovementBlobConstants.SourceCheckpointData.DataSize))
31-
{
32-
BinaryWriter writer = new BinaryWriter(stream);
33-
writer.Write(DataMovementBlobConstants.SourceCheckpointData.SchemaVersion);
34-
expected = stream.ToArray();
35-
}
26+
BlobSourceCheckpointData data = new();
3627

3728
byte[] actual;
38-
using (MemoryStream stream = new MemoryStream(DataMovementBlobConstants.SourceCheckpointData.DataSize))
29+
using (MemoryStream stream = new())
3930
{
4031
data.Serialize(stream);
4132
actual = stream.ToArray();
@@ -45,20 +36,13 @@ public void Serialize()
4536
}
4637

4738
[Test]
48-
[TestCase(BlobType.Block)]
49-
[TestCase(BlobType.Page)]
50-
[TestCase(BlobType.Append)]
51-
public void Deserialize(BlobType blobType)
39+
public void Deserialize()
5240
{
53-
BlobSourceCheckpointData data = new();
41+
BlobSourceCheckpointData deserialized;
5442

55-
using (Stream stream = new MemoryStream(DataMovementBlobConstants.SourceCheckpointData.DataSize))
43+
using (MemoryStream stream = new())
5644
{
57-
data.Serialize(stream);
58-
stream.Position = 0;
59-
BlobSourceCheckpointData deserialized = BlobSourceCheckpointData.Deserialize(stream);
60-
61-
Assert.AreEqual(DataMovementBlobConstants.SourceCheckpointData.SchemaVersion, deserialized.Version);
45+
deserialized = BlobSourceCheckpointData.Deserialize(Stream.Null);
6246
}
6347
}
6448
}

sdk/storage/Azure.Storage.DataMovement.Blobs/tests/RehydrateBlobResourceTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ private static BlobDestinationCheckpointData GetDefaultDestinationCheckpointData
7777
default,
7878
default);
7979

80-
private static byte[] GetBytes(BlobCheckpointData checkpointData)
80+
private static byte[] GetBytes(StorageResourceCheckpointData checkpointData)
8181
{
8282
using (MemoryStream stream = new MemoryStream())
8383
{

0 commit comments

Comments
 (0)