Skip to content

Commit a2a576f

Browse files
committed
Adding Filtering
1 parent 7c5772d commit a2a576f

File tree

5 files changed

+57
-10
lines changed

5 files changed

+57
-10
lines changed

src/ResourceManager/Dns/Commands.Dns/Models/DnsClient.cs

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,14 @@ public DnsZone GetDnsZone(string name, string resourceGroupName)
126126
};
127127
}
128128

129-
public List<DnsZone> ListDnsZones(string resourceGroupName)
129+
public List<DnsZone> ListDnsZones(string resourceGroupName, string endsWith)
130130
{
131-
ZoneListResponse getResponse = this.DnsManagementClient.Zones.List(resourceGroupName);
131+
ZoneListParameters zoneListParameters = new ZoneListParameters
132+
{
133+
Filter = string.Format("endswith(Name,'{0}')", endsWith)
134+
};
135+
136+
ZoneListResponse getResponse = this.DnsManagementClient.Zones.List(resourceGroupName, zoneListParameters);
132137
return getResponse.Zones.Select(zoneInResponse => new DnsZone
133138
{
134139
Name = zoneInResponse.Name,
@@ -229,18 +234,28 @@ public DnsRecordSet GetDnsRecordSet(string name, string zoneName, string resourc
229234
return GetPowerShellRecordSet(zoneName, resourceGroupName, getResponse.RecordSet);
230235
}
231236

232-
public List<DnsRecordSet> ListRecordSets(string zoneName, string resourceGroupName, RecordType recordType)
237+
public List<DnsRecordSet> ListRecordSets(string zoneName, string resourceGroupName, RecordType recordType, string endsWith)
233238
{
234-
RecordListResponse listResponse = this.DnsManagementClient.Records.List(resourceGroupName, zoneName, recordType);
239+
RecordListParameters recordListParameters = new RecordListParameters
240+
{
241+
Filter = string.Format("endswith(Name,'{0}')", endsWith)
242+
};
243+
244+
RecordListResponse listResponse = this.DnsManagementClient.Records.List(resourceGroupName, zoneName, recordType, recordListParameters);
235245
return listResponse
236246
.RecordSets
237247
.Select(recordSetInResponse => GetPowerShellRecordSet(zoneName, resourceGroupName, recordSetInResponse))
238248
.ToList();
239249
}
240250

241-
public List<DnsRecordSet> ListRecordSets(string zoneName, string resourceGroupName)
251+
public List<DnsRecordSet> ListRecordSets(string zoneName, string resourceGroupName, string endsWith)
242252
{
243-
RecordListResponse listResponse = this.DnsManagementClient.Records.ListAll(resourceGroupName, zoneName);
253+
RecordListParameters recordListParameters = new RecordListParameters
254+
{
255+
Filter = string.Format("endswith(Name,'{0}')", endsWith)
256+
};
257+
258+
RecordListResponse listResponse = this.DnsManagementClient.Records.ListAll(resourceGroupName, zoneName, recordListParameters);
244259
return listResponse
245260
.RecordSets
246261
.Select(recordSetInResponse => GetPowerShellRecordSet(zoneName, resourceGroupName, recordSetInResponse))

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

Lines changed: 10 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,9 @@
135135
<data name="Error_EtagNotSpecified" xml:space="preserve">
136136
<value>The ETag property of the {0} object is empty or "*". In order to perform this operation with optimistic concurrency checks, please set the Etag property (you may need to Get the {0} first). In order to perform the operation without optimistic concurrency checks, please specify the -IgnoreEtag switch. </value>
137137
</data>
138+
<data name="Error_NameAndEndsWith" xml:space="preserve">
139+
<value>Name parameter cannot be used with EndsWith.</value>
140+
</data>
138141
<data name="Error_RemoveRecordTypeMismatch" xml:space="preserve">
139142
<value>Cannot remove a record of type {0} from a record set of type {1}. The types must match.</value>
140143
</data>

src/ResourceManager/Dns/Commands.Dns/Records/GetAzureDnsRescordSet.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ public class GetAzureDnsRecordSet : DnsBaseCmdlet
5050
[ValidateNotNullOrEmpty]
5151
public string RecordType { get; set; }
5252

53+
[Parameter(Mandatory = false, ValueFromPipelineByPropertyName = true, HelpMessage = "The relative name suffix to search.")]
54+
[ValidateNotNullOrEmpty]
55+
public string EndsWith { get; set; }
56+
5357
public override void ExecuteCmdlet()
5458
{
5559
RecordType recordType = default(RecordType);
@@ -72,6 +76,11 @@ public override void ExecuteCmdlet()
7276
resourceGroupName = this.Zone.ResourceGroupName;
7377
}
7478

79+
if (this.Name != null && this.EndsWith != null)
80+
{
81+
throw new PSArgumentException(ProjectResources.Error_NameAndEndsWith);
82+
}
83+
7584
if (this.Name != null)
7685
{
7786
if (this.RecordType == null)
@@ -87,11 +96,11 @@ public override void ExecuteCmdlet()
8796
List<DnsRecordSet> result = null;
8897
if (this.RecordType == null)
8998
{
90-
result = this.DnsClient.ListRecordSets(zoneName, resourceGroupName);
99+
result = this.DnsClient.ListRecordSets(zoneName, resourceGroupName, this.EndsWith);
91100
}
92101
else
93102
{
94-
result = this.DnsClient.ListRecordSets(zoneName, resourceGroupName, recordType);
103+
result = this.DnsClient.ListRecordSets(zoneName, resourceGroupName, recordType, this.EndsWith);
95104
}
96105

97106
this.WriteObject(result);

src/ResourceManager/Dns/Commands.Dns/Zones/GetAzureDnsZone.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
using System.Management.Automation;
1717
using Microsoft.Azure.Commands.Dns.Models;
1818

19+
using ProjectResources = Microsoft.Azure.Commands.Dns.Properties.Resources;
20+
1921
namespace Microsoft.Azure.Commands.Dns
2022
{
2123
/// <summary>
@@ -32,15 +34,24 @@ public class GetAzureDnsZone : DnsBaseCmdlet
3234
[ValidateNotNullOrEmpty]
3335
public string ResourceGroupName { get; set; }
3436

37+
[Parameter(Mandatory = false, ValueFromPipelineByPropertyName = true, HelpMessage = "The relative name suffix to search.")]
38+
[ValidateNotNullOrEmpty]
39+
public string EndsWith { get; set; }
40+
3541
public override void ExecuteCmdlet()
3642
{
43+
if (this.Name != null && this.EndsWith != null)
44+
{
45+
throw new PSArgumentException(ProjectResources.Error_NameAndEndsWith);
46+
}
47+
3748
if (this.Name != null)
3849
{
3950
WriteObject(this.DnsClient.GetDnsZone(this.Name, this.ResourceGroupName));
4051
}
4152
else
4253
{
43-
WriteObject(this.DnsClient.ListDnsZones(this.ResourceGroupName));
54+
WriteObject(this.DnsClient.ListDnsZones(this.ResourceGroupName, this.EndsWith));
4455
}
4556
}
4657
}

0 commit comments

Comments
 (0)