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