@@ -989,4 +989,104 @@ function CreateAndGetVirtualNetwork ($resourceGroupName, $vnetName, $location =
989
989
$getVnet = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $resourceGroupName
990
990
991
991
return $getVnet
992
+ }
993
+
994
+ <#
995
+ . SYNOPSIS
996
+ Tests DataLakeStore deleted items operations (Enumerate, Restore).
997
+ #>
998
+ function Test-EnumerateAndRestoreDataLakeStoreDeletedItem
999
+ {
1000
+ param
1001
+ (
1002
+ $fileToCopy ,
1003
+ $location
1004
+ )
1005
+
1006
+ if ([string ]::IsNullOrEmpty($location ))
1007
+ {
1008
+ $location = Get-Location - providerNamespace " Microsoft.CognitiveServices" - resourceType " accounts" - preferredLocation " West US" ;
1009
+ }
1010
+
1011
+ try
1012
+ {
1013
+ # Creating Account
1014
+ $resourceGroupName = Get-ResourceGroupName
1015
+ $accountName = Get-DataLakeStoreAccountName
1016
+ New-AzureRmResourceGroup - Name $resourceGroupName - Location $location
1017
+ $accountCreated = New-AzureRMDataLakeStoreAccount - ResourceGroupName $resourceGroupName - Name $accountName - Location $location
1018
+
1019
+ Assert-AreEqual $accountName $accountCreated.Name
1020
+ Assert-AreEqual $location $accountCreated.Location
1021
+ Assert-AreEqual " Microsoft.DataLakeStore/accounts" $accountCreated.Type
1022
+ Assert-True {$accountCreated.Id -like " *$resourceGroupName *" }
1023
+
1024
+ # In loop to check if account exists
1025
+ for ($i = 0 ; $i -le 60 ; $i ++ )
1026
+ {
1027
+ [array ]$accountGet = Get-AzureRMDataLakeStoreAccount - ResourceGroupName $resourceGroupName - Name $accountName
1028
+ if ($accountGet [0 ].ProvisioningState -like " Succeeded" )
1029
+ {
1030
+ Assert-AreEqual $accountName $accountGet [0 ].Name
1031
+ Assert-AreEqual $location $accountGet [0 ].Location
1032
+ Assert-AreEqual " Microsoft.DataLakeStore/accounts" $accountGet [0 ].Type
1033
+ Assert-True {$accountGet [0 ].Id -like " *$resourceGroupName *" }
1034
+ break
1035
+ }
1036
+
1037
+ Write-Host " account not yet provisioned. current state: $ ( $accountGet [0 ].ProvisioningState) "
1038
+ [Microsoft.WindowsAzure.Commands.Utilities.Common.TestMockSupport ]::Delay(30000 )
1039
+ Assert-False {$i -eq 60 } " Data Lake Store account is not in succeeded state even after 30 min."
1040
+ }
1041
+
1042
+ # define all the files and folders
1043
+ $folderToCreate1 = " /adlfolder1"
1044
+ $folderToCreate2 = " /adlfolder2"
1045
+ $fileToCreate1 = " /adlfolder1/adlfile1"
1046
+ $fileToCreate2 = " /adlfolder2/adlfile2"
1047
+
1048
+ # Create and get Empty folder
1049
+ $result = New-AzureRMDataLakeStoreItem - Account $accountName - path $folderToCreate1 - Folder
1050
+ Assert-NotNull $result " No value was returned on folder creation"
1051
+
1052
+ $result = New-AzureRMDataLakeStoreItem - Account $accountName - path $folderToCreate2 - Folder
1053
+ Assert-NotNull $result " No value was returned on folder creation"
1054
+
1055
+ # Create and get Empty File
1056
+ $result = New-AzureRMDataLakeStoreItem - Account $accountName - path $fileToCreate1
1057
+ Assert-NotNull $result " No value was returned on empty file creation"
1058
+ $result = New-AzureRMDataLakeStoreItem - Account $accountName - path $fileToCreate2
1059
+ Assert-NotNull $result " No value was returned on empty file creation"
1060
+
1061
+ # delete a file
1062
+ Assert-True {Remove-AdlStoreItem - Account $accountName - paths $fileToCreate1 - force - passthru } " Remove File Failed"
1063
+ Assert-Throws {Get-AdlStoreItem - Account $accountName - path $fileToCreate1 }
1064
+ Assert-True {Remove-AdlStoreItem - Account $accountName - paths $fileToCreate2 - force - passthru } " Remove File Failed"
1065
+ Assert-Throws {Get-AdlStoreItem - Account $accountName - path $fileToCreate2 }
1066
+
1067
+ # search delete folder
1068
+ $out = Get-AzDataLakeStoreDeletedItem - Account $accountName - filter " adlfolder1" - Count 1000
1069
+ foreach ($item in $out )
1070
+ {
1071
+ Assert-True { Restore-AzDataLakeStoreDeletedItem - Account $accountName - Path $item.TrashDirPath - Destination $item.OriginalPath - Type " file" - Force - Passthru}
1072
+ }
1073
+
1074
+ $out = Get-AzDataLakeStoreDeletedItem - Account $accountName - filter " adlfolder2" - Count 1000
1075
+ foreach ($item in $out )
1076
+ {
1077
+ Assert-True { Restore-AzDataLakeStoreDeletedItem - Account $accountName $item - Force - Passthru}
1078
+ }
1079
+
1080
+ # Delete Data Lake account
1081
+ Assert-True {Remove-AzureRMDataLakeStoreAccount - ResourceGroupName $resourceGroupName - Name $accountName - Force - PassThru} " Remove Account failed."
1082
+
1083
+ # Verify that it is gone by trying to get it again
1084
+ Assert-Throws {Get-AzureRMDataLakeStoreAccount - ResourceGroupName $resourceGroupName - Name $accountName }
1085
+ }
1086
+ finally
1087
+ {
1088
+ # cleanup the resource group that was used in case it still exists. This is a best effort task, we ignore failures here.
1089
+ Invoke-HandledCmdlet - Command {Remove-AzureRMDataLakeStoreAccount - ResourceGroupName $resourceGroupName - Name $accountName - Force - ErrorAction SilentlyContinue} - IgnoreFailures
1090
+ Invoke-HandledCmdlet - Command {Remove-AzureRmResourceGroup - Name $resourceGroupName - Force - ErrorAction SilentlyContinue} - IgnoreFailures
1091
+ }
992
1092
}
0 commit comments