@@ -297,6 +297,85 @@ function Test-StorageBlobContainerLegalHold
297
297
}
298
298
}
299
299
300
+ <#
301
+ . SYNOPSIS
302
+ Test StorageAccount ObjectLevelWorm
303
+ . DESCRIPTION
304
+ SmokeTest
305
+ #>
306
+ function Test-StorageBlobContainerVLW
307
+ {
308
+ # Setup
309
+ $rgname = Get-StorageManagementTestResourceName ;
310
+
311
+ try
312
+ {
313
+ # Test
314
+ $stoname = ' sto' + $rgname ;
315
+ $stotype = ' Standard_GRS' ;
316
+ $loc = Get-ProviderLocation_Canary ResourceManagement;
317
+ $kind = ' StorageV2'
318
+ $containerName = " container" + $rgname
319
+ $containerName2 = " container2" + $rgname
320
+
321
+ Write-Verbose " RGName: $rgname | Loc: $loc "
322
+ New-AzResourceGroup - Name $rgname - Location $loc ;
323
+
324
+ New-AzStorageAccount - ResourceGroupName $rgname - Name $stoname - Location $loc - Type $stotype - Kind $kind
325
+ $stos = Get-AzStorageAccount - ResourceGroupName $rgname ;
326
+
327
+ # enabled versioning
328
+ Update-AzStorageBlobServiceProperty - ResourceGroupName $rgname - StorageAccountName $stoname - IsVersioningEnabled $true
329
+ $property = Get-AzStorageBlobServiceProperty - ResourceGroupName $rgname - StorageAccountName $stoname
330
+ Assert-AreEqual $true $property.IsVersioningEnabled
331
+
332
+ # create container with ImmutableStorageWithVersioning
333
+ New-AzRmStorageContainer - ResourceGroupName $rgname - StorageAccountName $stoname - Name $containerName - EnableImmutableStorageWithVersioning
334
+ $container = Get-AzRmStorageContainer - ResourceGroupName $rgname - StorageAccountName $stoname - Name $containerName
335
+ Assert-AreEqual $rgname $container.ResourceGroupName
336
+ Assert-AreEqual $stoname $container.StorageAccountName
337
+ Assert-AreEqual $containerName $container.Name
338
+ Assert-AreEqual $false $container.HasLegalHold
339
+ Assert-AreEqual $false $container.HasImmutabilityPolicy
340
+ Assert-AreEqual $true $container.ImmutableStorageWithVersioning.Enabled
341
+
342
+ # migrate container to enable VLW
343
+ New-AzRmStorageContainer - ResourceGroupName $rgname - StorageAccountName $stoname - Name $containerName2
344
+ $container = Get-AzRmStorageContainer - ResourceGroupName $rgname - StorageAccountName $stoname - Name $containerName2
345
+ Assert-AreEqual $rgname $container.ResourceGroupName
346
+ Assert-AreEqual $stoname $container.StorageAccountName
347
+ Assert-AreEqual $containerName2 $container.Name
348
+ Assert-AreEqual $false $container.HasLegalHold
349
+ Assert-AreEqual $false $container.HasImmutabilityPolicy
350
+ Assert-AreNotEqual $true $container.ImmutableStorageWithVersioning.Enabled
351
+
352
+ $immutabilityPeriod = 1
353
+ Set-AzRmStorageContainerImmutabilityPolicy - ResourceGroupName $rgname - StorageAccountName $stoname - ContainerName $containerName2 - ImmutabilityPeriod $immutabilityPeriod
354
+ $policy = Get-AzRmStorageContainerImmutabilityPolicy - ResourceGroupName $rgname - StorageAccountName $stoname - ContainerName $containerName2
355
+ Assert-AreEqual $immutabilityPeriod $policy.ImmutabilityPeriodSinceCreationInDays
356
+ Assert-AreEqual Unlocked $policy.State
357
+
358
+ $t = Invoke-AzRmStorageContainerImmutableStorageWithVersioningMigration - ResourceGroupName $rgname - StorageAccountName $stoname - Name $containerName2 - asjob
359
+ $t | Wait-Job
360
+ $container = Get-AzRmStorageContainer - ResourceGroupName $rgname - StorageAccountName $stoname - Name $containerName2
361
+ Assert-AreEqual $true $container.ImmutableStorageWithVersioning.Enabled
362
+
363
+ # remove the containers
364
+ Remove-AzRmStorageContainer - Force - StorageAccount $stos - Name $containerName
365
+ Remove-AzRmStorageContainer - Force - StorageAccount $stos - Name $containerName2
366
+ $containers = Get-AzRmStorageContainer - StorageAccount $stos
367
+ Assert-AreEqual 0 $containers.Count
368
+
369
+ Remove-AzStorageAccount - Force - ResourceGroupName $rgname - Name $stoname ;
370
+ }
371
+ finally
372
+ {
373
+ # Cleanup
374
+ Clean - ResourceGroup $rgname
375
+ }
376
+ }
377
+
378
+
300
379
301
380
function Test-StorageBlobContainerImmutabilityPolicy
302
381
{
@@ -669,6 +748,8 @@ function Test-StorageBlobORS
669
748
Assert-AreEqual dest $srcPolicy.Rules [1 ].DestinationContainer
670
749
Assert-AreEqual 3 $srcPolicy.Rules [1 ].Filters.PrefixMatch.Count
671
750
Assert-AreEqual $minCreationTime ($srcPolicy.Rules [1 ].Filters.MinCreationTime.ToUniversalTime().ToString(" s" )+ " Z" )
751
+ $destPolicy | Remove-AzStorageObjectReplicationPolicy
752
+ $srcPolicy | Remove-AzStorageObjectReplicationPolicy
672
753
673
754
# disable AllowCrossTenantReplication
674
755
$sto1 = Set-AzStorageAccount - ResourceGroupName $rgname - StorageAccountName $stoname1 - AllowCrossTenantReplication $false - EnableHttpsTrafficOnly $true
0 commit comments