Skip to content

Commit a55d051

Browse files
committed
AFS Backup-Item
1 parent e4d0057 commit a55d051

File tree

5 files changed

+59
-5
lines changed

5 files changed

+59
-5
lines changed

src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Backup.Providers/Commands.RecoveryServices.Backup.Providers.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
<Compile Include="AzureWorkloadProviderHelper.cs" />
5555
<Compile Include="IPsBackupProvider.cs" />
5656
<Compile Include="Properties\AssemblyInfo.cs" />
57-
<Compile Include="Providers\AzureFilesPsBackupBackupProvider.cs" />
57+
<Compile Include="Providers\AzureFilesPsBackupProvider.cs" />
5858
<Compile Include="Providers\AzureSqlPsBackupProvider.cs" />
5959
<Compile Include="Providers\DpmPsBackupProvider.cs" />
6060
<Compile Include="Providers\MabPsBackupProvider.cs" />
Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,18 @@ public RestAzureNS.AzureOperationResponse TriggerBackup()
8989

9090
public RestAzureNS.AzureOperationResponse TriggerRestore()
9191
{
92-
throw new NotImplementedException();
92+
string vaultName = (string)ProviderData[VaultParams.VaultName];
93+
string resourceGroupName = (string)ProviderData[VaultParams.ResourceGroupName];
94+
ItemBase item = (ItemBase)ProviderData[ItemParams.Item];
95+
DateTime? expiryDateTime = (DateTime?)ProviderData[ItemParams.ExpiryDateTimeUTC];
96+
AzureFileShareItem azureFileShareItem = item as AzureFileShareItem;
97+
98+
return ServiceClientAdapter.TriggerBackup(
99+
IdUtils.GetValueByName(azureFileShareItem.Id, IdUtils.IdNames.ProtectionContainerName),
100+
IdUtils.GetValueByName(azureFileShareItem.Id, IdUtils.IdNames.ProtectedItemName),
101+
expiryDateTime,
102+
vaultName: vaultName,
103+
resourceGroupName: resourceGroupName);
93104
}
94105

95106
public ProtectedItemResource GetProtectedItem()

src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Backup.ServiceClientAdapter/BMSAPIs/ItemAPIs.cs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,9 +136,18 @@ public RestAzureNS.AzureOperationResponse TriggerBackup(
136136
string resourceGroupName = null)
137137
{
138138
BackupRequestResource triggerBackupRequest = new BackupRequestResource();
139-
IaasVMBackupRequest iaasVmBackupRequest = new IaasVMBackupRequest();
140-
iaasVmBackupRequest.RecoveryPointExpiryTimeInUTC = expiryDateTimeUtc;
141-
triggerBackupRequest.Properties = iaasVmBackupRequest;
139+
if (string.Compare(containerName.Split(';')[0], "IaasVMContainer") == 0)
140+
{
141+
IaasVMBackupRequest iaasVmBackupRequest = new IaasVMBackupRequest();
142+
iaasVmBackupRequest.RecoveryPointExpiryTimeInUTC = expiryDateTimeUtc;
143+
triggerBackupRequest.Properties = iaasVmBackupRequest;
144+
}
145+
else if (string.Compare(containerName.Split(';')[0], "StorageContainer") == 0)
146+
{
147+
AzureFileShareBackupRequest azureFileShareBackupRequest = new AzureFileShareBackupRequest();
148+
azureFileShareBackupRequest.RecoveryPointExpiryTimeInUTC = expiryDateTimeUtc;
149+
triggerBackupRequest.Properties = azureFileShareBackupRequest;
150+
}
142151

143152
return BmsAdapter.Client.Backups.TriggerWithHttpMessagesAsync(
144153
vaultName ?? BmsAdapter.GetResourceName(),

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,14 @@ public void TestAzureFileItem()
2929
TestController.NewInstance.RunPsTest(
3030
_logger, PsBackupProviderTypes.AzureFiles, "Test-AzureFileItem");
3131
}
32+
33+
[Fact]
34+
[Trait(Category.AcceptanceType, Category.CheckIn)]
35+
[Trait(TestConstants.Workload, TestConstants.AzureVM)]
36+
public void TestAzureFileShareBackup()
37+
{
38+
TestController.NewInstance.RunPsTest(
39+
_logger, PsBackupProviderTypes.IaasVm, "Test-AzureFileShareBackup");
40+
}
3241
}
3342
}

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

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,29 @@ function Test-AzureFileItem
2727
{
2828
# Cleanup
2929
}
30+
}
31+
32+
function Test-AzureFileShareBackup
33+
{
34+
$location = "westus"
35+
$resourceGroupName = "sisi-RSV"
36+
37+
try
38+
{
39+
# Setup
40+
$vm = Create-VM $resourceGroupName $location
41+
$vault = Create-RecoveryServicesVault $resourceGroupName $location
42+
$item = Enable-Protection $vault $vm
43+
44+
# Trigger backup and wait for completion
45+
$backupJob = Backup-AzureRmRecoveryServicesBackupItem `
46+
-VaultId $vault.ID `
47+
-Item $item | Wait-AzureRmRecoveryServicesBackupJob -VaultId $vault.ID
48+
49+
Assert-True { $backupJob.Status -eq "Completed" }
50+
}
51+
finally
52+
{
53+
# Cleanup
54+
}
3055
}

0 commit comments

Comments
 (0)