|
| 1 | +package e2etest |
| 2 | + |
| 3 | +import ( |
| 4 | + "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blob" |
| 5 | + "github.com/Azure/azure-storage-azcopy/v10/common" |
| 6 | +) |
| 7 | + |
| 8 | +func init() { |
| 9 | + suiteManager.RegisterSuite(&AutoDetectBlobTypeTestSuite{}) |
| 10 | +} |
| 11 | + |
| 12 | +type AutoDetectBlobTypeTestSuite struct{} |
| 13 | + |
| 14 | +func (s *AutoDetectBlobTypeTestSuite) Scenario_AutoInferDetectBlobTypeVHD(svm *ScenarioVariationManager) { |
| 15 | + fileName := "myVHD.vHd" // awkward capitalization to see if AzCopy catches it. |
| 16 | + body := NewRandomObjectContentContainer(svm, 4*common.MegaByte) |
| 17 | + |
| 18 | + srcObj := CreateResource[ContainerResourceManager](svm, GetRootResource(svm, ResolveVariation(svm, []common.Location{common.ELocation.Local(), common.ELocation.File(), common.ELocation.Blob()})), ResourceDefinitionContainer{}). |
| 19 | + GetObject(svm, fileName, common.EEntityType.File()) |
| 20 | + srcObj.Create(svm, body, ObjectProperties{}) |
| 21 | + |
| 22 | + dstObj := CreateResource[ContainerResourceManager](svm, GetRootResource(svm, common.ELocation.Blob()), ResourceDefinitionContainer{}). |
| 23 | + GetObject(svm, fileName, common.EEntityType.File()) |
| 24 | + |
| 25 | + // copy vhd file without specifying page blob. Page blob is inferred for VHD, VHDX, and VMDK |
| 26 | + RunAzCopy(svm, AzCopyCommand{ |
| 27 | + Verb: AzCopyVerbCopy, |
| 28 | + Targets: []ResourceManager{srcObj, dstObj}, |
| 29 | + Flags: CopyFlags{ |
| 30 | + CopySyncCommonFlags: CopySyncCommonFlags{ |
| 31 | + Recursive: pointerTo(true), |
| 32 | + BlockSizeMB: pointerTo(4.0), |
| 33 | + }, |
| 34 | + }, |
| 35 | + }) |
| 36 | + |
| 37 | + ValidateResource[ObjectResourceManager](svm, dstObj, ResourceDefinitionObject{ |
| 38 | + Body: body, |
| 39 | + ObjectProperties: ObjectProperties{ |
| 40 | + BlobProperties: BlobProperties{ |
| 41 | + Type: common.Iff(srcObj.Location() == common.ELocation.Blob(), pointerTo(blob.BlobTypeBlockBlob), pointerTo(blob.BlobTypePageBlob)), |
| 42 | + }, |
| 43 | + }, |
| 44 | + }, true) |
| 45 | +} |
0 commit comments