Skip to content

Commit f35e4d8

Browse files
authored
Merge pull request Azure#10659 from Azure/redis_2019_07_01_preview
Changes to support "ReplicasPerMaster" and "Instances"
2 parents 70fcabe + 2da5998 commit f35e4d8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+17464
-7965
lines changed

src/RedisCache/RedisCache.Test/RedisCache.Test.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<ItemGroup>
1414
<PackageReference Include="Microsoft.Azure.Insights" Version="0.16.0-preview" />
15-
<PackageReference Include="Microsoft.Azure.Management.Redis" Version="5.0.0" />
15+
<PackageReference Include="Microsoft.Azure.Management.Redis" Version="6.0.0-preview.1" />
1616
</ItemGroup>
1717

1818
<ItemGroup>

src/RedisCache/RedisCache.Test/ScenarioTests/RedisCacheTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,5 +103,12 @@ public void TestZones()
103103
{
104104
RedisCacheController.NewInstance.RunPowerShellTest(_logger, "Test-Zones");
105105
}
106+
107+
[Fact]
108+
[Trait(Category.AcceptanceType, Category.CheckIn)]
109+
public void TestZoneRedundancy()
110+
{
111+
RedisCacheController.NewInstance.RunPowerShellTest(_logger, "Test-ZoneRedundancy");
112+
}
106113
}
107114
}

src/RedisCache/RedisCache.Test/ScenarioTests/RedisCacheTests.ps1

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,15 @@ function Test-RedisCache
2828

2929
Assert-NotNull $cacheCreated.PrimaryKey "PrimaryKey do not exists"
3030
Assert-NotNull $cacheCreated.SecondaryKey "SecondaryKey do not exists"
31+
32+
Assert-AreEqual 2 $cacheCreated.Instances.Count
33+
for($i = 0; $i -lt $cacheCreated.Instances.Count; $i++)
34+
{
35+
Assert-AreEqual (15000+$i) $cacheCreated.Instances[$i].SslPort
36+
Assert-Null $cacheCreated.Instances[$i].NonSslPort
37+
Assert-Null $cacheCreated.Instances[$i].ShardId
38+
Assert-Null $cacheCreated.Instances[$i].Zone
39+
}
3140

3241
# In loop to check if cache exists
3342
for ($i = 0; $i -le 60; $i++)
@@ -57,6 +66,15 @@ function Test-RedisCache
5766
Assert-NotNull $cacheUpdated.PrimaryKey "PrimaryKey do not exists"
5867
Assert-NotNull $cacheUpdated.SecondaryKey "SecondaryKey do not exists"
5968

69+
Assert-AreEqual 2 $cacheUpdated.Instances.Count
70+
for($i = 0; $i -lt $cacheUpdated.Instances.Count; $i++)
71+
{
72+
Assert-AreEqual (15000+$i) $cacheUpdated.Instances[$i].SslPort
73+
Assert-AreEqual (13000+$i) $cacheUpdated.Instances[$i].NonSslPort
74+
Assert-Null $cacheUpdated.Instances[$i].ShardId
75+
Assert-Null $cacheUpdated.Instances[$i].Zone
76+
}
77+
6078
# List all cache in resource group
6179
$cachesInResourceGroup = Get-AzRedisCache -ResourceGroupName $resourceGroupName
6280
Assert-True {$cachesInResourceGroup.Count -ge 1}
@@ -87,6 +105,14 @@ function Test-RedisCache
87105
$found = 1
88106
Assert-AreEqual $location $cachesInSubscription[$i].Location
89107
Assert-AreEqual $resourceGroupName $cachesInSubscription[$i].ResourceGroupName
108+
Assert-AreEqual 2 $cachesInSubscription[$i].Instances.Count
109+
for($j = 0; $j -lt $cachesInSubscription[$i].Instances.Count; $j++)
110+
{
111+
Assert-AreEqual (15000+$j) $cachesInSubscription[$i].Instances[$j].SslPort
112+
Assert-AreEqual (13000+$j) $cachesInSubscription[$i].Instances[$j].NonSslPort
113+
Assert-Null $cachesInSubscription[$i].Instances[$j].ShardId
114+
Assert-Null $cachesInSubscription[$i].Instances[$j].Zone
115+
}
90116
break
91117
}
92118
}
@@ -231,6 +257,16 @@ function Test-RedisCacheClustering
231257

232258
Assert-NotNull $cacheCreated.PrimaryKey "PrimaryKey do not exists"
233259
Assert-NotNull $cacheCreated.SecondaryKey "SecondaryKey do not exists"
260+
261+
Assert-AreEqual ($cacheCreated.ShardCount*2) $cacheCreated.Instances.Count
262+
263+
for($i = 0; $i -lt $cacheCreated.Instances.Count; $i++)
264+
{
265+
Assert-AreEqual (15000+$i) $cacheCreated.Instances[$i].SslPort
266+
Assert-Null $cacheCreated.Instances[$i].NonSslPort
267+
# ShardId check should be added here in future
268+
Assert-Null $cacheCreated.Instances[$i].Zone
269+
}
234270

235271
# In loop to check if cache exists
236272
for ($i = 0; $i -le 60; $i++)
@@ -863,6 +899,124 @@ function Test-Zones
863899
Remove-AzResourceGroup -Name $resourceGroupName -Force
864900
}
865901

902+
function Test-ZoneRedundancy
903+
{
904+
# Setup
905+
$resourceGroupName = "PowerShellTest-10"
906+
$cacheName = "redisteam010"
907+
$location = Get-Location -providerNamespace "Microsoft.Cache" -resourceType "redis" -preferredLocation "Central US"
908+
$zones = @("1","2")
909+
$replicasPerMaster = 2
910+
911+
# Create resource group
912+
New-AzResourceGroup -Name $resourceGroupName -Location $location
913+
914+
# Creating Cache
915+
$cacheCreated = New-AzRedisCache -ResourceGroupName $resourceGroupName -Name $cacheName -Location $location -Size P1 -Sku Premium -ReplicasPerMaster $replicasPerMaster -Zone $zones
916+
917+
Assert-AreEqual $cacheName $cacheCreated.Name
918+
Assert-AreEqual $location $cacheCreated.Location
919+
Assert-AreEqual "Microsoft.Cache/Redis" $cacheCreated.Type
920+
Assert-AreEqual $resourceGroupName $cacheCreated.ResourceGroupName
921+
Assert-AreEqual 6379 $cacheCreated.Port
922+
Assert-AreEqual 6380 $cacheCreated.SslPort
923+
Assert-AreEqual "creating" $cacheCreated.ProvisioningState
924+
Assert-AreEqual "6GB" $cacheCreated.Size
925+
Assert-AreEqual "Premium" $cacheCreated.Sku
926+
927+
Assert-NotNull $cacheCreated.PrimaryKey "PrimaryKey do not exists"
928+
Assert-NotNull $cacheCreated.SecondaryKey "SecondaryKey do not exists"
929+
930+
Assert-AreEqual $replicasPerMaster $cacheCreated.ReplicasPerMaster
931+
Assert-AreEqual $zones[0] $cacheCreated.Zone[0]
932+
Assert-AreEqual $zones[1] $cacheCreated.Zone[1]
933+
Assert-AreEqual ($replicasPerMaster+1) $cacheCreated.Instances.Count
934+
935+
for($i = 0; $i -lt $cacheCreated.Instances.Count; $i++)
936+
{
937+
Assert-AreEqual (15000+$i) $cacheCreated.Instances[$i].SslPort
938+
Assert-Null $cacheCreated.Instances[$i].NonSslPort
939+
Assert-Null $cacheCreated.Instances[$i].ShardId
940+
#Zone will be NULL initially and should be available post cache provisioing succeeds
941+
Assert-Null $cacheCreated.Instances[$i].Zone
942+
}
943+
944+
# In loop to check if cache exists
945+
for ($i = 0; $i -le 60; $i++)
946+
{
947+
Start-TestSleep 30000
948+
$cacheGet = Get-AzRedisCache -ResourceGroupName $resourceGroupName -Name $cacheName
949+
if ([string]::Compare("succeeded", $cacheGet[0].ProvisioningState, $True) -eq 0)
950+
{
951+
Assert-AreEqual $cacheName $cacheGet[0].Name
952+
Assert-AreEqual "succeeded" $cacheGet[0].ProvisioningState
953+
break
954+
}
955+
Assert-False {$i -eq 60} "Cache is not in succeeded state even after 30 min."
956+
}
957+
958+
# Updating Cache
959+
$cacheUpdated = Set-AzRedisCache -Name $cacheName -EnableNonSslPort $true -MinimumTlsVersion 1.2
960+
961+
$replicasPerMaster = 2
962+
Assert-AreEqual $cacheName $cacheUpdated.Name
963+
Assert-AreEqual 6379 $cacheUpdated.Port
964+
Assert-AreEqual 6380 $cacheUpdated.SslPort
965+
Assert-AreEqual "succeeded" $cacheUpdated.ProvisioningState
966+
Assert-True { $cacheUpdated.EnableNonSslPort }
967+
968+
Assert-NotNull $cacheUpdated.PrimaryKey "PrimaryKey do not exists"
969+
Assert-NotNull $cacheUpdated.SecondaryKey "SecondaryKey do not exists"
970+
971+
Assert-AreEqual $replicasPerMaster $cacheUpdated.ReplicasPerMaster
972+
Assert-AreEqual $zones[0] $cacheUpdated.Zone[0]
973+
Assert-AreEqual $zones[1] $cacheUpdated.Zone[1]
974+
Assert-AreEqual ($replicasPerMaster+1) $cacheUpdated.Instances.Count
975+
976+
for($i = 0; $i -lt $cacheUpdated.Instances.Count; $i++)
977+
{
978+
Assert-AreEqual (15000+$i) $cacheUpdated.Instances[$i].SslPort
979+
Assert-AreEqual (13000+$i) $cacheUpdated.Instances[$i].NonSslPort
980+
Assert-Null $cacheUpdated.Instances[$i].ShardId
981+
Assert-NotNull $cacheUpdated.Instances[$i].Zone
982+
}
983+
984+
# List all cache in resource group
985+
$cachesInResourceGroup = Get-AzRedisCache -ResourceGroupName $resourceGroupName
986+
Assert-True {$cachesInResourceGroup.Count -ge 1}
987+
988+
$found = 0
989+
for ($i = 0; $i -lt $cachesInResourceGroup.Count; $i++)
990+
{
991+
if ($cachesInResourceGroup[$i].Name -eq $cacheName)
992+
{
993+
$found = 1
994+
Assert-AreEqual $location $cachesInResourceGroup[$i].Location
995+
Assert-AreEqual $resourceGroupName $cachesInResourceGroup[$i].ResourceGroupName
996+
Assert-AreEqual $replicasPerMaster $cachesInResourceGroup[$i].ReplicasPerMaster
997+
Assert-AreEqual $zones[0] $cachesInResourceGroup[$i].Zone[0]
998+
Assert-AreEqual $zones[1] $cachesInResourceGroup[$i].Zone[1]
999+
Assert-AreEqual ($replicasPerMaster+1) $cachesInResourceGroup[$i].Instances.Count
1000+
1001+
for($j = 0; $j -lt $cachesInResourceGroup[$j].Instances.Count; $j++)
1002+
{
1003+
Assert-AreEqual (15000+$j) $cachesInResourceGroup[$i].Instances[$j].SslPort
1004+
Assert-AreEqual (13000+$j) $cachesInResourceGroup[$i].Instances[$j].NonSslPort
1005+
Assert-Null $cachesInResourceGroup[$i].Instances[$j].ShardId
1006+
Assert-NotNull $cachesInResourceGroup[$i].Instances[$j].Zone
1007+
}
1008+
break
1009+
}
1010+
}
1011+
Assert-True {$found -eq 1} "Cache created earlier is not found."
1012+
1013+
# Delete cache
1014+
Assert-True {Remove-AzRedisCache -ResourceGroupName $resourceGroupName -Name $cacheName -Force -PassThru} "Remove cache failed."
1015+
1016+
# Delete resource group
1017+
Remove-AzResourceGroup -Name $resourceGroupName -Force
1018+
}
1019+
8661020

8671021
<#
8681022
.SYNOPSIS

0 commit comments

Comments
 (0)