Skip to content

Commit d3bdc9e

Browse files
authored
[Storage] support set/update/remove acl recursive on DatalakeGen2 item (#12651) (#13188)
* [Storage] DatalakeGen2 support set acl recursive * [Storage] revise set acl code * Add test case
1 parent 75952e8 commit d3bdc9e

18 files changed

+1635
-6
lines changed

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -843,6 +843,24 @@ function Test-DatalakeGen2
843843
$dir1 = Get-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $directoryPath1
844844
Assert-AreEqual $dir1.Path $directoryPath1
845845

846+
# Set ACL recusive
847+
$result = Set-AzDataLakeGen2AclRecursive -Context $storageContext -FileSystem $filesystemName -Acl $acl
848+
Assert-Null $result.FailedEntries
849+
Assert-AreEqual 0 $result.TotalFailureCount
850+
Assert-AreEqual 2 $result.TotalFilesSuccessfulCount
851+
Assert-AreEqual 3 $result.TotalDirectoriesSuccessfulCount
852+
$result = Update-AzDataLakeGen2AclRecursive -Context $storageContext -FileSystem $filesystemName -Path $directoryPath1 -Acl $acl -BatchSize 2 -MaxBatchCount 2
853+
Assert-Null $result.FailedEntries
854+
Assert-AreEqual 0 $result.TotalFailureCount
855+
Assert-AreEqual 1 $result.TotalFilesSuccessfulCount
856+
Assert-AreEqual 1 $result.TotalDirectoriesSuccessfulCount
857+
$acl2 = Set-AzDataLakeGen2ItemAclObject -AccessControlType user -Permission rwx -DefaultScope
858+
$result = Remove-AzDataLakeGen2AclRecursive -Context $storageContext -FileSystem $filesystemName -Acl $acl2
859+
Assert-Null $result.FailedEntries
860+
Assert-AreEqual 0 $result.TotalFailureCount
861+
Assert-AreEqual 2 $result.TotalFilesSuccessfulCount
862+
Assert-AreEqual 3 $result.TotalDirectoriesSuccessfulCount
863+
846864
# Remove Items
847865
Remove-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $filePath1 -Force
848866
Remove-AzDataLakeGen2Item -Context $storageContext -FileSystem $filesystemName -Path $directoryPath1 -Force

src/Storage/Storage.Management/Az.Storage.psd1

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,9 @@ CmdletsToExport = 'Get-AzStorageAccount', 'Get-AzStorageAccountKey',
175175
'Remove-AzStorageObjectReplicationPolicy',
176176
'Enable-AzStorageBlobRestorePolicy',
177177
'Disable-AzStorageBlobRestorePolicy',
178-
'New-AzStorageBlobRangeToRestore', 'Restore-AzStorageBlobRange'
178+
'New-AzStorageBlobRangeToRestore', 'Restore-AzStorageBlobRange',
179+
'Set-AzDataLakeGen2AclRecursive','Update-AzDataLakeGen2AclRecursive',
180+
'Remove-AzDataLakeGen2AclRecursive'
179181

180182
# Variables to export from this module
181183
# VariablesToExport = @()

src/Storage/Storage.Management/ChangeLog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121
* Supported create/update file share with access tier
2222
- `New-AzRmStorageShare`
2323
- `Update-AzRmStorageShare`
24+
* Supported set/update/remove Acl recursively on Datalake Gen2 item
25+
- `Set-AzDataLakeGen2AclRecursive`
26+
- `Update-AzDataLakeGen2AclRecursive`
27+
- `Remove-AzDataLakeGen2AclRecursive`
2428
* Supported Container access policy with new permission x,t
2529
- `New-AzStorageContainerStoredAccessPolicy`
2630
- `Set-AzStorageContainerStoredAccessPolicy`

src/Storage/Storage.Management/help/Az.Storage.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,9 @@ Generates an SAS token for an Azure Storage table.
242242
### [New-AzStorageTableStoredAccessPolicy](New-AzStorageTableStoredAccessPolicy.md)
243243
Creates a stored access policy for an Azure storage table.
244244

245+
### [Remove-AzDataLakeGen2AclRecursive](Remove-AzDataLakeGen2AclRecursive.md)
246+
Remove ACL recursively on the specified path.
247+
245248
### [Remove-AzDataLakeGen2Item](Remove-AzDataLakeGen2Item.md)
246249
Remove a file or directory.
247250

@@ -317,6 +320,9 @@ Revoke all User Delegation keys of a Storage account.
317320
### [Set-AzCurrentStorageAccount](Set-AzCurrentStorageAccount.md)
318321
Modifies the current Storage account of the specified subscription.
319322

323+
### [Set-AzDataLakeGen2AclRecursive](Set-AzDataLakeGen2AclRecursive.md)
324+
Set ACL recursively on the specified path.
325+
320326
### [Set-AzDataLakeGen2ItemAclObject](Set-AzDataLakeGen2ItemAclObject.md)
321327
Creates/Updates a DataLake gen2 item ACL object, which can be used in Update-AzDataLakeGen2Item cmdlet.
322328

@@ -380,6 +386,9 @@ Stops a copy operation.
380386
### [Stop-AzStorageFileCopy](Stop-AzStorageFileCopy.md)
381387
Stops a copy operation to the specified destination file.
382388

389+
### [Update-AzDataLakeGen2AclRecursive](Update-AzDataLakeGen2AclRecursive.md)
390+
Update ACL recursively on the specified path.
391+
383392
### [Update-AzDataLakeGen2Item](Update-AzDataLakeGen2Item.md)
384393
Update a file or directory on properties, metadata, permission, ACL, and owner.
385394

0 commit comments

Comments
 (0)