Skip to content

Commit c866e23

Browse files
authored
Update test cases with FileShareOauth, FilePV2, keyvault Fix (Azure#49)
1 parent 63ac81a commit c866e23

File tree

4 files changed

+202
-39
lines changed

4 files changed

+202
-39
lines changed

src/Storage/RegressionTests/config_template.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
<!-- Key vault created under the testing resource group. Refer to test case User identity for creation instructions -->
7171
<keyVault id="1">
7272
<vaultName>placeholder</vaultName>
73+
<keyvaultId>/subscriptions/{subscriptionID}/resourceGroups/{resourceGroupsName}/providers/Microsoft.KeyVault/vaults/{keyVaultName}</keyvaultId>
7374
<keyVaultUri>placeholder</keyVaultUri>
7475
<keyName>placeholder</keyName>
7576
<keyVersion>placeholder</keyVersion>

src/Storage/RegressionTests/dataplane.ps1

Lines changed: 86 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
BeforeAll {
44
# Modify the path to your own
5-
Import-Module .\utils.ps1
5+
Import-Module (get-item .\utils.ps1).FullName
66

7-
[xml]$config = Get-Content .\config.xml
7+
[xml]$config = Get-Content (get-item .\config.xml).FullName
88
$globalNode = $config.SelectSingleNode("config/section[@id='global']")
99
$testNode = $config.SelectSingleNode("config/section[@id='dataplane']")
1010

@@ -276,6 +276,7 @@ Describe "dataplane test" {
276276

277277
Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName -AllowBlobPublicAccess $true
278278
sleep 120 # Set sleep time to 2 min to make sure AllowBlobPublicAccess becomes True
279+
279280
## regression test for Fix Set-AzStorageContainerAcl can clean up the stored Access Policy
280281
New-AzStorageContainerStoredAccessPolicy -Container $containerName -Policy 123 -Permission rw -Context $ctx
281282
New-AzStorageContainerStoredAccessPolicy -Container $containerName -Policy 234 -Permission rwdl -Context $ctx
@@ -1796,7 +1797,7 @@ Describe "dataplane test" {
17961797
# Set-AzStorageFileContent -ShareName $containerName -Path 0size -Source C:\temp\0 -Context $ctx -force
17971798

17981799
$file = Get-AzStorageFileContent -Destination $localDestFile -ShareName $shareName -Path $bigfile.ShareFileClient.Path -CheckMd5 -Context $ctx2 -force -PassThru
1799-
CompareFileFileMD5 $localDestFile $file
1800+
CompareFileFileMD5 (get-item $localDestFile).FullName $file
18001801

18011802
# del $localDestFile
18021803

@@ -2085,7 +2086,7 @@ Describe "dataplane test" {
20852086
$localLargeSrcFile = ".\data\testfile_307200K_0" # File of size 300M. Needs to be created beforehand
20862087
$localDestFile = ".\created\testoauth" # test will create the file
20872088
$localDestFileName = "testoauth"
2088-
$shareName = "sharefileoauth"
2089+
$shareName = "$(GetRandomContainerName)oauth"
20892090
$filename = "filefileoauth"
20902091
$dirname = "dir1"
20912092
$filepath = "dir1\test1"
@@ -2096,9 +2097,9 @@ Describe "dataplane test" {
20962097
#Add-AzAccount -ServicePrincipal -Tenant $globalNode.tenantId -SubscriptionId $globalNode.subscriptionId -Credential $cred
20972098

20982099
$ctxoauth = New-AzStorageContext -StorageAccountName $accountname -EnableFileBackupRequestIntent
2099-
$ctxkey = (Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $accountname).Context
2100+
$ctxkey = New-AzStorageContext -StorageAccountName $accountname -StorageAccountKey (Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $accountname)[0].Value
21002101
$ctxoauth2 = New-AzStorageContext -StorageAccountName $accountname2 -EnableFileBackupRequestIntent
2101-
$ctxkey2 = (Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $accountname2).Context
2102+
#$ctxkey2 = (Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $accountname2).Context
21022103

21032104
New-AzStorageShare -Name $shareName -Context $ctxkey
21042105
Set-AzStorageFileContent -ShareName $shareName -Source $localSrcFile -Path $filename -Context $ctxoauth -Force
@@ -2109,12 +2110,40 @@ Describe "dataplane test" {
21092110
$dir = $share | Get-AzStorageFile -Path $dirname
21102111
$file = $share | Get-AzStorageFile -Path $filename
21112112

2113+
# share API with Oauth
2114+
$share2 = New-AzStorageShare -Name "$($shareName)2" -Context $ctxoauth
2115+
$share2.Name | should -Be "$($shareName)2"
2116+
$shares = Get-AzStorageShare -Context $ctxoauth
2117+
$shares.Count | should -BeGreaterOrEqual 2
2118+
$count1 = $shares.Count
2119+
2120+
$share2 = Set-AzStorageShareQuota -Name "$($shareName)2" -Context $ctxoauth -Quota 200
2121+
$share2 = Get-AzStorageShare -Name "$($shareName)2" -Context $ctxoauth
2122+
$share2.Name | should -Be "$($shareName)2"
2123+
$share2.Quota | should -Be 200
2124+
2125+
New-AzStorageShareStoredAccessPolicy -Name $shareName -Context $ctxoauth -Policy 123 -Permission rw
2126+
New-AzStorageShareStoredAccessPolicy -Name $shareName -Context $ctxoauth -Policy 1234 -Permission r -StartTime (Get-Date) -ExpiryTime (Get-Date).Add(1)
2127+
set-AzStorageShareStoredAccessPolicy -Name $shareName -Context $ctxoauth -Policy 123 -Permission rwd -StartTime (Get-Date)
2128+
$policy = Get-AzStorageShareStoredAccessPolicy -Name $shareName -Context $ctxoauth
2129+
$policy.Count | should -be 2
2130+
Remove-AzStorageShareStoredAccessPolicy -Name $shareName -Context $ctxoauth -Policy 123
2131+
2132+
Remove-AzStorageShare -Name "$($shareName)2" -Context $ctxoauth -Force
2133+
$share2.Name | should -Be "$($shareName)2"
2134+
$shares = Get-AzStorageShare -Context $ctxoauth
2135+
$shares.Count | should -Be ($count1-1)
2136+
2137+
2138+
21122139
# Set and get permission
21132140
$permission = $testNode.permission
2114-
$response = $share.ShareClient.CreatePermission($permission);
2141+
$inputpermission = new-object Azure.Storage.Files.Shares.Models.ShareFilePermission
2142+
$inputpermission.Permission = $permission
2143+
$response = $share.ShareClient.CreatePermission($inputpermission);
21152144
$key = $response.Value.FilePermissionKey
21162145
$outputPermission = $share.ShareClient.GetPermission($key)
2117-
$outputPermission.Value | Should -Be $permission
2146+
$outputPermission.Value.Permission | Should -Be $permission
21182147

21192148
# file handler
21202149
$handleCount = Close-AzStorageFileHandle -ShareName $shareName -CloseAll -Context $ctxoauth -PassThru
@@ -2214,7 +2243,7 @@ Describe "dataplane test" {
22142243

22152244
New-AzStorageContainer -Name $shareName -Context $ctxoauth -ErrorAction SilentlyContinue
22162245
$b = Set-AzStorageblobContent -Container $shareName -File $localSrcFile -blob testblob -Context $ctxoauth -Force
2217-
New-AzStorageShare -Name $shareName -Context $ctxkey2 -ErrorAction SilentlyContinue
2246+
New-AzStorageShare -Name $shareName -Context $ctxoauth2 -ErrorAction SilentlyContinue
22182247
New-AzStorageDirectory -ShareName $shareName -Path dir1 -Context $ctxoauth2 -ErrorAction SilentlyContinue
22192248
Set-AzStorageFileContent -ShareName $shareName -Source $localSrcFile -Path dir1/test1 -Context $ctxoauth -Force
22202249
$Error.Clear()
@@ -2368,25 +2397,8 @@ Describe "dataplane test" {
23682397
$stopmessage = Stop-AzStorageFileCopy -ShareFileClient $fd.ShareFileClient -Context $ctxoauth -Force -ErrorAction SilentlyContinue
23692398
$error[0].Exception.Message | should -BeLike "There is currently no pending copy operation*"
23702399
$error.Clear()
2371-
2372-
# should fail
2400+
23732401
$Error.Count | should -be 0
2374-
$error.Clear()
2375-
New-AzStorageShare -Name $shareName -Context $ctxoauth -ErrorAction SilentlyContinue
2376-
Get-AzStorageShare -Context $ctxoauth -ErrorAction SilentlyContinue
2377-
Get-AzStorageShare -Name $shareName -Context $ctxoauth -ErrorAction SilentlyContinue
2378-
Remove-AzStorageShare -Name $shareName -Context $ctxoauth -Force -ErrorAction SilentlyContinue
2379-
Set-AzStorageShareQuota -Name $shareName -Quota 1024 -Context $ctxoauth -ErrorAction SilentlyContinue
2380-
New-AzStorageShareStoredAccessPolicy -ShareName $shareName -Policy 123 -Permission rw -Context $ctxoauth -ErrorAction SilentlyContinue
2381-
Set-AzStorageShareStoredAccessPolicy -ShareName $shareName -Policy 123 -Permission rw -Context $ctxoauth -ErrorAction SilentlyContinue
2382-
Get-AzStorageShareStoredAccessPolicy -ShareName $shareName -Context $ctxoauth -ErrorAction SilentlyContinue
2383-
Remove-AzStorageShareStoredAccessPolicy -ShareName $shareName -Policy 123 -Context $ctxoauth -ErrorAction SilentlyContinue
2384-
$error.Count | should -be 9
2385-
foreach ($e in $error)
2386-
{
2387-
$e.Exception.Message | should -BeLike "*This API does not support bearer tokens. For OAuth, use the Storage Resource Provider APIs instead. Learn more: https://aka.ms/azurefiles/restapi.*"
2388-
}
2389-
$error.Clear()
23902402

23912403
Set-AzStorageServiceMetricsProperty -ServiceType File -MetricsType Hour -Context $ctxoauth -ErrorAction SilentlyContinue
23922404
$error[0].Exception.Message | should -BeLike "*Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.*"
@@ -2408,8 +2420,9 @@ Describe "dataplane test" {
24082420
$e.Exception.Message | should -BeLike "*Create File service SAS only supported with SharedKey credential.*"
24092421
}
24102422
$error.Clear()
2411-
2412-
Remove-AzStorageShare -Name $shareName -Context $ctxkey -Force
2423+
2424+
Remove-AzStorageShare -Name $shareName -Context $ctxoauth -Force
2425+
Remove-AzStorageShare -Name $shareName -Context $ctxoauth2 -Force
24132426

24142427
$Error.Count | should -be 0
24152428
}
@@ -2461,12 +2474,12 @@ Describe "dataplane test" {
24612474
$f.Name | Should -Be "files..."
24622475
$f.ShareFileClient.Path | Should -Be "test1./test2../files..."
24632476
$f.ShareFileClient.Name | Should -Be "files..."
2464-
$f.Length | Should -Be 1024
2477+
$f.Length | Should -Be (Get-Item .\data\testfile_1024K_0).Length
24652478

24662479
$f = Set-AzStorageFileContent -ShareName $shareName -Path "test1./test2../files.1.." -Source .\data\testfile_10240K_0 -Context $ctx -PassThru -Force
24672480
$f.Name | Should -Be "files.1.."
24682481
$f.ShareFileClient.Path | Should -Be "test1./test2../files.1.."
2469-
$f.Length | Should -Be 10240
2482+
$f.Length | Should -Be (Get-Item .\data\testfile_10240K_0).Length
24702483
$f.ShareFileClient.Name | Should -Be "files.1.."
24712484

24722485
# download file/dir
@@ -2576,6 +2589,48 @@ Describe "dataplane test" {
25762589

25772590
}
25782591

2592+
It "Storage Account Context works on both AllowSharedKeyAccess = true/false account." {
2593+
$Error.Clear()
2594+
2595+
# with get context with sharedkey
2596+
$ctx2 = (Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName2).Context
2597+
2598+
$result = Get-AzStorageContainer -Context $ctx -MaxCount 1
2599+
$result | should -Not -Be $null
2600+
$result = Get-AzStorageShare -Context $ctx
2601+
$result | should -Not -Be $null
2602+
$result = Get-AzStorageTable -Context $ctx
2603+
$result | should -Not -Be $null
2604+
$result = Get-AzStorageQueue -Context $ctx
2605+
$result | should -Not -Be $null
2606+
2607+
try
2608+
{
2609+
# with get context with Oauth
2610+
Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName2 -AllowSharedKeyAccess $false
2611+
2612+
$ctx2 = (Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName2).Context
2613+
2614+
$result = Get-AzStorageContainer -Context $ctx -MaxCount 1
2615+
$result | should -Not -Be $null
2616+
New-AzStorageDirectory -ShareName $containerName -Path diroauthtest -Context $ctx -ErrorAction SilentlyContinue
2617+
$result = Get-AzStorageFile -ShareName $containerName -Context $ctx
2618+
$result | should -Not -Be $null
2619+
$result = Get-AzStorageTable -Context $ctx
2620+
$result | should -Not -Be $null
2621+
$result = Get-AzStorageQueue -Context $ctx
2622+
$result | should -Not -Be $null
2623+
}
2624+
catch
2625+
{
2626+
Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName2 -AllowSharedKeyAccess $true
2627+
throw;
2628+
}
2629+
Set-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName2 -AllowSharedKeyAccess $true
2630+
2631+
$Error.Count | should -be 0
2632+
}
2633+
25792634
It "Test case name" {
25802635
$Error.Clear()
25812636

0 commit comments

Comments
 (0)