Skip to content

Commit bbfd783

Browse files
authored
[Storage] Support filter when listing share with management plane cmdlet Get-AzRmStorageShare (#23704)
* Support filter when listing share with mgmt plane cmdlet * Add example
1 parent 28b8ee6 commit bbfd783

File tree

5 files changed

+676
-386
lines changed

5 files changed

+676
-386
lines changed

src/Storage/Storage.Management.Test/ScenarioTests/StorageFileTests.ps1

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,15 @@ function Test-StorageFileShare
8585
Assert-AreEqual $shareName $shares[1].Name
8686
Assert-AreEqual $shareName2 $shares[0].Name
8787

88+
$shares = Get-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname -Filter "startswith(name, share)"
89+
Assert-AreEqual 2 $shares.Count
90+
Assert-AreEqual $shareName $shares[1].Name
91+
Assert-AreEqual $shareName2 $shares[0].Name
92+
93+
$shares = Get-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname -Filter "startswith(name, share2)"
94+
Assert-AreEqual 1 $shares.Count
95+
Assert-AreEqual $shareName2 $shares[0].Name
96+
8897
Remove-AzRmStorageShare -Force -ResourceGroupName $rgname -StorageAccountName $stoname -Name $shareName
8998
$shares = Get-AzRmStorageShare -ResourceGroupName $rgname -StorageAccountName $stoname
9099
Assert-AreEqual 1 $shares.Count

src/Storage/Storage.Management.Test/SessionRecords/Microsoft.Azure.Commands.Management.Storage.Test.ScenarioTests.StorageFileTests/TestStorageFileShare.json

Lines changed: 621 additions & 381 deletions
Large diffs are not rendered by default.

src/Storage/Storage.Management/ChangeLog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
- Additional information about change #1
1919
-->
2020
## Upcoming Release
21+
* Supprted filter when listing file shares with management plane cmdlet
22+
- `Get-AzRmStorageShare`
2123

2224
## Version 6.0.1
2325
* Updated error message when storage context is missing in a cmdlet input

src/Storage/Storage.Management/File/GetAzureStorageShare.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,14 @@ public class GetAzureStorageShareCommand : StorageFileBaseCmdlet
143143
ParameterSetName = AccountObjectParameterSet)]
144144
public SwitchParameter IncludeSnapshot { get; set; }
145145

146+
[Parameter(Mandatory = false,
147+
HelpMessage = "The filter of share name. When specified, only share names starting with the filter will be listed. The filter must be in format: startswith(name, <prefix>)",
148+
ParameterSetName = AccountNameParameterSet)]
149+
[Parameter(Mandatory = false,
150+
HelpMessage = "The filter of share name. When specified, only share names starting with the filter will be listed. The filter must be in format: startswith(name, <prefix>)",
151+
ParameterSetName = AccountObjectParameterSet)]
152+
public string Filter { get; set; }
153+
146154
public override void ExecuteCmdlet()
147155
{
148156
base.ExecuteCmdlet();
@@ -198,7 +206,8 @@ public override void ExecuteCmdlet()
198206
IPage<FileShareItem> shares = this.StorageClient.FileShares.List(
199207
this.ResourceGroupName,
200208
this.StorageAccountName,
201-
expand: listSharesExpand);
209+
expand: listSharesExpand,
210+
filter: this.Filter);
202211
WriteShareList(shares);
203212
while (shares.NextPageLink != null)
204213
{

src/Storage/Storage.Management/help/Get-AzRmStorageShare.md

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Get-AzRmStorageShare [-ResourceGroupName] <String> [-StorageAccountName] <String
2121
### AccountName
2222
```
2323
Get-AzRmStorageShare [-ResourceGroupName] <String> [-StorageAccountName] <String> [-IncludeDeleted]
24-
[-IncludeSnapshot] [-DefaultProfile <IAzureContextContainer>] [<CommonParameters>]
24+
[-IncludeSnapshot] [-Filter <String>] [-DefaultProfile <IAzureContextContainer>] [<CommonParameters>]
2525
```
2626

2727
### AccountObjectSingle
@@ -32,7 +32,7 @@ Get-AzRmStorageShare -StorageAccount <PSStorageAccount> -Name <String> [-Snapsho
3232

3333
### AccountObject
3434
```
35-
Get-AzRmStorageShare -StorageAccount <PSStorageAccount> [-IncludeDeleted] [-IncludeSnapshot]
35+
Get-AzRmStorageShare -StorageAccount <PSStorageAccount> [-IncludeDeleted] [-IncludeSnapshot] [-Filter <String>]
3636
[-DefaultProfile <IAzureContextContainer>] [<CommonParameters>]
3737
```
3838

@@ -140,6 +140,21 @@ testshare1 5120 TransactionOptimized
140140

141141
This command gets a single file share snapshot with share name and snapshot time.
142142

143+
### Example 7: List Storage file shares of a Storage account with a filter
144+
```powershell
145+
Get-AzRmStorageShare -ResourceGroupName "myresourcegroup" -StorageAccountName "mystorageaccount" -Filter "startswith(name, test)"
146+
```
147+
148+
```output
149+
ResourceGroupName: myresourcegroup, StorageAccountName: mystorageaccount
150+
151+
Name QuotaGiB EnabledProtocols AccessTier Deleted Version ShareUsageBytes snapshotTime
152+
---- -------- ---------------- ---------- ------- ------- --------------- ------------
153+
testshare1 5120 SMB TransactionOptimized
154+
testshare2 5120 SMB TransactionOptimized
155+
```
156+
This command lists all Storage file shares with names that begin with "test".
157+
143158
## PARAMETERS
144159

145160
### -DefaultProfile
@@ -157,6 +172,21 @@ Accept pipeline input: False
157172
Accept wildcard characters: False
158173
```
159174
175+
### -Filter
176+
The filter of share name. When specified, only share names starting with the filter will be listed. The filter must be in format: startswith(name, <prefix>)
177+
178+
```yaml
179+
Type: System.String
180+
Parameter Sets: AccountName, AccountObject
181+
Aliases:
182+
183+
Required: False
184+
Position: Named
185+
Default value: None
186+
Accept pipeline input: False
187+
Accept wildcard characters: False
188+
```
189+
160190
### -GetShareUsage
161191
Specify this parameter to get the Share Usage in Bytes.
162192
@@ -309,10 +339,10 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable
309339
310340
## INPUTS
311341
312-
### System.String
313-
314342
### Microsoft.Azure.Commands.Management.Storage.Models.PSStorageAccount
315343
344+
### System.String
345+
316346
## OUTPUTS
317347
318348
### Microsoft.Azure.Commands.Management.Storage.Models.PSShare

0 commit comments

Comments
 (0)