From 6c740b6f846e9bf36b2385997fe9a6ac3e11e3cd Mon Sep 17 00:00:00 2001 From: "Wei Wei (AZURE)" Date: Wed, 4 Jan 2023 17:26:22 +0800 Subject: [PATCH] Some test fix --- src/Storage/RegressionTests/adls.ps1 | 2 +- .../RegressionTests/adls_setaclresusive.ps1 | 50 ++++++++++++++----- src/Storage/RegressionTests/dataplane.ps1 | 6 ++- src/Storage/RegressionTests/runStable.ps1 | 18 +++---- src/Storage/RegressionTests/srp.ps1 | 30 +++++------ 5 files changed, 69 insertions(+), 37 deletions(-) diff --git a/src/Storage/RegressionTests/adls.ps1 b/src/Storage/RegressionTests/adls.ps1 index 87106634a28c..630ec2671867 100644 --- a/src/Storage/RegressionTests/adls.ps1 +++ b/src/Storage/RegressionTests/adls.ps1 @@ -3,7 +3,7 @@ BeforeAll { # Modify the path to your own - Import-Module D:\code\azure-powershell\src\Storage\RegressionTests\utils.ps1 + Import-Module $PSScriptRoot\utils.ps1 [xml]$config = Get-Content D:\code\azure-powershell\src\Storage\RegressionTests\config.xml $globalNode = $config.SelectSingleNode("config/section[@id='global']") diff --git a/src/Storage/RegressionTests/adls_setaclresusive.ps1 b/src/Storage/RegressionTests/adls_setaclresusive.ps1 index 76aecb301b3d..e099cfde188d 100644 --- a/src/Storage/RegressionTests/adls_setaclresusive.ps1 +++ b/src/Storage/RegressionTests/adls_setaclresusive.ps1 @@ -4,15 +4,36 @@ function ResetFileToFail { # Reset the file to make it failure in set acl resusive # New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path dir0/dir1/file1 -Source $localSrcFile -Force | Update-AzDataLakeGen2Item -Permission rwxr-x--- - New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path dir0/dir2/file4 -Source $localSrcFile -Force | Update-AzDataLakeGen2Item -Permission rwxr-x--- - $blob = Get-AzStorageBlob -Container $filesystemName -blob dir0/dir2/file4 -Context $ctx - $leaseID = $blob.ICloudBlob.AcquireLease($null, $null); + $blob = Get-AzStorageBlob -Container $filesystemName -blob dir0/dir2/file4 -Context $ctx + if ($blob.BlobProperties.LeaseStatus -eq "Unlocked") + { + New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path dir0/dir2/file4 -Source $localSrcFile -Force | Update-AzDataLakeGen2Item -Permission rwxr-x--- + $blob = Get-AzStorageBlob -Container $filesystemName -blob dir0/dir2/file4 -Context $ctx + $leaseID = $blob.ICloudBlob.AcquireLease($timespan, $leaseID) + } +} + +function ResetFileToSuccess +{ + # Reset the file to make it success in set acl resusive + $blob = Get-AzStorageBlob -Container $filesystemName -blob dir0/dir2/file4 -Context $ctx + + if (($blob.BlobProperties.LeaseStatus -eq "Locked"))# -and ($blob.BlobProperties.LeaseDuration -eq "Fixed")) + { + $ac = New-Object -TypeName "Microsoft.Azure.Storage.AccessCondition" + $ac.LeaseId = $leaseID + $blob.ICloudBlob.ReleaseLease($ac) + + # sleep 1 + # $blob = Get-AzStorageBlob -Container $filesystemName -blob dir0/dir2/file4 -Context $ctx + } + New-AzDataLakeGen2Item -Context $ctx2 -FileSystem $filesystemName -Path dir0/dir2/file4 -Source $localSrcFile -Force | Update-AzDataLakeGen2Item -Permission rwxr-x--- | Out-Null } BeforeAll { # Modify the path to your own - Import-Module D:\code\azure-powershell\src\Storage\RegressionTests\utils.ps1 + Import-Module $PSScriptRoot\utils.ps1 [xml]$config = Get-Content D:\code\azure-powershell\src\Storage\RegressionTests\config.xml $globalNode = $config.SelectSingleNode("config/section[@id='global']") @@ -31,6 +52,9 @@ BeforeAll { $filesystemName = "adlstest2" $localSrcFile = "C:\temp\testfile_1K_0" #The file needs to exist before tests, and should be 512 bytes aligned $id = $globalNode.applicationId + + # for lease blob to make set acl recusive fail + $timespan = New-Object -TypeName System.TimeSpan -ArgumentList 150000000 $leaseID = $testNode.leaseId @@ -187,6 +211,8 @@ Describe "Set DataLakeGen2 Acl Recursive" { $TotalFilesSuccess = 0 $totalFailure = 0 $FailedEntries = New-Object System.Collections.Generic.List[System.Object] + + ResetFileToFail do { if ($ContinueOnFailure) @@ -224,6 +250,8 @@ Describe "Set DataLakeGen2 Acl Recursive" { $token | should -BeNullOrEmpty $FailedEntries.Count | should -Be 1 + ResetFileToSuccess + $Error.Count | should -be 0 } @@ -239,7 +267,7 @@ Describe "Set DataLakeGen2 Acl Recursive" { $result.FailedEntries.Count | Should -Be 1 # Resume: fix the permission issue and continue set ACL recusive # New-AzDataLakeGen2Item -Context $ctx2 -FileSystem $filesystemName -Path dir0/dir1/file1 -Source $localSrcFile -Force | Update-AzDataLakeGen2Item -Permission rwxr-x--- - New-AzDataLakeGen2Item -Context $ctx2 -FileSystem $filesystemName -Path dir0/dir2/file4 -Source $localSrcFile -Force | Update-AzDataLakeGen2Item -Permission rwxr-x--- | Out-Null + ResetFileToSuccess $result = Set-AzDataLakeGen2AclRecursive -Context $ctx2 -FileSystem $filesystemName -Path dir0 -Acl $acl1 -BatchSize 3 -ContinuationToken $result.ContinuationToken ($result.ContinuationToken -eq $null) | should -Be $true $result.TotalFailureCount | should -Be 0 @@ -258,8 +286,7 @@ Describe "Set DataLakeGen2 Acl Recursive" { $result.TotalFailureCount | should -Be 1 $result.FailedEntries.Count | Should -Be 1 # Resume: fix the permission issue and continue set ACL recusive - # New-AzDataLakeGen2Item -Context $ctx2 -FileSystem $filesystemName -Path dir0/dir1/file1 -Source $localSrcFile -Force | Update-AzDataLakeGen2Item -Permission rwxr-x--- - New-AzDataLakeGen2Item -Context $ctx2 -FileSystem $filesystemName -Path dir0/dir2/file4 -Source $localSrcFile -Force | Update-AzDataLakeGen2Item -Permission rwxr-x--- + ResetFileToSuccess $result = Update-AzDataLakeGen2AclRecursive -Context $ctx2 -FileSystem $filesystemName -Path dir0 -Acl $acl2 -BatchSize 3 -ContinuationToken $result.ContinuationToken ($result.ContinuationToken -eq $null) | should -Be $true $result.TotalFailureCount | should -Be 0 @@ -278,8 +305,7 @@ Describe "Set DataLakeGen2 Acl Recursive" { $result.TotalFailureCount | should -Be 1 $result.FailedEntries.Count | Should -Be 1 # Resume: fix the permission issue and continue set ACL recusive - # New-AzDataLakeGen2Item -Context $ctx2 -FileSystem $filesystemName -Path dir0/dir1/file1 -Source $localSrcFile -Force | Update-AzDataLakeGen2Item -Permission rwxr-x--- - New-AzDataLakeGen2Item -Context $ctx2 -FileSystem $filesystemName -Path dir0/dir2/file4 -Source $localSrcFile -Force | Update-AzDataLakeGen2Item -Permission rwxr-x--- + ResetFileToSuccess $result = Remove-AzDataLakeGen2AclRecursive -Context $ctx2 -FileSystem $filesystemName -Path dir0 -Acl $acl2 -BatchSize 20 -ContinuationToken $result.ContinuationToken ($result.ContinuationToken -eq $null) | should -Be $true $result.TotalFailureCount | should -Be 0 @@ -302,7 +328,7 @@ Describe "Set DataLakeGen2 Acl Recursive" { foreach ($path in $result.FailedEntries.Name) { # fix failed entry - New-AzDataLakeGen2Item -Context $ctx2 -FileSystem $filesystemName -Path $path -Source $localSrcFile -Force # | Update-AzDataLakeGen2Item -Permission rwxr-x--- + ResetFileToSuccess #setACL again $result = Set-AzDataLakeGen2AclRecursive -Context $ctx2 -FileSystem $filesystemName -Path $path -Acl $acl1 $result.ContinuationToken | should -BeNullOrEmpty @@ -333,7 +359,7 @@ Describe "Set DataLakeGen2 Acl Recursive" { foreach ($path in $result.FailedEntries.Name) { # fix failed entry - New-AzDataLakeGen2Item -Context $ctx2 -FileSystem $filesystemName -Path $path -Source $localSrcFile -Force | Update-AzDataLakeGen2Item -Permission rwxr-x--- + ResetFileToSuccess #setACL again $result = Update-AzDataLakeGen2AclRecursive -Context $ctx2 -FileSystem $filesystemName -Path $path -Acl $acl2 $result.ContinuationToken | should -BeNullOrEmpty @@ -364,7 +390,7 @@ Describe "Set DataLakeGen2 Acl Recursive" { foreach ($path in $result.FailedEntries.Name) { # fix failed entry - New-AzDataLakeGen2Item -Context $ctx2 -FileSystem $filesystemName -Path $path -Source $localSrcFile -Force | Update-AzDataLakeGen2Item -Permission rwxr-x--- + ResetFileToSuccess #setACL again $result = Remove-AzDataLakeGen2AclRecursive -Context $ctx2 -FileSystem $filesystemName -Path $path -Acl $acl2 $result.ContinuationToken | should -BeNullOrEmpty diff --git a/src/Storage/RegressionTests/dataplane.ps1 b/src/Storage/RegressionTests/dataplane.ps1 index 17d2c194a90e..bcf0105cb776 100644 --- a/src/Storage/RegressionTests/dataplane.ps1 +++ b/src/Storage/RegressionTests/dataplane.ps1 @@ -2,7 +2,7 @@ BeforeAll { # Modify the path to your own - Import-Module D:\code\azure-powershell\src\Storage\RegressionTests\utils.ps1 + Import-Module $PSScriptRoot\utils.ps1 [xml]$config = Get-Content D:\code\azure-powershell\src\Storage\RegressionTests\config.xml $globalNode = $config.SelectSingleNode("config/section[@id='global']") @@ -181,9 +181,13 @@ Describe "dataplane test" { $sas = New-AzStorageBlobSASToken -container $containerName -Blob test.txt -Permission w -Context $ctx $ctxsas = New-AzStorageContext -StorageAccountName $ctx.StorageAccountName -SasToken $sas.Substring(1) $bs = Get-AzStorageBlob -Container $containerName -Context $ctx + $bs[0].ListBlobProperties | should -Not -Be $null + $bs[0].ListBlobProperties.Properties | should -Not -Be $null + $bs[0].ListBlobProperties.Properties.BlobType | should -Not -Be $null $bs[0].BlobProperties | should -Not -Be $null $b = Get-AzStorageBlob -Container $containerName -Blob $bs[0].Name -Context $ctx $b.BlobProperties | should -Not -Be $null + $b.ListBlobProperties | should -Be $null #copy with oauth # cross account diff --git a/src/Storage/RegressionTests/runStable.ps1 b/src/Storage/RegressionTests/runStable.ps1 index 175a6ad16304..4176fa2dd214 100644 --- a/src/Storage/RegressionTests/runStable.ps1 +++ b/src/Storage/RegressionTests/runStable.ps1 @@ -1,21 +1,21 @@  -Import-Module d:\code\PSH_Dev\artifacts\Debug\Az.Accounts\Az.Accounts.psd1 -Import-Module d:\code\PSH_Dev\artifacts\Debug\Az.Storage\Az.Storage.psd1 +#Import-Module d:\code\PSH_Dev\artifacts\Debug\Az.Accounts\Az.Accounts.psd1 +#Import-Module d:\code\PSH_Dev\artifacts\Debug\Az.Storage\Az.Storage.psd1 -Import-Module C:\Users\weiwei\Desktop\PSH_Script\PSHTest\utils.ps1 -Import-Module C:\Users\weiwei\Desktop\PSH_Script\Assert.ps1 +Import-Module $PSScriptRoot\utils.ps1 +# Import-Module $PSScriptRoot\Assert.ps1 # $preview = $true -Invoke-Pester C:\Users\weiwei\Desktop\PSH_Script\PSHTest\dataplane.ps1 -Show All -Strict # -TagFilter ToTest # -TagFilter blobversion,qq -Invoke-Pester C:\Users\weiwei\Desktop\PSH_Script\PSHTest\adls.ps1 -Show All -Strict -Invoke-Pester C:\Users\weiwei\Desktop\PSH_Script\PSHTest\adls_setaclresusive.ps1 -Show All -Strict -Invoke-Pester C:\Users\weiwei\Desktop\PSH_Script\PSHTest\srp.ps1 -Show All -Strict -ExcludeTagFilter "longrunning" # -TagFilter "fail" +Invoke-Pester $PSScriptRoott\dataplane.ps1 -Show All -Strict # -TagFilter ToTest # -TagFilter blobversion,qq +Invoke-Pester $PSScriptRoot\adls.ps1 -Show All -Strict +Invoke-Pester $PSScriptRoot\adls_setaclresusive.ps1 -Show All -Strict +Invoke-Pester $PSScriptRoot\srp.ps1 -Show All -Strict -ExcludeTagFilter "longrunning" # -TagFilter "fail" -Invoke-Pester C:\Users\weiwei\Desktop\PSH_Script\PSHTest\srp.ps1 -Show All -Strict -TagFilter "longrunning" +Invoke-Pester $PSScriptRoot\srp.ps1 -Show All -Strict -TagFilter "longrunning" #Invoke-Pester C:\Users\weiwei\Desktop\PSH_Script\PSHTest\dataplane.ps1 -Show All -Strict -TagFilter accesspolicy diff --git a/src/Storage/RegressionTests/srp.ps1 b/src/Storage/RegressionTests/srp.ps1 index 275be1ce97e0..21f23cd96c7c 100644 --- a/src/Storage/RegressionTests/srp.ps1 +++ b/src/Storage/RegressionTests/srp.ps1 @@ -1,11 +1,11 @@ # Invoke-Pester C:\Users\weiwei\Desktop\PSH_Script\PSHTest\dataplane.ps1 -Show All -Strict -ExcludeTagFilter "Preview" BeforeAll { - Import-Module D:\code\azure-powershell\artifacts\Debug\Az.Accounts\Az.Accounts.psd1 - Import-Module D:\code\azure-powershell\artifacts\Debug\Az.Storage\Az.Storage.psd1 + # Import-Module D:\code\azure-powershell\artifacts\Debug\Az.Accounts\Az.Accounts.psd1 + # Import-Module D:\code\azure-powershell\artifacts\Debug\Az.Storage\Az.Storage.psd1 # Modify the path to your own - Import-Module D:\code\azure-powershell\src\Storage\RegressionTests\utils.ps1 + Import-Module $PSScriptRoot\utils.ps1 [xml]$config = Get-Content D:\code\azure-powershell\src\Storage\RegressionTests\config.xml $globalNode = $config.SelectSingleNode("config/section[@id='global']") @@ -41,17 +41,17 @@ Describe "Management plan test" { $accountNameBasic = $accountName + "basic" - $account = New-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $accountNameBasic -SkuName Standard_GRS -Location "eastus2euap" -Kind StorageV2 -EnableHierarchicalNamespace $true -EnableHttpsTrafficOnly $true -AllowCrossTenantReplication $false -PublicNetworkAccess Disabled # -AllowedCopyScope AAD + $account = New-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $accountNameBasic -SkuName Standard_GRS -Location "westus" -Kind StorageV2 -EnableHierarchicalNamespace $true -EnableHttpsTrafficOnly $true -AllowCrossTenantReplication $false -PublicNetworkAccess Disabled -AllowedCopyScope AAD $account.ResourceGroupName | should -Be $rgname $account.StorageAccountName | should -Be $accountNameBasic $account.Sku.Name | should -Be "Standard_GRS" - $account.Location | should -Be "eastus2euap" + $account.Location | should -Be "westus" $account.EnableHierarchicalNamespace | should -Be $true $account.EnableHttpsTrafficOnly | should -Be $true $account.Kind | should -Be "StorageV2" $account.AllowCrossTenantReplication | should -Be $false $account.PublicNetworkAccess | should -Be Disabled - # $account.AllowedCopyScope | should -Be AAD + $account.AllowedCopyScope | should -Be AAD $result = Get-AzStorageAccountNameAvailability -Name $accountNameBasic $result.NameAvailable | should -Be $false @@ -59,11 +59,13 @@ Describe "Management plan test" { $account = Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $accountNameBasic | Set-AzStorageAccount -EnableHttpsTrafficOnly $false -AccessTier cool -Force $account.EnableHttpsTrafficOnly | should -Be $false $account.AccessTier | should -Be "Cool" - $account = Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $accountNameBasic | Set-AzStorageAccount -UpgradeToStorageV2 -PublicNetworkAccess Enabled + $account = Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $accountNameBasic | Set-AzStorageAccount -UpgradeToStorageV2 -PublicNetworkAccess Enabled -AllowedCopyScope PrivateLink $account.Kind | should -Be "StorageV2" + $account.AllowedCopyScope | should -Be PrivateLink $account = Get-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $accountNameBasic -IncludeGeoReplicationStats ($account.GeoReplicationStats -eq $null) | should -Be $false $account.PublicNetworkAccess | should -Be Enabled + $account.AllowedCopyScope | should -Be PrivateLink Remove-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $accountNameBasic -Force -AsJob @@ -674,7 +676,7 @@ Describe "Management plan test" { $accountNameEncryp = $accountName + "ska" - $account = New-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $accountNameEncryp -SkuName Standard_LRS -Location 'East US 2 EUAP' -Kind StorageV2 -EncryptionKeyTypeForTable Account -EncryptionKeyTypeForQueue Account -AllowSharedKeyAccess $false + $account = New-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $accountNameEncryp -SkuName Standard_LRS -Location 'westus' -Kind StorageV2 -EncryptionKeyTypeForTable Account -EncryptionKeyTypeForQueue Account -AllowSharedKeyAccess $false $account.Encryption.Services.Queue.Keytype | should -be "account" $account.Encryption.Services.Table.Keytype | should -be "account" $account.AllowSharedKeyAccess | Should -be $false @@ -1148,7 +1150,7 @@ Describe "Management plan test" { $rgname = $globalNode.resourceGroupName $accountNamePITR = $accountName + "pitr" - New-AzStorageAccount -ResourceGroupName $rgname -Name $accountNamePITR -SkuName Standard_LRS -Location eastus2euap + New-AzStorageAccount -ResourceGroupName $rgname -Name $accountNamePITR -SkuName Standard_LRS -Location westus Enable-AzStorageBlobDeleteRetentionPolicy -ResourceGroupName $rgname -StorageAccountName $accountNamePITR -RetentionDays 5 Update-AzStorageBlobServiceProperty -ResourceGroupName $rgname -StorageAccountName $accountNamePITR -EnableChangeFeed $true -IsVersioningEnabled $true Enable-AzStorageBlobRestorePolicy -ResourceGroupName $rgname -StorageAccountName $accountNamePITR -RestoreDays 4 -PassThru @@ -2147,11 +2149,11 @@ Describe "Management plan test" { $vnet1 = $testNode.nfsv3.vnet # Commands to create a vnet - # New-AzVirtualNetwork -ResourceGroupName $rgname -Location "eastus2euap" -AddressPrefix 10.0.0.0/24 -Name "vnet1" + # New-AzVirtualNetwork -ResourceGroupName $rgname -Location "westus" -AddressPrefix 10.0.0.0/24 -Name "vnet1" # $n = Get-AzVirtualNetwork -ResourceGroupName $rgname -Name "vnet1" | Add-AzVirtualNetworkSubnetConfig -Name "subnet1" -AddressPrefix "10.0.0.0/28" -ServiceEndpoint "Microsoft.Storage" | Set-AzVirtualNetwork $accountNameNfsv3 = $accountName + "nfsv3" - $a = New-AzStorageAccount -ResourceGroupName $rgname -Name $accountNameNfsv3 -SkuName Standard_LRS -Location centraluseuap -Kind StorageV2 -EnableNfsV3 $true -EnableHierarchicalNamespace $true -EnableHttpsTrafficOnly $false ` + $a = New-AzStorageAccount -ResourceGroupName $rgname -Name $accountNameNfsv3 -SkuName Standard_LRS -Location westus -Kind StorageV2 -EnableNfsV3 $true -EnableHierarchicalNamespace $true -EnableHttpsTrafficOnly $false ` -NetworkRuleSet (@{bypass="Logging,Metrics";virtualNetworkRules=(@{VirtualNetworkResourceId="$vnet1";Action="allow"});defaultAction="deny"}) $a.EnableNfsV3 | should -BeTrue @@ -2333,7 +2335,7 @@ Describe "Management plan test" { $Error.Clear() # Create account - $a = New-AzStorageAccount -ResourceGroupName $rgname -Name $accountNameHns -SkuName Standard_LRS -Location centraluseuap -Kind StorageV2 # -EnableHierarchicalNamespace $true + $a = New-AzStorageAccount -ResourceGroupName $rgname -Name $accountNameHns -SkuName Standard_LRS -Location westus -Kind StorageV2 # -EnableHierarchicalNamespace $true $a.EnableHierarchicalNamespace | should -be $null # Validation @@ -2344,7 +2346,7 @@ Describe "Management plan test" { # stop upgrade (will fail) Stop-AzStorageAccountHierarchicalNamespaceUpgrade -ResourceGroupName $rgname -Name $accountNameHns -Force -PassThru -ErrorAction SilentlyContinue - $error[0].Exception.Message | should -Be "Hns migration for the account: $($accountName) is not found." + $error[0].Exception.Message | should -Be "Hns migration for the account: $($accountNameHns) is not found." $error.Count | should -be 1 $error.Clear() @@ -2407,7 +2409,7 @@ Describe "Management plan test" { $Error.Clear() $accountNameVLW = $testNode.SelectSingleNode("accountName[@id='1']").'#text' ## e.g. “testaccount” - $ctx = (Get-AzStorageAccount -ResourceGroupName $rgname -Name $accountName).Context + $ctx = (Get-AzStorageAccount -ResourceGroupName $rgname -Name $accountNameVLW).Context $containerNameVLW = "vlwtest" $containerNameVLW2 = "vlwtestmigration2" $localSrcFile = "C:\temp\testfile_10240K_0"