Skip to content

Commit 5476ccf

Browse files
committed
Merge pull request #1047 from vivsriaus/FindResource
Add Find-Resource cmdlet and test/help file
2 parents 5dc79ac + 23f693d commit 5476ccf

19 files changed

+2034
-32
lines changed

src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Commands.Resources.Rest.csproj

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,11 @@
138138
<Compile Include="Handlers\TracingHandler.cs" />
139139
<Compile Include="Handlers\UserAgentHandler.cs" />
140140
<Compile Include="Implementation\GetAzureResourceGroupDeploymentOperationCmdlet.cs" />
141-
<Compile Include="Implementation\GetAzureResourceLockCmdlet.cs" />
141+
<Compile Include="Implementation\Lock\GetAzureResourceLockCmdlet.cs" />
142142
<Compile Include="Implementation\InvokeAzureResourceActionCmdlet.cs" />
143-
<Compile Include="Implementation\MoveAzureResourceCmdlet.cs" />
144-
<Compile Include="Implementation\NewAzureResourceLockCmdlet.cs" />
143+
<Compile Include="Implementation\Resource\FindAzureResourceCmdlet.cs" />
144+
<Compile Include="Implementation\Resource\MoveAzureResourceCmdlet.cs" />
145+
<Compile Include="Implementation\Lock\NewAzureResourceLockCmdlet.cs" />
145146
<Compile Include="Implementation\Policy\GetAzurePolicyAssignment.cs" />
146147
<Compile Include="Implementation\Policy\GetAzurePolicyDefinition.cs" />
147148
<Compile Include="Implementation\Policy\NewAzurePolicyAssignment.cs" />
@@ -152,26 +153,26 @@
152153
<Compile Include="Implementation\Policy\RemoveAzurePolicyDefinition.cs" />
153154
<Compile Include="Implementation\Policy\SetAzurePolicyAssignment.cs" />
154155
<Compile Include="Implementation\Policy\SetAzurePolicyDefinition.cs" />
155-
<Compile Include="Implementation\RemoveAzureResourceCmdlet.cs" />
156-
<Compile Include="Implementation\RemoveAzureResourceLockCmdlet.cs" />
157-
<Compile Include="Implementation\ResourceLockManagementCmdletBase.cs" />
158-
<Compile Include="Implementation\SetAzureResourceCmdlet.cs" />
159-
<Compile Include="Implementation\NewAzureResourceCmdlet.cs" />
156+
<Compile Include="Implementation\Resource\RemoveAzureResourceCmdlet.cs" />
157+
<Compile Include="Implementation\Lock\RemoveAzureResourceLockCmdlet.cs" />
158+
<Compile Include="Implementation\Lock\ResourceLockManagementCmdletBase.cs" />
159+
<Compile Include="Implementation\Resource\SetAzureResourceCmdlet.cs" />
160+
<Compile Include="Implementation\Resource\NewAzureResourceCmdlet.cs" />
160161
<Compile Include="Implementation\ResourceManipulationCmdletBase.cs" />
161162
<Compile Include="Components\ApiVersionHelper.cs" />
162163
<Compile Include="Extensions\ErrorResponseMessageExceptionExtensions.cs" />
163164
<Compile Include="Components\LongRunningOperationHelper.cs" />
164165
<Compile Include="Extensions\ResourceExtensions.cs" />
165166
<Compile Include="Extensions\JTokenExtensions.cs" />
166167
<Compile Include="Implementation\ResourceManagerCmdletBase.cs" />
167-
<Compile Include="Implementation\SetAzureResourceLockCmdlet.cs" />
168-
<Compile Include="Implementation\TestAzureResourceCmdlet.cs" />
168+
<Compile Include="Implementation\Lock\SetAzureResourceLockCmdlet.cs" />
169+
<Compile Include="Implementation\Resource\TestAzureResourceCmdlet.cs" />
169170
<Compile Include="Implementation\TestAzureResourceGroupCmdlet.cs" />
170171
<Compile Include="Json\CamelCasePropertyNamesWithOverridesContractResolver.cs" />
171172
<Compile Include="Json\JsonPreserveCaseDictionaryAttribute.cs" />
172173
<Compile Include="Json\TimeSpanConverter.cs" />
173174
<Compile Include="Properties\AssemblyInfo.cs" />
174-
<Compile Include="Implementation\GetAzureResourceCmdlet.cs" />
175+
<Compile Include="Implementation\Resource\GetAzureResourceCmdlet.cs" />
175176
<Compile Include="RestClients\ResourceManagerRestClientBase.cs" />
176177
<Compile Include="RestClients\ResourceManagerRestRestClient.cs" />
177178
<Compile Include="Utilities\HttpUtility.cs" />

src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Components/QueryFilterBuilder.cs

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@ public static string CreateFilter(
4141
string resourceName,
4242
string tagName,
4343
string tagValue,
44-
string filter)
44+
string filter,
45+
string nameContains = null,
46+
string resourceGroupNameContains = null)
4547
{
4648
var filterStringBuilder = new StringBuilder();
4749

@@ -72,7 +74,7 @@ public static string CreateFilter(
7274
filterStringBuilder.AppendFormat("resourceGroup EQ '{0}'", resourceGroup);
7375
}
7476

75-
var remainderFilter = QueryFilterBuilder.CreateFilter(resourceType, resourceName, tagName, tagValue, filter);
77+
var remainderFilter = QueryFilterBuilder.CreateFilter(resourceType, resourceName, tagName, tagValue, filter, nameContains, resourceGroupNameContains);
7678

7779
if (filterStringBuilder.Length > 0 && !string.IsNullOrWhiteSpace(remainderFilter))
7880
{
@@ -92,9 +94,10 @@ public static string CreateFilter(
9294
/// <param name="tagName">The tag name.</param>
9395
/// <param name="tagValue">The tag value.</param>
9496
/// <param name="filter">The filter.</param>
95-
public static string CreateFilter(string resourceType, string resourceName, string tagName, string tagValue, string filter)
97+
public static string CreateFilter(string resourceType, string resourceName, string tagName, string tagValue, string filter, string nameContains=null, string resourceGroupNameContains=null)
9698
{
9799
var filterStringBuilder = new StringBuilder();
100+
var substringStringBuilder = new StringBuilder();
98101

99102
if (!string.IsNullOrWhiteSpace(resourceType))
100103
{
@@ -131,6 +134,26 @@ public static string CreateFilter(string resourceType, string resourceName, stri
131134
filterStringBuilder.AppendFormat("tagValue EQ '{0}'", tagValue);
132135
}
133136

137+
if (!string.IsNullOrWhiteSpace(nameContains))
138+
{
139+
if (filterStringBuilder.Length > 0)
140+
{
141+
filterStringBuilder.Append(" AND ");
142+
}
143+
144+
filterStringBuilder.AppendFormat("substringof('{0}', name)", nameContains);
145+
}
146+
147+
if (!string.IsNullOrWhiteSpace(resourceGroupNameContains))
148+
{
149+
if (filterStringBuilder.Length > 0)
150+
{
151+
filterStringBuilder.Append(" AND ");
152+
}
153+
154+
filterStringBuilder.AppendFormat("substringof('{0}', resourceGroup)", resourceGroupNameContains);
155+
}
156+
134157
if (!string.IsNullOrWhiteSpace(filter))
135158
{
136159
filter = filter.Trim().TrimStart('?').TrimStart('&');

0 commit comments

Comments
 (0)