@@ -533,3 +533,107 @@ function Test-StorageBlobRestore
533
533
}
534
534
535
535
536
+ <#
537
+ . SYNOPSIS
538
+ Test StorageAccount Object Replication
539
+ . DESCRIPTION
540
+ SmokeTest
541
+ #>
542
+ function Test-StorageBlobORS
543
+ {
544
+ # Setup
545
+ $rgname = Get-StorageManagementTestResourceName ;
546
+
547
+ try
548
+ {
549
+ # Test
550
+ $stoname1 = ' sto' + $rgname + ' src' ;
551
+ $stoname2 = ' sto' + $rgname + ' dest' ;
552
+ $stotype = ' Standard_LRS' ;
553
+ $loc = Get-ProviderLocation ResourceManagement;
554
+ $kind = ' StorageV2'
555
+
556
+ Write-Verbose " RGName: $rgname | Loc: $loc "
557
+ New-AzResourceGroup - Name $rgname - Location $loc ;
558
+
559
+ $loc = Get-ProviderLocation_Canary ResourceManagement;
560
+ New-AzStorageAccount - ResourceGroupName $rgname - Name $stoname1 - Location $loc - Type $stotype - Kind $kind
561
+ New-AzStorageAccount - ResourceGroupName $rgname - Name $stoname2 - Location $loc - Type $stotype - Kind $kind
562
+
563
+ # Enable Blob Enable Changefeed and versioning
564
+ Update-AzStorageBlobServiceProperty - ResourceGroupName $rgname - StorageAccountName $stoname1 - EnableChangeFeed $true - IsVersioningEnabled $true
565
+ Update-AzStorageBlobServiceProperty - ResourceGroupName $rgname - StorageAccountName $stoname2 - EnableChangeFeed $true - IsVersioningEnabled $true
566
+ $property1 = Get-AzStorageBlobServiceProperty - ResourceGroupName $rgname - StorageAccountName $stoname1
567
+ Assert-AreEqual $true $property1.ChangeFeed.Enabled
568
+ Assert-AreEqual $true $property1.IsVersioningEnabled
569
+ $property2 = Get-AzStorageBlobServiceProperty - ResourceGroupName $rgname - StorageAccountName $stoname2
570
+ Assert-AreEqual $true $property2.ChangeFeed.Enabled
571
+ Assert-AreEqual $true $property2.IsVersioningEnabled
572
+
573
+ # create containers
574
+ Get-AzStorageAccount - ResourceGroupName $rgname - StorageAccountName $stoname1 | New-AzRmStorageContainer - name src
575
+ Get-AzStorageAccount - ResourceGroupName $rgname - StorageAccountName $stoname2 | New-AzRmStorageContainer - name dest
576
+ Get-AzStorageAccount - ResourceGroupName $rgname - StorageAccountName $stoname1 | New-AzRmStorageContainer - name src1
577
+ Get-AzStorageAccount - ResourceGroupName $rgname - StorageAccountName $stoname2 | New-AzRmStorageContainer - name dest1
578
+
579
+ # create rules
580
+ $minCreationTime = " 2019-01-01T16:00:00Z"
581
+ $rule1 = New-AzStorageObjectReplicationPolicyRule - SourceContainer src1 - DestinationContainer dest1
582
+ $rule2 = New-AzStorageObjectReplicationPolicyRule - SourceContainer src - DestinationContainer dest - MinCreationTime $minCreationTime - PrefixMatch a, abc, dd # -Tag t1,t2,t3
583
+
584
+ # set policy to dest account
585
+ $destPolicy = Set-AzStorageObjectReplicationPolicy - ResourceGroupName $rgname - StorageAccountName $stoname2 - PolicyId default - SourceAccount $stoname1 - Rule $rule1 , $rule2
586
+ $policyID = $destPolicy.PolicyId
587
+ Assert-AreEqual $stoname1 $destPolicy.SourceAccount
588
+ Assert-AreEqual $stoname2 $destPolicy.DestinationAccount
589
+ Assert-AreEqual 2 $destPolicy.Rules.Count
590
+ Assert-AreEqual src1 $destPolicy.Rules [0 ].SourceContainer
591
+ Assert-AreEqual dest1 $destPolicy.Rules [0 ].DestinationContainer
592
+ Assert-AreEqual $null $destPolicy.Rules [0 ].Filters
593
+ Assert-AreEqual src $destPolicy.Rules [1 ].SourceContainer
594
+ Assert-AreEqual dest $destPolicy.Rules [1 ].DestinationContainer
595
+ Assert-AreEqual 3 $destPolicy.Rules [1 ].Filters.PrefixMatch.Count
596
+ Assert-AreEqual $minCreationTime ($destPolicy.Rules [1 ].Filters.MinCreationTime.ToUniversalTime().ToString(" s" )+ " Z" )
597
+ $destPolicy = Get-AzStorageObjectReplicationPolicy - ResourceGroupName $rgname - StorageAccountName $stoname2 - PolicyId $destPolicy.PolicyId
598
+ Assert-AreEqual $policyID $destPolicy.PolicyId
599
+ Assert-AreEqual $stoname1 $destPolicy.SourceAccount
600
+ Assert-AreEqual $stoname2 $destPolicy.DestinationAccount
601
+ Assert-AreEqual 2 $destPolicy.Rules.Count
602
+ Assert-AreEqual src1 $destPolicy.Rules [0 ].SourceContainer
603
+ Assert-AreEqual dest1 $destPolicy.Rules [0 ].DestinationContainer
604
+ Assert-AreEqual $null $destPolicy.Rules [0 ].Filters
605
+ Assert-AreEqual src $destPolicy.Rules [1 ].SourceContainer
606
+ Assert-AreEqual dest $destPolicy.Rules [1 ].DestinationContainer
607
+ Assert-AreEqual 3 $destPolicy.Rules [1 ].Filters.PrefixMatch.Count
608
+ Assert-AreEqual $minCreationTime ($destPolicy.Rules [1 ].Filters.MinCreationTime.ToUniversalTime().ToString(" s" )+ " Z" )
609
+
610
+ # Set policy to source account
611
+ Set-AzStorageObjectReplicationPolicy - ResourceGroupName $rgname - StorageAccountName $stoname1 - InputObject $destPolicy
612
+ $srcPolicy = Get-AzStorageObjectReplicationPolicy - ResourceGroupName $rgname - StorageAccountName $stoname1
613
+ Assert-AreEqual $policyID $srcPolicy.PolicyId
614
+ Assert-AreEqual $stoname1 $srcPolicy.SourceAccount
615
+ Assert-AreEqual $stoname2 $srcPolicy.DestinationAccount
616
+ Assert-AreEqual 2 $srcPolicy.Rules.Count
617
+ Assert-AreEqual src1 $srcPolicy.Rules [0 ].SourceContainer
618
+ Assert-AreEqual dest1 $srcPolicy.Rules [0 ].DestinationContainer
619
+ Assert-AreEqual $null $srcPolicy.Rules [0 ].Filters
620
+ Assert-AreEqual src $srcPolicy.Rules [1 ].SourceContainer
621
+ Assert-AreEqual dest $srcPolicy.Rules [1 ].DestinationContainer
622
+ Assert-AreEqual 3 $srcPolicy.Rules [1 ].Filters.PrefixMatch.Count
623
+ Assert-AreEqual $minCreationTime ($srcPolicy.Rules [1 ].Filters.MinCreationTime.ToUniversalTime().ToString(" s" )+ " Z" )
624
+
625
+ # remove policies
626
+ Remove-AzStorageObjectReplicationPolicy - ResourceGroupName $rgname - StorageAccountName $stoname2 - PolicyId $destPolicy.PolicyId
627
+ Remove-AzStorageObjectReplicationPolicy - ResourceGroupName $rgname - StorageAccountName $stoname1 - PolicyId $srcPolicy.PolicyId
628
+
629
+ Remove-AzStorageAccount - Force - ResourceGroupName $rgname - Name $stoname1 ;
630
+ Remove-AzStorageAccount - Force - ResourceGroupName $rgname - Name $stoname2 ;
631
+ }
632
+ finally
633
+ {
634
+ # Cleanup
635
+ Clean - ResourceGroup $rgname
636
+ }
637
+ }
638
+
639
+
0 commit comments