Skip to content

Commit eef7401

Browse files
committed
making storage account and rg name optional for afs restore
1 parent 667dea5 commit eef7401

File tree

6 files changed

+47662
-20082
lines changed

6 files changed

+47662
-20082
lines changed

src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Backup.Providers/Providers/AzureFilesPsBackupProvider.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,8 @@ public RestAzureNS.AzureOperationResponse TriggerRestore()
153153
string vaultLocation = (string)ProviderData[VaultParams.VaultLocation];
154154
CmdletModel.AzureFileShareRecoveryPoint recoveryPoint = ProviderData[RestoreBackupItemParams.RecoveryPoint]
155155
as CmdletModel.AzureFileShareRecoveryPoint;
156-
string storageAccountName = ProviderData[RestoreBackupItemParams.StorageAccountName].ToString();
156+
string storageAccountName = ProviderData.ContainsKey(RestoreBackupItemParams.StorageAccountName) ?
157+
ProviderData[RestoreBackupItemParams.StorageAccountName].ToString() : null;
157158
string storageAccountResourceGroupName = ProviderData.ContainsKey(RestoreBackupItemParams.StorageAccountResourceGroupName) ?
158159
ProviderData[RestoreBackupItemParams.StorageAccountResourceGroupName].ToString() : null;
159160
string copyOptions = (string)ProviderData[RestoreFSBackupItemParams.ResolveConflict];
@@ -180,7 +181,7 @@ public RestAzureNS.AzureOperationResponse TriggerRestore()
180181
targetFolder = "/";
181182
}
182183

183-
GenericResource storageAccountResource = ServiceClientAdapter.GetStorageAccountResource(storageAccountName);
184+
GenericResource storageAccountResource = ServiceClientAdapter.GetStorageAccountResource(recoveryPoint.ContainerName.Split(';')[2]);
184185
GenericResource targetStorageAccountResource = null;
185186
string targetStorageAccountLocation = null;
186187
if (targetStorageAccountName != null)

src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Backup.Test/ScenarioTests/AzureFiles/ItemTests.ps1

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,60 @@ function Test-AzureFSFullRestore
380380
Wait-AzureRmRecoveryServicesBackupJob -VaultId $vault.ID
381381

382382
Assert-True { $restoreJob4.Status -eq "Completed" }
383+
384+
# Test without storage account dependancy
385+
# Item level restore at alternate location
386+
$restoreJob5 = Restore-AzureRmRecoveryServicesBackupItem `
387+
-VaultId $vault.ID `
388+
-VaultLocation $vault.Location `
389+
-RecoveryPoint $recoveryPoint[0] `
390+
-ResolveConflict Overwrite `
391+
-SourceFilePath $folderPath `
392+
-SourceFileType Directory `
393+
-TargetStorageAccountName $targetSaName `
394+
-TargetFileShareName $targetFileShareName `
395+
-TargetFolder $targetFolder | `
396+
Wait-AzureRmRecoveryServicesBackupJob -VaultId $vault.ID
397+
398+
Assert-True { $restoreJob5.Status -eq "Completed" }
399+
400+
# Test without storage account dependancy
401+
# Full share restore at alternate location
402+
$restoreJob6 = Restore-AzureRmRecoveryServicesBackupItem `
403+
-VaultId $vault.ID `
404+
-VaultLocation $vault.Location `
405+
-RecoveryPoint $recoveryPoint[0] `
406+
-ResolveConflict Overwrite `
407+
-TargetStorageAccountName $targetSaName `
408+
-TargetFileShareName $targetFileShareName `
409+
-TargetFolder $targetFolder | `
410+
Wait-AzureRmRecoveryServicesBackupJob -VaultId $vault.ID
411+
412+
Assert-True { $restoreJob6.Status -eq "Completed" }
413+
414+
# Test without storage account dependancy
415+
# Item level restore at original location
416+
$restoreJob7 = Restore-AzureRmRecoveryServicesBackupItem `
417+
-VaultId $vault.ID `
418+
-VaultLocation $vault.Location `
419+
-RecoveryPoint $recoveryPoint[0] `
420+
-ResolveConflict Overwrite `
421+
-SourceFilePath $filePath `
422+
-SourceFileType File | `
423+
Wait-AzureRmRecoveryServicesBackupJob -VaultId $vault.ID
424+
425+
Assert-True { $restoreJob7.Status -eq "Completed" }
426+
427+
# Test without storage account dependancy
428+
# Full share restore at original location
429+
$restoreJob8 = Restore-AzureRmRecoveryServicesBackupItem `
430+
-VaultId $vault.ID `
431+
-VaultLocation $vault.Location `
432+
-RecoveryPoint $recoveryPoint[0] `
433+
-ResolveConflict Overwrite | `
434+
Wait-AzureRmRecoveryServicesBackupJob -VaultId $vault.ID
435+
436+
Assert-True { $restoreJob8.Status -eq "Completed" }
383437
}
384438
finally
385439
{

0 commit comments

Comments
 (0)