Skip to content

Commit 2c5f062

Browse files
authored
[Storage] Support new SRP features on new API version 2021-06-01 (#15945)
* [Storage] Support new schema fields in blob inventory * [Storage] Support PublicNetworkAccess * Support NFSV3 rootsquash properties * [Storage] Support AllowProtectedAppendWriteAll * Fix CI failure
1 parent e929c55 commit 2c5f062

26 files changed

+2433
-1930
lines changed

src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.ps1

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -204,11 +204,11 @@ function Test-SetAzureStorageAccount
204204
# Test
205205
$stoname = 'sto' + $rgname;
206206
$stotype = 'Standard_GRS';
207-
$loc = Get-ProviderLocation ResourceManagement;
207+
$loc = Get-ProviderLocation_Canary ResourceManagement;
208208
$kind = 'StorageV2'
209209

210210
New-AzResourceGroup -Name $rgname -Location $loc;
211-
New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype -Kind $kind -EnableHttpsTrafficOnly $true -EnableHierarchicalNamespace $true;
211+
New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype -Kind $kind -EnableHttpsTrafficOnly $true -EnableHierarchicalNamespace $true -PublicNetworkAccess Disabled;
212212

213213
Retry-IfException { $global:sto = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname; }
214214
Assert-AreEqual $stoname $sto.StorageAccountName;
@@ -217,6 +217,7 @@ function Test-SetAzureStorageAccount
217217
Assert-AreEqual $kind $sto.Kind;
218218
Assert-AreEqual $true $sto.EnableHttpsTrafficOnly;
219219
Assert-AreEqual $true $sto.EnableHierarchicalNamespace;
220+
Assert-AreEqual Disabled $sto.PublicNetworkAccess;
220221

221222
$stos = Get-AzStorageAccount -ResourceGroupName $rgname;
222223
Assert-AreEqual $stoname $stos[0].StorageAccountName;
@@ -225,13 +226,15 @@ function Test-SetAzureStorageAccount
225226
Assert-AreEqual $kind $sto.Kind;
226227
Assert-AreEqual $true $sto.EnableHttpsTrafficOnly;
227228
Assert-AreEqual $true $sto.EnableHierarchicalNamespace;
229+
Assert-AreEqual Disabled $sto.PublicNetworkAccess;
228230

229231
$stotype = 'Standard_LRS';
230232
# TODO: Still need to do retry for Set-, even after Get- returns it.
231-
Retry-IfException { Set-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Type $stotype -EnableHttpsTrafficOnly $false }
233+
Retry-IfException { Set-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Type $stotype -EnableHttpsTrafficOnly $false -PublicNetworkAccess Enabled }
232234
$stotype = 'Standard_RAGRS';
233235
$sto = Set-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Type $stotype;
234236
Assert-AreEqual $true $sto.EnableHierarchicalNamespace;
237+
Assert-AreEqual Enabled $sto.PublicNetworkAccess;
235238

236239
$sto = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname;
237240
Assert-AreEqual $stoname $sto.StorageAccountName;
@@ -240,6 +243,7 @@ function Test-SetAzureStorageAccount
240243
Assert-AreEqual $kind $sto.Kind;
241244
Assert-AreEqual $false $sto.EnableHttpsTrafficOnly;
242245
Assert-AreEqual $true $sto.EnableHierarchicalNamespace;
246+
Assert-AreEqual Enabled $sto.PublicNetworkAccess;
243247

244248
Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname;
245249
}
@@ -1756,7 +1760,7 @@ function Test-StorageBlobInventory
17561760
#create rule objects
17571761
$rule1 = New-AzStorageBlobInventoryPolicyRule -Name test1 -Disabled -BlobType blockBlob,appendBlob -PrefixMatch abc,edf,eqwewqe,eqwewqreewqe,qwewqewqewqewqewadasd -IncludeSnapshot -IncludeBlobVersion `
17581762
-Destination $containerName -Format Parquet -Schedule Weekly `
1759-
-BlobSchemaField name,Creation-Time,Last-Modified,Content-Length,Content-MD5,BlobType,AccessTier,AccessTierChangeTime,Metadata
1763+
-BlobSchemaField name,Creation-Time,Last-Modified,Content-Length,Content-MD5,BlobType,AccessTier,AccessTierChangeTime,Metadata,AccessTierInferred,Tags
17601764
$rule2 = New-AzStorageBlobInventoryPolicyRule -Name test2 -Destination $containerName -Disabled -Format Csv -Schedule Daily -ContainerSchemaField Name,Metadata,PublicAccess,Last-mOdified,LeaseStatus,LeaseState,LeaseDuration,HasImmutabilityPolicy,HasLegalHold -PrefixMatch con1,con2
17611765
$rule3 = New-AzStorageBlobInventoryPolicyRule -Name test3 -Destination $containerName -BlobType appendBlob -PrefixMatch abc1,edf1 -Format Csv -Schedule Weekly -BlobSchemaField Name
17621766

@@ -1775,7 +1779,7 @@ function Test-StorageBlobInventory
17751779
Assert-AreEqual "Parquet" $policy1.Rules[0].Definition.Format
17761780
Assert-AreEqual "Weekly" $policy1.Rules[0].Definition.Schedule
17771781
Assert-AreEqual "Blob" $policy1.Rules[0].Definition.ObjectType
1778-
Assert-AreEqual 12 $policy1.Rules[0].Definition.SchemaFields.Count
1782+
Assert-AreEqual 14 $policy1.Rules[0].Definition.SchemaFields.Count
17791783
Assert-AreEqual $true $policy1.Rules[0].Definition.Filters.IncludeSnapshots
17801784
Assert-AreEqual $true $policy1.Rules[0].Definition.Filters.IncludeBlobVersions
17811785
Assert-AreEqual 2 $policy1.Rules[0].Definition.Filters.BlobTypes.Count
@@ -1881,7 +1885,7 @@ function Test-StorageBlobInventory
18811885
Assert-AreEqual "Parquet" $policy3.Rules[0].Definition.Format
18821886
Assert-AreEqual "Weekly" $policy3.Rules[0].Definition.Schedule
18831887
Assert-AreEqual "Blob" $policy3.Rules[0].Definition.ObjectType
1884-
Assert-AreEqual 12 $policy3.Rules[0].Definition.SchemaFields.Count
1888+
Assert-AreEqual 14 $policy3.Rules[0].Definition.SchemaFields.Count
18851889
Assert-AreEqual $true $policy3.Rules[0].Definition.Filters.IncludeSnapshots
18861890
Assert-AreEqual $true $policy3.Rules[0].Definition.Filters.IncludeBlobVersions
18871891
Assert-AreEqual 2 $policy3.Rules[0].Definition.Filters.BlobTypes.Count
@@ -1981,7 +1985,7 @@ function Test-NewAzureStorageAccountEnableNfsV3
19811985
-EnableNfsV3 $true `
19821986
-EnableHierarchicalNamespace $true `
19831987
-EnableHttpsTrafficOnly $false `
1984-
-NetworkRuleSet (@{bypass="Logging,Metrics";defaultAction="allow";virtualNetworkRules=(@{VirtualNetworkResourceId="$vnet1";Action="allow"})})
1988+
-NetworkRuleSet (@{bypass="Logging,Metrics";defaultAction="deny";virtualNetworkRules=(@{VirtualNetworkResourceId="$vnet1";Action="allow"})})
19851989

19861990
Retry-IfException { $global:sto = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname; }
19871991
Assert-AreEqual $stoname $sto.StorageAccountName;
@@ -1992,6 +1996,18 @@ function Test-NewAzureStorageAccountEnableNfsV3
19921996
Assert-AreEqual $false $sto.EnableHttpsTrafficOnly
19931997
Assert-AreEqual $true $sto.EnableNfsV3
19941998

1999+
# valid create container with NFSv3 properties
2000+
$containerName = "container"+ $rgname
2001+
$con = New-AzRmStorageContainer -ResourceGroupName $rgname -StorageAccountName $stoname -Name $containerName -RootSquash RootSquash
2002+
Assert-AreEqual $false $con.EnableNfsV3AllSquash
2003+
Assert-AreEqual $true $con.EnableNfsV3RootSquash
2004+
$con = Update-AzRmStorageContainer -ResourceGroupName $rgname -StorageAccountName $stoname -Name $containerName -RootSquash NoRootSquash
2005+
Assert-AreEqual $false $con.EnableNfsV3AllSquash
2006+
Assert-AreEqual $false $con.EnableNfsV3RootSquash
2007+
$con = Update-AzRmStorageContainer -ResourceGroupName $rgname -StorageAccountName $stoname -Name $containerName -RootSquash AllSquash
2008+
Assert-AreEqual $true $con.EnableNfsV3AllSquash
2009+
Assert-AreEqual $false $con.EnableNfsV3RootSquash
2010+
19952011
Remove-AzStorageAccount -Force -ResourceGroupName $rgname -Name $stoname;
19962012
}
19972013
finally

src/Storage/Storage.Management.Test/ScenarioTests/StorageBlobTests.ps1

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -227,14 +227,14 @@ function Test-StorageBlobContainerLegalHold
227227
# Test
228228
$stoname = 'sto' + $rgname;
229229
$stotype = 'Standard_GRS';
230-
$loc = Get-ProviderLocation ResourceManagement;
230+
$loc = Get-ProviderLocation_Canary ResourceManagement;
231231
$kind = 'StorageV2'
232232
$containerName = "container"+ $rgname
233233

234234
Write-Verbose "RGName: $rgname | Loc: $loc"
235235
New-AzResourceGroup -Name $rgname -Location $loc;
236236

237-
New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype -Kind $kind
237+
New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype -Kind $kind -EnableHierarchicalNamespace $true
238238
$stos = Get-AzStorageAccount -ResourceGroupName $rgname;
239239

240240
New-AzRmStorageContainer -ResourceGroupName $rgname -StorageAccountName $stoname -Name $containerName
@@ -246,7 +246,7 @@ function Test-StorageBlobContainerLegalHold
246246
Assert-AreEqual $false $container.HasImmutabilityPolicy
247247
Assert-AreEqual none $container.PublicAccess
248248

249-
Add-AzRmStorageContainerLegalHold -ResourceGroupName $rgname -StorageAccountName $stoname -Name $containerName -Tag tag1,tag2,tag3
249+
Add-AzRmStorageContainerLegalHold -ResourceGroupName $rgname -StorageAccountName $stoname -Name $containerName -Tag tag1,tag2,tag3 -AllowProtectedAppendWriteAll $true
250250
$container = Get-AzRmStorageContainer -ResourceGroupName $rgname -StorageAccountName $stoname -Name $containerName
251251
Assert-AreEqual $containerName $container.Name
252252
Assert-AreEqual 3 $container.LegalHold.Tags.Count
@@ -259,6 +259,7 @@ function Test-StorageBlobContainerLegalHold
259259
Assert-AreEqual "tag3" $container.LegalHold.Tags[2].Tag
260260
Assert-AreNotEqual $null $container.LegalHold.Tags[2].Timestamp
261261
Assert-AreNotEqual $null $container.LegalHold.Tags[2].ObjectIdentifier
262+
Assert-AreEqual $true $container.LegalHold.ProtectedAppendWritesHistory.AllowProtectedAppendWritesAll
262263

263264
Remove-AzRmStorageContainerLegalHold -ResourceGroupName $rgname -StorageAccountName $stoname -Name $containerName -Tag tag1,tag2
264265
$container = Get-AzRmStorageContainer -ResourceGroupName $rgname -StorageAccountName $stoname -Name $containerName
@@ -308,7 +309,7 @@ function Test-StorageBlobContainerImmutabilityPolicy
308309
# Test
309310
$stoname = 'sto' + $rgname;
310311
$stotype = 'Standard_GRS';
311-
$loc = Get-ProviderLocation ResourceManagement;
312+
$loc = Get-ProviderLocation_Canary ResourceManagement;
312313
$kind = 'StorageV2'
313314
$containerName = "container"+ $rgname
314315

@@ -352,12 +353,13 @@ function Test-StorageBlobContainerImmutabilityPolicy
352353
Assert-AreEqual $true $container.ImmutabilityPolicy.AllowProtectedAppendWrites
353354

354355
$immutabilityPeriod =2
355-
Set-AzRmStorageContainerImmutabilityPolicy -inputObject $policy -ImmutabilityPeriod $immutabilityPeriod -AllowProtectedAppendWrite $false
356+
Set-AzRmStorageContainerImmutabilityPolicy -inputObject $policy -ImmutabilityPeriod $immutabilityPeriod -AllowProtectedAppendWrite $false -AllowProtectedAppendWriteAll $true
356357
$policy = Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName $rgname -StorageAccountName $stoname -ContainerName $containerName
357358
Assert-AreEqual $immutabilityPeriod $policy.ImmutabilityPeriodSinceCreationInDays
358359
Assert-AreEqual Unlocked $policy.State
359360
Assert-AreNotEqual $null $policy.Etag
360361
Assert-AreEqual $false $policy.AllowProtectedAppendWrites
362+
Assert-AreEqual $true $policy.AllowProtectedAppendWritesAll
361363
$container = Get-AzRmStorageContainer -ResourceGroupName $rgname -StorageAccountName $stoname -Name $containerName
362364
Assert-AreEqual $containerName $container.Name
363365
Assert-AreEqual $immutabilityPeriod $container.ImmutabilityPolicy.ImmutabilityPeriodSinceCreationInDays
@@ -368,6 +370,7 @@ function Test-StorageBlobContainerImmutabilityPolicy
368370
Assert-AreNotEqual $null $container.ImmutabilityPolicy.UpdateHistory[0].Timestamp
369371
Assert-AreNotEqual $null $container.ImmutabilityPolicy.UpdateHistory[0].ObjectIdentifier
370372
Assert-AreEqual $false $container.ImmutabilityPolicy.AllowProtectedAppendWrites
373+
Assert-AreEqual $true $container.ImmutabilityPolicy.AllowProtectedAppendWritesAll
371374

372375
Remove-AzRmStorageContainerImmutabilityPolicy -inputObject $policy
373376
$policy = Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName $rgname -StorageAccountName $stoname -ContainerName $containerName

0 commit comments

Comments
 (0)