Skip to content

Commit e5316aa

Browse files
author
Siddharth Chatrola
committed
Added ValidateNotNullOrEmpty for ResourceGroupName, Modified change logs, Fix ordering of parameters for better help, some minor changes
1 parent f8d35fb commit e5316aa

20 files changed

+58
-62
lines changed

src/ResourceManager/RedisCache/ChangeLog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020
## Current Release
2121
* Added Location Completer to -Location parameters allowing tab completion through valid Locations
2222
* Added ResourceGroup Completer to -ResourceGroup parameters allowing tab completion through resource groups in current subscription
23+
* Added 3 new cmdlets for firewall rules
24+
* Added 3 new cmdlets for geo replication
25+
* Added support for zones and tags
26+
* Make ResourceGroup as optional whenever possible.
2327

2428
## Version 4.0.1
2529
* Fixed assembly loading issue that caused some cmdlets to fail when executing

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/ExportAzureRedisCache.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public class ExportAzureRedisCache : RedisCacheCmdletBase
2525
{
2626
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of resource group under which cache exists.")]
2727
[ResourceGroupCompleter]
28+
[ValidateNotNullOrEmpty]
2829
public string ResourceGroupName { get; set; }
2930

3031
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of redis cache.")]

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/GetAzureRedisCache.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public class GetAzureRedisCache : RedisCacheCmdletBase
2828
{
2929
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of resource group under which want to create cache.")]
3030
[ResourceGroupCompleter]
31+
[ValidateNotNullOrEmpty]
3132
public string ResourceGroupName { get; set; }
3233

3334
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of redis cache.")]

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/GetAzureRedisCacheFirewallRule.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public class GetAzureRedisCacheFirewallRule : RedisCacheCmdletBase
2727
{
2828
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of resource group in which cache exists.")]
2929
[ResourceGroupCompleter]
30+
[ValidateNotNullOrEmpty]
3031
public string ResourceGroupName { get; set; }
3132

3233
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of redis cache.")]

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/GetAzureRedisCacheKey.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public class GetAzureRedisCacheKey : RedisCacheCmdletBase
2323
{
2424
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of resource group under which cache exists.")]
2525
[ResourceGroupCompleter]
26+
[ValidateNotNullOrEmpty]
2627
public string ResourceGroupName { get; set; }
2728

2829
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of redis cache.")]

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/GetAzureRedisCacheLink.cs

Lines changed: 23 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -59,43 +59,37 @@ public override void ExecuteCmdlet()
5959
if (!string.IsNullOrWhiteSpace(Name))
6060
{
6161
// All links for cache
62-
if (!string.IsNullOrWhiteSpace(PrimaryServerName) || !string.IsNullOrWhiteSpace(SecondaryServerName))
63-
{
64-
throw new ArgumentException(Resources.LinkServerIncompatibleParameterException);
65-
}
6662
List<PSRedisLinkedServer> list = GetAllLinks(Name);
6763
WriteObject(list, true);
6864
}
69-
else
65+
else if (!string.IsNullOrWhiteSpace(PrimaryServerName) && !string.IsNullOrWhiteSpace(SecondaryServerName))
7066
{
71-
if (!string.IsNullOrWhiteSpace(PrimaryServerName) && !string.IsNullOrWhiteSpace(SecondaryServerName))
72-
{
73-
// specific link only
74-
string resourceGroupName = CacheClient.GetResourceGroupNameIfNotProvided(null, PrimaryServerName);
75-
RedisLinkedServerWithProperties redisLinkedServer = CacheClient.GetLinkedServer(
76-
resourceGroupName: resourceGroupName,
77-
cacheName: PrimaryServerName,
78-
linkedCacheName: SecondaryServerName);
67+
// specific link only
68+
string resourceGroupName = CacheClient.GetResourceGroupNameIfNotProvided(null, PrimaryServerName);
69+
RedisLinkedServerWithProperties redisLinkedServer = CacheClient.GetLinkedServer(
70+
resourceGroupName: resourceGroupName,
71+
cacheName: PrimaryServerName,
72+
linkedCacheName: SecondaryServerName);
7973

80-
if (redisLinkedServer == null || redisLinkedServer.ServerRole != ReplicationRole.Secondary)
81-
{
82-
throw new CloudException(string.Format(Resources.LinkedServerNotFound, PrimaryServerName, SecondaryServerName));
83-
}
84-
WriteObject(new PSRedisLinkedServer(redisLinkedServer));
85-
}
86-
else if (!string.IsNullOrWhiteSpace(PrimaryServerName))
87-
{
88-
// all primary links only
89-
List<PSRedisLinkedServer> list = GetAllLinksByRoleType(PrimaryServerName, ReplicationRole.Primary);
90-
WriteObject(list, true);
91-
}
92-
else
74+
if (redisLinkedServer == null || redisLinkedServer.ServerRole != ReplicationRole.Secondary)
9375
{
94-
// all secondary links only
95-
List<PSRedisLinkedServer> list = GetAllLinksByRoleType(SecondaryServerName, ReplicationRole.Secondary);
96-
WriteObject(list, true);
76+
throw new CloudException(string.Format(Resources.LinkedServerNotFound, PrimaryServerName, SecondaryServerName));
9777
}
78+
WriteObject(new PSRedisLinkedServer(redisLinkedServer));
9879
}
80+
else if (!string.IsNullOrWhiteSpace(PrimaryServerName))
81+
{
82+
// all primary links only
83+
List<PSRedisLinkedServer> list = GetAllLinksByRoleType(PrimaryServerName, ReplicationRole.Primary);
84+
WriteObject(list, true);
85+
}
86+
else
87+
{
88+
// all secondary links only
89+
List<PSRedisLinkedServer> list = GetAllLinksByRoleType(SecondaryServerName, ReplicationRole.Secondary);
90+
WriteObject(list, true);
91+
}
92+
9993
}
10094

10195
private List<PSRedisLinkedServer> GetAllLinks(string cacheName)

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/GetAzureRedisCachePatchSchedule.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public class GetAzureRedisCachePatchSchedule : RedisCacheCmdletBase
2929
{
3030
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of resource group in which cache exists.")]
3131
[ResourceGroupCompleter]
32+
[ValidateNotNullOrEmpty]
3233
public string ResourceGroupName { get; set; }
3334

3435
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of redis cache.")]

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/ImportAzureRedisCache.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public class ImportAzureRedisCache : RedisCacheCmdletBase
2525
{
2626
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of resource group under which cache exists.")]
2727
[ResourceGroupCompleter]
28+
[ValidateNotNullOrEmpty]
2829
public string ResourceGroupName { get; set; }
2930

3031
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of redis cache.")]

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/NewAzureRedisCacheFirewallRule.cs

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -30,38 +30,33 @@ public class NewAzureRedisCacheFirewallRule : RedisCacheCmdletBase
3030

3131
[Parameter(ParameterSetName = NormalParameterSet, ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of resource group in which cache exists.")]
3232
[ResourceGroupCompleter]
33+
[ValidateNotNullOrEmpty]
3334
public string ResourceGroupName { get; set; }
3435

3536
[Parameter(ParameterSetName = NormalParameterSet, ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of redis cache.")]
3637
[ValidateNotNullOrEmpty]
3738
public string Name { get; set; }
3839

39-
[Parameter(ParameterSetName = NormalParameterSet, ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of firewall rule.")]
40-
[Parameter(ParameterSetName = InputObjectParameterSet, ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of firewall rule.")]
41-
[Parameter(ParameterSetName = ResourceIdParameterSet, ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of firewall rule.")]
40+
[Parameter(ParameterSetName = InputObjectParameterSet, Mandatory = true, ValueFromPipeline = true, HelpMessage = "Object of type RedisCacheAttributes")]
41+
[ValidateNotNull]
42+
public RedisCacheAttributes InputObject { get; set; }
43+
44+
[Parameter(ParameterSetName = ResourceIdParameterSet, ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "ARM Id of Redis Cache.")]
45+
[ValidateNotNullOrEmpty]
46+
public string ResourceId { get; set; }
47+
48+
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of firewall rule.")]
4249
[ValidateNotNullOrEmpty]
4350
public string RuleName { get; set; }
4451

45-
[Parameter(ParameterSetName = NormalParameterSet, ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Starting IP address.")]
46-
[Parameter(ParameterSetName = InputObjectParameterSet, ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Starting IP address.")]
47-
[Parameter(ParameterSetName = ResourceIdParameterSet, ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Starting IP address.")]
52+
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Starting IP address.")]
4853
[ValidateNotNullOrEmpty]
4954
public string StartIP { get; set; }
5055

51-
[Parameter(ParameterSetName = NormalParameterSet, ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Ending IP address.")]
52-
[Parameter(ParameterSetName = InputObjectParameterSet, ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Ending IP address.")]
53-
[Parameter(ParameterSetName = ResourceIdParameterSet, ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Ending IP address.")]
56+
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Ending IP address.")]
5457
[ValidateNotNullOrEmpty]
5558
public string EndIP { get; set; }
5659

57-
[Parameter(ParameterSetName = InputObjectParameterSet, Mandatory = true, ValueFromPipeline = true, HelpMessage = "object of type RedisCacheAttributes")]
58-
[ValidateNotNull]
59-
public RedisCacheAttributes InputObject { get; set; }
60-
61-
[Parameter(ParameterSetName = ResourceIdParameterSet, ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "ARM Id of Redis Cache.")]
62-
[ValidateNotNullOrEmpty]
63-
public string ResourceId { get; set; }
64-
6560
public override void ExecuteCmdlet()
6661
{
6762
// In case of piped parent object "RedisCacheAttributes" fetch ResourceGroupName and Name from it

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/NewAzureRedisCacheKey.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public class NewAzureRedisCacheKey : RedisCacheCmdletBase
2525
{
2626
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of resource group under which cache exists.")]
2727
[ResourceGroupCompleter]
28+
[ValidateNotNullOrEmpty]
2829
public string ResourceGroupName { get; set; }
2930

3031
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of redis cache.")]

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/NewAzureRedisCachePatchSchedule.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public class NewAzureRedisCachePatchSchedule : RedisCacheCmdletBase
2828
{
2929
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of resource group in which cache exists.")]
3030
[ResourceGroupCompleter]
31+
[ValidateNotNullOrEmpty]
3132
public string ResourceGroupName { get; set; }
3233

3334
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of redis cache.")]

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/RemoveAzureRedisCache.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public class RemoveAzureRedisCache : RedisCacheCmdletBase
2626
{
2727
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of resource group under which cache exists.")]
2828
[ResourceGroupCompleter]
29+
[ValidateNotNullOrEmpty]
2930
public string ResourceGroupName { get; set; }
3031

3132
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of redis cache to be removed.")]

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/RemoveAzureRedisCacheDiagnostics.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public class RemoveAzureRedisCacheDiagnostics : RedisCacheCmdletBase
2727
{
2828
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of resource group under which cache exists.")]
2929
[ResourceGroupCompleter]
30+
[ValidateNotNullOrEmpty]
3031
public string ResourceGroupName { get; set; }
3132

3233
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of redis cache.")]

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/RemoveAzureRedisCacheFirewallRule.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public class RemoveAzureRedisCacheFirewallRule : RedisCacheCmdletBase
2727

2828
[Parameter(ParameterSetName = NormalParameterSet, ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of resource group in which cache exists.")]
2929
[ResourceGroupCompleter]
30+
[ValidateNotNullOrEmpty]
3031
public string ResourceGroupName { get; set; }
3132

3233
[Parameter(ParameterSetName = NormalParameterSet, ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of redis cache.")]
@@ -37,13 +38,13 @@ public class RemoveAzureRedisCacheFirewallRule : RedisCacheCmdletBase
3738
[ValidateNotNullOrEmpty]
3839
public string RuleName { get; set; }
3940

40-
[Parameter(Mandatory = false)]
41-
public SwitchParameter PassThru { get; set; }
42-
43-
[Parameter(ParameterSetName = InputObjectParameterSet, Mandatory = true, ValueFromPipeline = true, HelpMessage = "object of type PSRedisFirewallRule")]
41+
[Parameter(ParameterSetName = InputObjectParameterSet, Mandatory = true, ValueFromPipeline = true, HelpMessage = "Object of type PSRedisFirewallRule")]
4442
[ValidateNotNull]
4543
public PSRedisFirewallRule InputObject { get; set; }
4644

45+
[Parameter(Mandatory = false)]
46+
public SwitchParameter PassThru { get; set; }
47+
4748
public override void ExecuteCmdlet()
4849
{
4950
if (ParameterSetName.Equals(InputObjectParameterSet))

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/RemoveAzureRedisCachePatchSchedule.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public class RemoveAzureRedisCachePatchSchedule : RedisCacheCmdletBase
2828
{
2929
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of resource group in which cache exists.")]
3030
[ResourceGroupCompleter]
31+
[ValidateNotNullOrEmpty]
3132
public string ResourceGroupName { get; set; }
3233

3334
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of redis cache.")]

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/ResetAzureRedisCache.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public class ResetAzureRedisCache : RedisCacheCmdletBase
2727
{
2828
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of resource group under which cache exists.")]
2929
[ResourceGroupCompleter]
30+
[ValidateNotNullOrEmpty]
3031
public string ResourceGroupName { get; set; }
3132

3233
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of redis cache.")]

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/SetAzureRedisCache.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public class SetAzureRedisCache : RedisCacheCmdletBase
2828
{
2929
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of resource group under which you want to create cache.")]
3030
[ResourceGroupCompleter]
31+
[ValidateNotNullOrEmpty]
3132
public string ResourceGroupName { get; set; }
3233

3334
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of redis cache.")]

src/ResourceManager/RedisCache/Commands.RedisCache/Commands/SetAzureRedisCacheDiagnostics.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public class SetAzureRedisCacheDiagnostics : RedisCacheCmdletBase
2525
{
2626
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = false, HelpMessage = "Name of resource group under which cache exists.")]
2727
[ResourceGroupCompleter]
28+
[ValidateNotNullOrEmpty]
2829
public string ResourceGroupName { get; set; }
2930

3031
[Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true, HelpMessage = "Name of redis cache.")]

src/ResourceManager/RedisCache/Commands.RedisCache/Properties/Resources.Designer.cs

Lines changed: 0 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/ResourceManager/RedisCache/Commands.RedisCache/Properties/Resources.resx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -195,9 +195,6 @@
195195
<data name="CacheNotFound" xml:space="preserve">
196196
<value>Redis Cache with name '{0}' does not exists.</value>
197197
</data>
198-
<data name="LinkServerIncompatibleParameterException" xml:space="preserve">
199-
<value>Parameter 'Name' is not compatible with parameters 'PrimaryServerName' and/or 'SecondaryServerName'.</value>
200-
</data>
201198
<data name="CreatePatchSchedule" xml:space="preserve">
202199
<value>Creating patching schedule on redis cache '{0}'...</value>
203200
</data>

0 commit comments

Comments
 (0)