Skip to content

Commit d7ee923

Browse files
committed
Merge pull request #1147 from SiddharthChatrolaMs/dev
Premium and vNet support for redis cache
2 parents 50c3fc7 + 1fd7da9 commit d7ee923

21 files changed

+2996
-1710
lines changed

ChangeLog.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
## 2015.10.09 version 1.0 preview
1+
* Azure Redis Cache
2+
* Set-AzureRedisCache - Premium and vNet support for redis cache
3+
* New-AzureRedisCache - Premium and vNet support for redis cache
4+
5+
## 2015.10.09 version 1.0 preview
26
* Azure Resource Manager Management Cmdlets
37
* New-AzureRmResourceGroup - Removed the template deployment parameters from this cmdlet. Template deployment will now be
48
handled only through the New-AzureRmResourceGroupDeployment

src/ResourceManager/RedisCache/Commands.RedisCache.Test/Commands.RedisCache.Test.csproj

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@
5656
<Reference Include="Microsoft.Azure.Common.NetFramework">
5757
<HintPath>..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll</HintPath>
5858
</Reference>
59-
<Reference Include="Microsoft.Azure.Management.Redis, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
60-
<SpecificVersion>False</SpecificVersion>
61-
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Redis.1.0.1-preview\lib\net40\Microsoft.Azure.Management.Redis.dll</HintPath>
59+
<Reference Include="Microsoft.Azure.Management.Redis, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
60+
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Redis.1.1.0-preview\lib\net40\Microsoft.Azure.Management.Redis.dll</HintPath>
61+
<Private>True</Private>
6262
</Reference>
6363
<Reference Include="Microsoft.Azure.ResourceManager, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
6464
<SpecificVersion>False</SpecificVersion>
@@ -171,9 +171,18 @@
171171
<None Include="ScenarioTests\RedisCacheTests.ps1">
172172
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
173173
</None>
174+
<None Include="SessionRecords\Microsoft.Azure.Commands.RedisCache.Test.ScenarioTests.RedisCacheTests\TestCreateExistingRedisCacheTest.json">
175+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
176+
</None>
174177
<None Include="SessionRecords\Microsoft.Azure.Commands.RedisCache.Test.ScenarioTests.RedisCacheTests\TestRedisCache.json">
175178
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
176179
</None>
180+
<None Include="SessionRecords\Microsoft.Azure.Commands.RedisCache.Test.ScenarioTests.RedisCacheTests\TestRedisCacheClustering.json">
181+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
182+
</None>
183+
<None Include="SessionRecords\Microsoft.Azure.Commands.RedisCache.Test.ScenarioTests.RedisCacheTests\TestRedisCacheParameterDeprecated.json">
184+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
185+
</None>
177186
<None Include="SessionRecords\Microsoft.Azure.Commands.RedisCache.Test.ScenarioTests.RedisCacheTests\TestRedisCachePipeline.json">
178187
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
179188
</None>

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,5 +54,12 @@ public void TestMaxMemoryPolicyErrorCheck()
5454
{
5555
RunPowerShellTest("Test-MaxMemoryPolicyErrorCheck");
5656
}
57+
58+
[Fact]
59+
[Trait(Category.AcceptanceType, Category.CheckIn)]
60+
public void TestRedisCacheClustering()
61+
{
62+
RunPowerShellTest("Test-RedisCacheClustering");
63+
}
5764
}
5865
}

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

Lines changed: 136 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ function Test-RedisCache
1111
$location = "North Central US"
1212

1313
# Creating Cache
14-
$cacheCreated = New-AzureRmRedisCache -ResourceGroupName $resourceGroupName -Name $cacheName -Location $location -Size 250MB -Sku Basic
14+
$cacheCreated = New-AzureRmRedisCache -ResourceGroupName $resourceGroupName -Name $cacheName -Location $location -Size 1GB -Sku Standard
1515

1616
Assert-AreEqual $cacheName $cacheCreated.Name
1717
Assert-AreEqual $location $cacheCreated.Location
@@ -22,8 +22,8 @@ function Test-RedisCache
2222
Assert-AreEqual 6380 $cacheCreated.SslPort
2323
Assert-AreEqual "creating" $cacheCreated.ProvisioningState
2424
Assert-AreEqual "3.0" $cacheCreated.RedisVersion
25-
Assert-AreEqual "250MB" $cacheCreated.Size
26-
Assert-AreEqual "Basic" $cacheCreated.Sku
25+
Assert-AreEqual "1GB" $cacheCreated.Size
26+
Assert-AreEqual "Standard" $cacheCreated.Sku
2727

2828
Assert-NotNull $cacheCreated.PrimaryKey "PrimaryKey do not exists"
2929
Assert-NotNull $cacheCreated.SecondaryKey "SecondaryKey do not exists"
@@ -44,8 +44,8 @@ function Test-RedisCache
4444
Assert-AreEqual 6380 $cacheGet[0].SslPort
4545
Assert-AreEqual "succeeded" $cacheGet[0].ProvisioningState
4646
Assert-AreEqual "3.0" $cacheGet[0].RedisVersion
47-
Assert-AreEqual "250MB" $cacheGet[0].Size
48-
Assert-AreEqual "Basic" $cacheGet[0].Sku
47+
Assert-AreEqual "1GB" $cacheGet[0].Size
48+
Assert-AreEqual "Standard" $cacheGet[0].Sku
4949
break
5050
}
5151
Assert-False {$i -eq 60} "Cache is not in succeeded state even after 30 min."
@@ -63,8 +63,8 @@ function Test-RedisCache
6363
Assert-AreEqual 6380 $cacheUpdated.SslPort
6464
Assert-AreEqual "succeeded" $cacheUpdated.ProvisioningState
6565
Assert-AreEqual "3.0" $cacheUpdated.RedisVersion
66-
Assert-AreEqual "250MB" $cacheUpdated.Size
67-
Assert-AreEqual "Basic" $cacheUpdated.Sku
66+
Assert-AreEqual "1GB" $cacheUpdated.Size
67+
Assert-AreEqual "Standard" $cacheUpdated.Sku
6868
Assert-AreEqual "allkeys-lru" $cacheUpdated.RedisConfiguration.Item("maxmemory-policy")
6969
Assert-True { $cacheUpdated.EnableNonSslPort }
7070

@@ -89,8 +89,8 @@ function Test-RedisCache
8989
Assert-AreEqual 6380 $cachesInResourceGroup[$i].SslPort
9090
Assert-AreEqual "succeeded" $cachesInResourceGroup[$i].ProvisioningState
9191
Assert-AreEqual "3.0" $cachesInResourceGroup[$i].RedisVersion
92-
Assert-AreEqual "250MB" $cachesInResourceGroup[$i].Size
93-
Assert-AreEqual "Basic" $cachesInResourceGroup[$i].Sku
92+
Assert-AreEqual "1GB" $cachesInResourceGroup[$i].Size
93+
Assert-AreEqual "Standard" $cachesInResourceGroup[$i].Sku
9494
break
9595
}
9696
}
@@ -115,8 +115,8 @@ function Test-RedisCache
115115
Assert-AreEqual 6380 $cachesInSubscription[$i].SslPort
116116
Assert-AreEqual "succeeded" $cachesInSubscription[$i].ProvisioningState
117117
Assert-AreEqual "3.0" $cachesInSubscription[$i].RedisVersion
118-
Assert-AreEqual "250MB" $cachesInSubscription[$i].Size
119-
Assert-AreEqual "Basic" $cachesInSubscription[$i].Sku
118+
Assert-AreEqual "1GB" $cachesInSubscription[$i].Size
119+
Assert-AreEqual "Standard" $cachesInSubscription[$i].Sku
120120
break
121121
}
122122
}
@@ -166,7 +166,7 @@ function Test-RedisCachePipeline
166166
$location = "North Central US"
167167

168168
# Creating Cache
169-
$cacheCreated = New-AzureRmRedisCache -ResourceGroupName $resourceGroupName -Name $cacheName -Location $location -Size 250MB -Sku Basic -EnableNonSslPort $true
169+
$cacheCreated = New-AzureRmRedisCache -ResourceGroupName $resourceGroupName -Name $cacheName -Location $location -Size 1GB -Sku Basic -EnableNonSslPort $true
170170

171171
Assert-AreEqual $cacheName $cacheCreated.Name
172172
Assert-AreEqual $location $cacheCreated.Location
@@ -177,7 +177,7 @@ function Test-RedisCachePipeline
177177
Assert-AreEqual 6380 $cacheCreated.SslPort
178178
Assert-AreEqual "creating" $cacheCreated.ProvisioningState
179179
Assert-AreEqual "3.0" $cacheCreated.RedisVersion
180-
Assert-AreEqual "250MB" $cacheCreated.Size
180+
Assert-AreEqual "1GB" $cacheCreated.Size
181181
Assert-AreEqual "Basic" $cacheCreated.Sku
182182
Assert-True { $cacheCreated.EnableNonSslPort }
183183

@@ -200,7 +200,7 @@ function Test-RedisCachePipeline
200200
Assert-AreEqual 6380 $cacheGet[0].SslPort
201201
Assert-AreEqual "succeeded" $cacheGet[0].ProvisioningState
202202
Assert-AreEqual "3.0" $cacheGet[0].RedisVersion
203-
Assert-AreEqual "250MB" $cacheGet[0].Size
203+
Assert-AreEqual "1GB" $cacheGet[0].Size
204204
Assert-AreEqual "Basic" $cacheGet[0].Sku
205205
break
206206
}
@@ -220,7 +220,7 @@ function Test-RedisCachePipeline
220220
Assert-AreEqual 6380 $cacheUpdatedPiped.SslPort
221221
Assert-AreEqual "succeeded" $cacheUpdatedPiped.ProvisioningState
222222
Assert-AreEqual "3.0" $cacheUpdatedPiped.RedisVersion
223-
Assert-AreEqual "250MB" $cacheUpdatedPiped.Size
223+
Assert-AreEqual "1GB" $cacheUpdatedPiped.Size
224224
Assert-AreEqual "Basic" $cacheUpdatedPiped.Sku
225225
Assert-AreEqual "allkeys-random" $cacheUpdatedPiped.RedisConfiguration.Item("maxmemory-policy")
226226
Assert-False { $cacheUpdatedPiped.EnableNonSslPort }
@@ -247,7 +247,7 @@ function Test-SetRedisCacheBugFixTest
247247
{
248248
# Setup
249249
# resource group should exists
250-
$resourceGroupName = "Siddharth"
250+
$resourceGroupName = "siddharth"
251251
$cacheName = "siddharthchatrola"
252252
$location = "North Central US"
253253

@@ -273,5 +273,124 @@ function Test-MaxMemoryPolicyErrorCheck
273273
$location = "North Central US"
274274

275275
# Updating Cache
276-
Assert-ThrowsContains {New-AzureRMRedisCache -ResourceGroupName $resourceGroupName -Name $cacheName -Location $location -MaxMemoryPolicy AllKeysRandom} "The 'MaxMemoryPolicy' setting has been deprecated"
276+
Assert-ThrowsContains {New-AzureRmRedisCache -ResourceGroupName $resourceGroupName -Name $cacheName -Location $location -MaxMemoryPolicy AllKeysRandom} "The 'MaxMemoryPolicy' setting has been deprecated"
277+
}
278+
279+
<#
280+
.SYNOPSIS
281+
Tests redis cache clustering.
282+
#>
283+
function Test-RedisCacheClustering
284+
{
285+
# Setup
286+
# resource group should exists
287+
$resourceGroupName = "MyResourceGroup"
288+
$cacheName = "powershellcluster"
289+
$location = "East US"
290+
291+
# Creating Cache
292+
$cacheCreated = New-AzureRmRedisCache -ResourceGroupName $resourceGroupName -Name $cacheName -Location $location -Size 6GB -Sku Premium -ShardCount 3
293+
Assert-AreEqual "Microsoft.Cache/Redis" $cacheCreated.Type
294+
Assert-AreEqual $resourceGroupName $cacheCreated.ResourceGroupName
295+
296+
Assert-AreEqual 6379 $cacheCreated.Port
297+
Assert-AreEqual 6380 $cacheCreated.SslPort
298+
Assert-AreEqual "creating" $cacheCreated.ProvisioningState
299+
Assert-AreEqual "6GB" $cacheCreated.Size
300+
Assert-AreEqual "Premium" $cacheCreated.Sku
301+
Assert-AreEqual 3 $cacheCreated.ShardCount
302+
303+
Assert-NotNull $cacheCreated.PrimaryKey "PrimaryKey do not exists"
304+
Assert-NotNull $cacheCreated.SecondaryKey "SecondaryKey do not exists"
305+
306+
# In loop to check if cache exists
307+
for ($i = 0; $i -le 60; $i++)
308+
{
309+
[Microsoft.WindowsAzure.Commands.Utilities.Common.TestMockSupport]::Delay(30000)
310+
$cacheGet = Get-AzureRmRedisCache -ResourceGroupName $resourceGroupName -Name $cacheName
311+
if ([string]::Compare("succeeded", $cacheGet[0].ProvisioningState, $True) -eq 0)
312+
{
313+
Assert-AreEqual $cacheName $cacheGet[0].Name
314+
break
315+
}
316+
Assert-False {$i -eq 60} "Cache is not in succeeded state even after 30 min."
317+
}
318+
319+
# Updating Cache
320+
$cacheUpdated = Set-AzureRmRedisCache -ResourceGroupName $resourceGroupName -Name $cacheName -RedisConfiguration @{"maxmemory-policy" = "allkeys-lru"} -TenantSettings @{"some-key" = "some-value"}
321+
322+
Assert-AreEqual $cacheName $cacheUpdated.Name
323+
Assert-AreEqual "succeeded" $cacheUpdated.ProvisioningState
324+
Assert-AreEqual "6GB" $cacheCreated.Size
325+
Assert-AreEqual "Premium" $cacheCreated.Sku
326+
Assert-AreEqual 3 $cacheCreated.ShardCount
327+
Assert-AreEqual "allkeys-lru" $cacheUpdated.RedisConfiguration.Item("maxmemory-policy")
328+
Assert-AreEqual "some-value" $cacheUpdated.TenantSettings.Item("some-key")
329+
330+
Assert-NotNull $cacheUpdated.PrimaryKey "PrimaryKey do not exists"
331+
Assert-NotNull $cacheUpdated.SecondaryKey "SecondaryKey do not exists"
332+
333+
# List all cache in resource group
334+
$cachesInResourceGroup = Get-AzureRmRedisCache -ResourceGroupName $resourceGroupName
335+
Assert-True {$cachesInResourceGroup.Count -ge 1}
336+
337+
$found = 0
338+
for ($i = 0; $i -lt $cachesInResourceGroup.Count; $i++)
339+
{
340+
if ($cachesInResourceGroup[$i].Name -eq $cacheName)
341+
{
342+
$found = 1
343+
Assert-AreEqual $location $cachesInResourceGroup[$i].Location
344+
Assert-AreEqual "Microsoft.Cache/Redis" $cachesInResourceGroup[$i].Type
345+
Assert-AreEqual $resourceGroupName $cachesInResourceGroup[$i].ResourceGroupName
346+
347+
Assert-AreEqual 6379 $cachesInResourceGroup[$i].Port
348+
Assert-AreEqual 6380 $cachesInResourceGroup[$i].SslPort
349+
Assert-AreEqual "succeeded" $cachesInResourceGroup[$i].ProvisioningState
350+
Assert-AreEqual "6GB" $cacheCreated.Size
351+
Assert-AreEqual "Premium" $cacheCreated.Sku
352+
Assert-AreEqual 3 $cacheCreated.ShardCount
353+
break
354+
}
355+
}
356+
Assert-True {$found -eq 1} "Cache created earlier is not found."
357+
358+
# List all cache in subscription
359+
$cachesInSubscription = Get-AzureRmRedisCache
360+
Assert-True {$cachesInSubscription.Count -ge 1}
361+
Assert-True {$cachesInSubscription.Count -ge $cachesInResourceGroup.Count}
362+
363+
$found = 0
364+
for ($i = 0; $i -lt $cachesInSubscription.Count; $i++)
365+
{
366+
if ($cachesInSubscription[$i].Name -eq $cacheName)
367+
{
368+
$found = 1
369+
Assert-AreEqual $location $cachesInSubscription[$i].Location
370+
Assert-AreEqual "Microsoft.Cache/Redis" $cachesInSubscription[$i].Type
371+
Assert-AreEqual $resourceGroupName $cachesInSubscription[$i].ResourceGroupName
372+
373+
Assert-AreEqual 6379 $cachesInSubscription[$i].Port
374+
Assert-AreEqual 6380 $cachesInSubscription[$i].SslPort
375+
Assert-AreEqual "succeeded" $cachesInSubscription[$i].ProvisioningState
376+
Assert-AreEqual "6GB" $cacheCreated.Size
377+
Assert-AreEqual "Premium" $cacheCreated.Sku
378+
Assert-AreEqual 3 $cacheCreated.ShardCount
379+
break
380+
}
381+
}
382+
Assert-True {$found -eq 1} "Cache created earlier is not found."
383+
384+
# Get cache keys
385+
$cacheKeysBeforeUpdate = Get-AzureRmRedisCacheKey -ResourceGroupName $resourceGroupName -Name $cacheName
386+
Assert-NotNull $cacheKeysBeforeUpdate.PrimaryKey "PrimaryKey do not exists"
387+
Assert-NotNull $cacheKeysBeforeUpdate.SecondaryKey "SecondaryKey do not exists"
388+
389+
# Regenerate primary key
390+
$cacheKeysAfterUpdate = New-AzureRmRedisCacheKey -ResourceGroupName $resourceGroupName -Name $cacheName -KeyType Primary -Force
391+
Assert-AreEqual $cacheKeysBeforeUpdate.SecondaryKey $cacheKeysAfterUpdate.SecondaryKey
392+
Assert-AreNotEqual $cacheKeysBeforeUpdate.PrimaryKey $cacheKeysAfterUpdate.PrimaryKey
393+
394+
# Delete cache
395+
Assert-True {Remove-AzureRmRedisCache -ResourceGroupName $resourceGroupName -Name $cacheName -Force -PassThru} "Remove cache failed."
277396
}

0 commit comments

Comments
 (0)