Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
98 changes: 94 additions & 4 deletions src/Storage/RegressionTests/dataplane.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@ BeforeAll {
$globalNode = $config.SelectSingleNode("config/section[@id='global']")
$testNode = $config.SelectSingleNode("config/section[@id='dataplane']")

# $rootFolder = "C:\temp" # The folder should be created before tests
# cd $rootFolder

$resourceGroupName = $globalNode.resourceGroupName
$storageAccountName = $testNode.SelectSingleNode("accountName[@id='1']").'#text'
$storageAccountName2 = $testNode.SelectSingleNode("accountName[@id='2']").'#text'
Expand Down Expand Up @@ -1144,7 +1141,7 @@ Describe "dataplane test" {
$Error.Count | should -be 0
}

It "Cross type blob copy" {
It "Cross type blob copy" -Tag "crossblobcopy" {
$Error.Clear()

$blobTypes = @("Block", "Page", "Append")
Expand Down Expand Up @@ -1933,6 +1930,99 @@ Describe "dataplane test" {
$Error.Count | should -be 0
}

It "Cold tier" {
$Error.Clear()

$containername1 = GetRandomContainerName + "cold"
New-AzStorageContainer -Name $containername1 -Context $ctx

$blob = Set-AzStorageBlobContent -Container $containername1 -File $localSmallSrcFile -Blob test1 -StandardBlobTier Cold -Properties @{"ContentType" = "image/jpeg"} -Metadata @{"tag1" = "value1"} -Context $ctx
$blob.Name | Should -Be "test1"
$blob.AccessTier | Should -Be "Cold"
$blob.BlobProperties.ContentType | Should -Be "image/jpeg"

$blob = Set-AzStorageBlobContent -Container $containerName1 -File $localBigSrcFile -Blob test2 -StandardBlobTier Cold -Context $ctx
$blob.Name | Should -Be "test2"
$blob.AccessTier | Should -Be "Cold"

$blob.BlobBaseClient.SetAccessTier("Cold")
$blob.AccessTier | Should -Be "Cold"
$blob.Name | Should -Be "test2"

$blob = Get-AzStorageBlob -Container $containerName1 -Blob test1 -Context $ctx
$blob.AccessTier | Should -Be "Cold"
$blob.Name | Should -Be "test1"
$blob.BlobProperties.ContentType | Should -Be "image/jpeg"

$destBlobName = "destblob1"
$copyblob = $blob | Copy-AzStorageBlob -DestContainer $containerName1 -DestBlob $destBlobName -Force
$copyblob.Name | Should -Be $destBlobName
$copyblob.AccessTier | Should -Be "Hot"
$copyBlob.BlobProperties.ContentType | Should -Be "image/jpeg"

$copyblob = Copy-AzStorageBlob -SrcBlob $blob.Name -SrcContainer $containerName1 -DestContainer $containerName -DestBlob $destBlobName -StandardBlobTier Cold -Context $ctx -Force
$copyblob.Name | Should -Be $destBlobName
$copyblob.AccessTier | Should -Be "Cold"
$copyBlob.BlobProperties.ContentType | Should -Be "image/jpeg"

$largeBlob = Get-AzStorageBlob -Blob test2 -Container $containerName1 -Context $ctx
$copyblob = $largeblob | Copy-AzStorageBlob -DestContainer $containerName1 -DestBlob $destBlobName -StandardBlobTier Cold -Force
$copyblob.Name | Should -Be $destBlobName
$copyblob.AccessTier | Should -Be "Cold"

Start-AzStorageBlobCopy -DestContainer $containerName1 -DestBlob $destBlobName -StandardBlobTier Cold -SrcContainer $containerName1 -SrcBlob test1 -Force -Context $ctx -RehydratePriority Standard
$copyblob = Get-AzStorageBlob -Container $containerName1 -Blob $destBlobName -Context $ctx
$copyblob.Name | Should -Be $destBlobName
$copyblob.AccessTier | Should -Be "Cold"
$copyBlob.BlobProperties.ContentType | Should -Be "image/jpeg"

Remove-AzStorageContainer -Name $containername1 -Context $ctx -Force

$Error.Count | should -be 0
}

It "Queue track2 migration" {
$Error.Clear()

New-AzStorageQueue -Name testq1 -Context $ctx

$sas = New-AzStorageQueueSASToken -Name testq1 -Context $ctx -Permission ruap
$sas | Should -BeLike "*sp=raup*"
$sasctx = New-AzStorageContext -StorageAccountName $storageAccountName -SasToken $sas
$q = Get-AzStorageQueue -Name testq1 -Context $sasctx
$q.Name | Should -Be "testq1"
$q.Context.StorageAccount.Credentials.IsSAS | Should -Be $true

$sas = New-AzStorageQueueSASToken -Name testq1 -Context $ctx -Permission rap -StartTime 2023-04-20 -ExpiryTime 2223-08-05
$sasctx = New-AzStorageContext -StorageAccountName $storageAccountName -SasToken $sas
$sas | Should -BeLike "*st=2023-04-19*se=2223-08-04*"
$q = Get-AzStorageQueue -Name testq1 -Context $sasctx
$q.Name | Should -Be "testq1"
$q.Context.StorageAccount.Credentials.IsSAS | Should -Be $true

$sas = New-AzStorageQueueSASToken -Name testq1 -Context $ctx -Permission raup -Protocol HttpsOnly -IPAddressOrRange 0.0.0.0-255.255.255.255 -ExpiryTime 2223-08-05
$sas | Should -BeLike "*spr=https*se=2223-08-04*sip=0.0.0.0-255.255.255.255*sp=raup*"
$sasctx = New-AzStorageContext -StorageAccountName $storageAccountName -SasToken $sas
$q = Get-AzStorageQueue -Name testq1 -Context $sasctx
$q.Name | Should -Be "testq1"
$q.Context.StorageAccount.Credentials.IsSAS | Should -Be $true

$sas = New-AzStorageQueueSASToken -Name testq1 -Context $ctx -Permission raup -ExpiryTime 2223-08-05 -FullUri
$sas | Should -BeLike "https://$($storageAccountName).queue.core.windows.net/testq1*se=2223-08-04*"

New-AzStorageQueueStoredAccessPolicy -Queue testq1 -Policy p001 -Permission ruap -StartTime 2023-5-1 -ExpiryTime 2223-08-05 -Context $ctx
$sas = New-AzStorageQueueSASToken -Name testq1 -Policy p001 -Context $ctx -Protocol HttpsOnly -IPAddressOrRange 0.0.0.0-255.255.255.255
$sas | Should -BeLike "*spr=https*sip=0.0.0.0-255.255.255.255*si=p001*"
$sasctx = New-AzStorageContext -StorageAccountName $storageAccountName -SasToken $sas
$q = Get-AzStorageQueue -Name testq1 -Context $sasctx
$q.Name | Should -Be "testq1"
$q.Context.StorageAccount.Credentials.IsSAS | Should -Be $true

Remove-AzStorageQueue -Name testq1 -Context $ctx -Force

$Error.Count | should -be 0
}

It "Test case name" {
$Error.Clear()

Expand Down
50 changes: 0 additions & 50 deletions src/Storage/RegressionTests/dataplane_preview.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -42,56 +42,6 @@ Describe "dataplane test for preview" {

}

It "Cold tier preview" {
$Error.Clear()

$accountName = $testNode.SelectSingleNode("accountName[@id='2']").'#text'
$ctx1 = (Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $accountName).Context
$container = New-AzStorageContainer -Name $containerName -Context $ctx1

$blob = Set-AzStorageBlobContent -Container $containerName -File $localSrcFile -Blob test1 -StandardBlobTier Cold -Properties @{"ContentType" = "image/jpeg"} -Metadata @{"tag1" = "value1"} -Context $ctx1
$blob.Name | Should -Be "test1"
$blob.AccessTier | Should -Be "Cold"
$blob.BlobProperties.ContentType | Should -Be "image/jpeg"

$blob = Set-AzStorageBlobContent -Container $containerName -File $localSrcFile2 -Blob test2 -StandardBlobTier Cold -Context $ctx1
$blob.Name | Should -Be "test2"
$blob.AccessTier | Should -Be "Cold"

$blob.BlobBaseClient.SetAccessTier("Cold")
$blob.AccessTier | Should -Be "Cold"
$blob.Name | Should -Be "test2"

$blob = Get-AzStorageBlob -Container $containerName -Blob test1 -Context $ctx1
$blob.AccessTier | Should -Be "Cold"
$blob.Name | Should -Be "test1"
$blob.BlobProperties.ContentType | Should -Be "image/jpeg"

$destBlobName = "destblob1"
$copyblob = $blob | Copy-AzStorageBlob -DestContainer $containerName -DestBlob $destBlobName -Force
$copyblob.Name | Should -Be $destBlobName
$copyblob.AccessTier | Should -Be "Hot"
$copyBlob.BlobProperties.ContentType | Should -Be "image/jpeg"

$copyblob = Copy-AzStorageBlob -SrcBlob $blob.Name -SrcContainer $containerName -DestContainer $containerName -DestBlob $destBlobName -StandardBlobTier Cold -Context $ctx1 -Force
$copyblob.Name | Should -Be $destBlobName
$copyblob.AccessTier | Should -Be "Cold"
$copyBlob.BlobProperties.ContentType | Should -Be "image/jpeg"

$largeBlob = Get-AzStorageBlob -Blob test2 -Container $containerName -Context $ctx1
$copyblob = $largeblob | Copy-AzStorageBlob -DestContainer $containerName -DestBlob $destBlobName -StandardBlobTier Cold -Force
$copyblob.Name | Should -Be $destBlobName
$copyblob.AccessTier | Should -Be "Cold"

Start-AzStorageBlobCopy -DestContainer $containerName -DestBlob $destBlobName -StandardBlobTier Cold -SrcContainer $containerName -SrcBlob test1 -Force -Context $ctx1 -RehydratePriority Standard
$copyblob = Get-AzStorageBlob -Container $containerName -Blob $destBlobName -Context $ctx1
$copyblob.Name | Should -Be $destBlobName
$copyblob.AccessTier | Should -Be "Cold"
$copyBlob.BlobProperties.ContentType | Should -Be "image/jpeg"

Remove-AzStorageContainer -Name $containerName -Context $ctx1 -Force

}

It "File OAuth" {
$Error.Clear()
Expand Down
103 changes: 96 additions & 7 deletions src/Storage/RegressionTests/srp.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -342,9 +342,12 @@ Describe "Management plan test" {

$accountNameLc1 = $accountName + "lc1"
$accountNameLc2 = $accountName + "lc2"
$accountNamePremium = $accountName + "prem"

New-AzStorageAccount -ResourceGroupName $rgname -Name $accountNameLc1 -SkuName Standard_LRS -Location eastus
New-AzStorageAccount -ResourceGroupName $rgname -Name $accountNameLc2 -SkuName Standard_LRS -Location eastus
# create account for TierToHot
New-AzStorageAccount -ResourceGroupName $rgname -Name $accountNamePremium -SkuName Premium_LRS -Location eastus2 -Kind BlockBlobStorage

# Resource id for storage account 2
$id = (Get-AzStorageAccount -ResourceGroupName $rgname -Name $accountNameLc2).Id
Expand Down Expand Up @@ -391,10 +394,19 @@ Describe "Management plan test" {
$rule2.Definition.Filters.PrefixMatch | should -be $null
$rule2.Definition.Filters.BlobTypes.Count | should -be 2

# create Rule3
$action3 = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction TierToCold -DaysAfterCreationGreaterThan 50
$action3 = Add-AzStorageAccountManagementPolicyAction -InputObject $action3 -BaseBlobAction TierToCool -DaysAfterModificationGreaterThan 100
$action3 = Add-AzStorageAccountManagementPolicyAction -InputObject $action3 -SnapshotAction TierToCold -DaysAfterCreationGreaterThan 50
$action3 = Add-AzStorageAccountManagementPolicyAction -InputObject $action3 -BlobVersionAction TierToCold -DaysAfterCreationGreaterThan 100
$filter3 = New-AzStorageAccountManagementPolicyFilter -PrefixMatch prefix1,prefix2
$rule3 = New-AzStorageAccountManagementPolicyRule -Name Test3 -Action $action3 -Filter $filter3


# (Option 1) Set the 2 rules together
$policy = Set-AzStorageAccountManagementPolicy -ResourceGroupName $rgname -StorageAccountName $accountNameLc1 -Rule $rule1,$rule2
$policy = Set-AzStorageAccountManagementPolicy -StorageAccountResourceId $id -Rule $rule1,$rule2
$policy.Rules.Count | should -Be 2
$policy = Set-AzStorageAccountManagementPolicy -ResourceGroupName $rgname -StorageAccountName $accountNameLc1 -Rule $rule1,$rule2,$rule3
$policy = Set-AzStorageAccountManagementPolicy -StorageAccountResourceId $id -Rule $rule1,$rule2,$rule3
$policy.Rules.Count | should -Be 3
$policy.Rules[0].Enabled | should -Be $true
$policy.Rules[0].Name | should -be Test
$policy.Rules[0].Definition.Actions.BaseBlob.TierToCool.daysAfterCreationGreaterThan | should -be 30
Expand All @@ -420,6 +432,14 @@ Describe "Management plan test" {
$policy.Rules[1].Definition.Actions.Version | should -be $null
$policy.Rules[1].Definition.Filters.PrefixMatch | should -be $null
$policy.Rules[1].Definition.Filters.BlobTypes.Count | should -be 2
$policy.Rules[2].Name | Should -Be Test3
$policy.Rules[2].Enabled | Should -Be $true
$policy.Rules[2].Definition.Filters.BlobTypes.Count | Should -Be 1
$policy.Rules[2].Definition.Actions.BaseBlob.TierToCold.DaysAfterCreationGreaterThan | Should -Be 50
$policy.Rules[2].Definition.Actions.BaseBlob.TierToCool.DaysAfterModificationGreaterThan | Should -Be 100
$policy.Rules[2].Definition.Actions.Snapshot.TierToCold.DaysAfterCreationGreaterThan | Should -Be 50
$policy.Rules[2].Definition.Actions.Version.TierToCold.DaysAfterCreationGreaterThan | Should -Be 100
$policy.Rules[2].Definition.Filters.PrefixMatch.Count | Should -Be 2

# (Option 2) Set Policy with 1 command
$policy = Set-AzStorageAccountManagementPolicy -ResourceGroupName $rgname -StorageAccountName $accountNameLc1 -Policy (@{
Expand Down Expand Up @@ -463,9 +483,31 @@ Describe "Management plan test" {
BlobTypes=@("blockBlob","appendblob");
})
})
},
@{
Enabled=$true;
Name="Test3";
Definition=(@{
Actions=(@{
BaseBlob=(@{
TierToCold=@{DaysAfterCreationGreaterThan=50};
TierToCool=@{DaysAfterModificationGreaterThan=100};
});
Snapshot=(@{
TierToCold=@{DaysAfterCreationGreaterThan=50}
});
Version=(@{
TierToCold=@{DaysAfterCreationGreaterThan=100};
});
});
Filters=(@{
BlobTypes=@("blockBlob");
PrefixMatch=@("prefix1","prefix2");
})
})
})
})
$policy.Rules.Count | should -Be 2
$policy.Rules.Count | should -Be 3
$policy.Rules[0].Enabled | should -Be $true
$policy.Rules[0].Name | should -be Test
$policy.Rules[0].Definition.Actions.BaseBlob.TierToCool.DaysAfterCreationGreaterThan | should -be 30
Expand All @@ -491,19 +533,66 @@ Describe "Management plan test" {
$policy.Rules[1].Definition.Actions.Version | should -be $null
$policy.Rules[1].Definition.Filters.PrefixMatch | should -be $null
$policy.Rules[1].Definition.Filters.BlobTypes.Count | should -be 2
$policy.Rules[2].Name | Should -Be Test3
$policy.Rules[2].Enabled | Should -Be $true
$policy.Rules[2].Definition.Filters.BlobTypes.Count | Should -Be 1
$policy.Rules[2].Definition.Actions.BaseBlob.TierToCold.DaysAfterCreationGreaterThan | Should -Be 50
$policy.Rules[2].Definition.Actions.BaseBlob.TierToCool.DaysAfterModificationGreaterThan | Should -Be 100
$policy.Rules[2].Definition.Actions.Snapshot.TierToCold.DaysAfterCreationGreaterThan | Should -Be 50
$policy.Rules[2].Definition.Actions.Version.TierToCold.DaysAfterCreationGreaterThan | Should -Be 100
$policy.Rules[2].Definition.Filters.PrefixMatch.Count | Should -Be 2


$policy2 = Get-AzStorageAccountManagementPolicy -StorageAccountResourceId $id | Set-AzStorageAccountManagementPolicy -ResourceGroupName $rgname -StorageAccountName $accountNameLc2
$policy2.Rules.Count | should -Be 2
$policy2.Rules.Count | should -Be 3

$policy2 = Get-AzStorageAccountManagementPolicy -ResourceGroupName $rgname -StorageAccountName $accountNameLc2
$policy2.Rules.Count | should -Be 2
$policy2.Rules.Count | should -Be 3


# TierToHot
$action4 = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction TierToHot -DaysAfterCreationGreaterThan 50
$action4 = Add-AzStorageAccountManagementPolicyAction -InputObject $action4 -BaseBlobAction TierToCool -DaysAfterCreationGreaterThan 100
$filter4 = New-AzStorageAccountManagementPolicyFilter -PrefixMatch prefix1,prefix2
$rule4 = New-AzStorageAccountManagementPolicyRule -Name Test4 -Action $action4 -Filter $filter4

$policy = Set-AzStorageAccountManagementPolicy -ResourceGroupName $rgname -StorageAccountName $accountNamePremium -Rule $rule4
$policy.Rules.Count | Should -Be 1
$policy.Rules[0].Enabled | Should -Be $true
$policy.Rules[0].Name | Should -Be "Test4"
$policy.Rules[0].Definition.Actions.BaseBlob.TierToHot.DaysAfterCreationGreaterThan | Should -Be 50
$policy.Rules[0].Definition.Actions.BaseBlob.TierToCool.DaysAfterCreationGreaterThan | Should -Be 100
$policy.Rules[0].Definition.Filters.PrefixMatch.Count | Should -Be 2

$policy = Set-AzStorageAccountManagementPolicy -ResourceGroupName $rgname -StorageAccountName $accountNamePremium -Policy (@{
Rules=(@{
Enabled=$false;
Name="Test5";
Definition=(@{
Actions=(@{
BaseBlob=(@{
TierToHot=@{DaysAfterCreationGreaterThan=100};
});
});
Filters=(@{
BlobTypes=@("blockBlob","appendblob");
})
})
})
})
$policy.Rules.Count | Should -Be 1
$policy.Rules.Name | Should -Be "Test5"
$policy.Rules[0].Enabled | Should -Be $false
$policy.Rules[0].Definition.Actions.BaseBlob.TierToHot.DaysAfterCreationGreaterThan | Should -Be 100
$policy.Rules[0].Definition.Filters.BlobTypes.Count | Should -Be 2

Remove-AzStorageAccountManagementPolicy -ResourceGroupName $rgname -StorageAccountName $accountNameLc1 -PassThru

get-Azstorageaccount -ResourceGroupName $rgname -Name $accountNameLc1 | Remove-AzStorageAccountManagementPolicy

Get-AzStorageAccount -ResourceGroupName $rgname -Name $accountNameLc1| Remove-AzStorageAccount -Force
Remove-AzStorageAccount -ResourceGroupName $rgname -Name $accountNameLc2 -Force
Remove-AzStorageAccount -ResourceGroupName $rgname -Name $accountNameLc2 -Force -AsJob
Remove-AzStorageAccount -ResourceGroupName $rgname -Name $accountNamePremium -Force -AsJob

$Error.Count | should -be 0
}
Expand Down
Loading