Skip to content

Commit ea2132d

Browse files
author
Samuel Anudeep
committed
Taking review comments. Added ResourceBackupStatus object as the response of the Get-AzureRmRecoveryServicesBackupStatus cmdlet.
1 parent 13ffcff commit ea2132d

File tree

9 files changed

+72
-17
lines changed

9 files changed

+72
-17
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
<Compile Include="AzureVmModels\AzureVmRecoveryPoint.cs" />
5858
<Compile Include="BaseObjects.cs" />
5959
<Compile Include="CmdletParamEnums.cs" />
60+
<Compile Include="CommonModels\ResourceBackupStatus.cs" />
6061
<Compile Include="CommonModels\Utils.cs" />
6162
<Compile Include="CommonModels\Enums.cs" />
6263
<Compile Include="CommonModels\PolicyRetentionObjects.cs" />
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
using System;
2+
3+
namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.Models
4+
{
5+
/// <summary>
6+
/// Backup status of a resource.
7+
/// </summary>
8+
public class ResourceBackupStatus
9+
{
10+
/// <summary>
11+
/// The Resource Name.
12+
/// </summary>
13+
public string Name { get; set; }
14+
15+
/// <summary>
16+
/// The Resource Group Name.
17+
/// </summary>
18+
public string ResourceGroupName { get; set; }
19+
20+
/// <summary>
21+
/// If the resource is protected by some vault in the subscription, this contains the resource ID of that vault.
22+
/// </summary>
23+
public string VaultId { get; set; }
24+
25+
/// <summary>
26+
/// Specifies whether the resource is protected by some vault in the subscription.
27+
/// </summary>
28+
public bool BackedUp { get; set; }
29+
30+
public ResourceBackupStatus(string name, string resourceGroupName, string vaultId, bool backedUp)
31+
{
32+
if (backedUp && string.IsNullOrEmpty(vaultId) ||
33+
!backedUp && !string.IsNullOrEmpty(vaultId))
34+
{
35+
throw new ArgumentException($"Inconsistent parameters specified. backedUp: {backedUp} and vaultId: {vaultId}.");
36+
}
37+
38+
Name = name;
39+
ResourceGroupName = resourceGroupName;
40+
VaultId = vaultId;
41+
BackedUp = backedUp;
42+
}
43+
}
44+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,6 @@ public interface IPsBackupProvider
6262

6363
void RevokeItemLevelRecoveryAccess();
6464

65-
string CheckBackupStatus();
65+
ResourceBackupStatus CheckBackupStatus();
6666
}
6767
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,7 @@ public List<ItemBase> ListProtectedItems()
479479
return itemModels;
480480
}
481481

482-
public string CheckBackupStatus()
482+
public ResourceBackupStatus CheckBackupStatus()
483483
{
484484
throw new NotImplementedException();
485485
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ public List<ItemBase> ListProtectedItems()
154154
throw new NotImplementedException();
155155
}
156156

157-
public string CheckBackupStatus()
157+
public ResourceBackupStatus CheckBackupStatus()
158158
{
159159
throw new NotImplementedException();
160160
}

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

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -924,7 +924,7 @@ public RetentionPolicyBase GetDefaultRetentionPolicyObject()
924924

925925
}
926926

927-
public string CheckBackupStatus()
927+
public ResourceBackupStatus CheckBackupStatus()
928928
{
929929
string azureVmName = (string)ProviderData[ProtectionCheckParams.Name];
930930
string azureVmResourceGroupName =
@@ -936,10 +936,10 @@ public string CheckBackupStatus()
936936
== ServiceClientModel.BackupManagementType.AzureIaasVM &&
937937
q.ItemType == DataSourceType.VM);
938938

939-
var vaults = ServiceClientAdapter.ListVaults();
940-
foreach (var vault in vaults)
939+
var vaultIds = ServiceClientAdapter.ListVaults();
940+
foreach (var vaultId in vaultIds)
941941
{
942-
ResourceIdentifier vaultIdentifier = new ResourceIdentifier(vault);
942+
ResourceIdentifier vaultIdentifier = new ResourceIdentifier(vaultId);
943943

944944
var items = ServiceClientAdapter.ListProtectedItem(
945945
queryParams,
@@ -958,11 +958,19 @@ public string CheckBackupStatus()
958958
itemVmRgName.ToLower() == azureVmResourceGroupName.ToLower();
959959
}))
960960
{
961-
return vault;
961+
return new ResourceBackupStatus(
962+
azureVmName,
963+
azureVmResourceGroupName,
964+
vaultId,
965+
true);
962966
}
963967
}
964968

965-
return null;
969+
return new ResourceBackupStatus(
970+
azureVmName,
971+
azureVmResourceGroupName,
972+
null,
973+
false);
966974
}
967975

968976
#region private

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ public List<ItemBase> ListProtectedItems()
157157
throw new NotImplementedException();
158158
}
159159

160-
public string CheckBackupStatus()
160+
public ResourceBackupStatus CheckBackupStatus()
161161
{
162162
throw new NotImplementedException();
163163
}

src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Backup.Test/ScenarioTests/IaasVm/ProtectionCheckTests.ps1

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,23 @@ function Test-AzureVMProtectionCheck
2727
-ResourceGroupName $vm.ResourceGroupName `
2828
-Type AzureVM
2929

30-
Assert-Null $status
30+
Assert-NotNull $status
31+
Assert-False $status.BackedUp
3132

3233
$vault = Create-RecoveryServicesVault $resourceGroupName $location
3334
Enable-Protection $vault $vm
3435

35-
$vaultId = Get-AzureRmRecoveryServicesBackupStatus -ResourceId $vm.Id
36-
Assert-NotNull $vaultId
37-
Assert-True { $vault.ID -eq $vaultId }
36+
$status = Get-AzureRmRecoveryServicesBackupStatus -ResourceId $vm.Id
37+
Assert-NotNull $status
38+
Assert-True $status.BackedUp
39+
Assert-True { $status.VaultId -eq $vaultId }
3840

3941
Delete-Vault $vault
4042

4143
$status = Get-AzureRmRecoveryServicesBackupStatus -ResourceId $vm.Id
4244

43-
Assert-Null $status
45+
Assert-NotNull $status
46+
Assert-False $status.BackedUp
4447
}
4548
finally
4649
{

src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Backup/Cmdlets/Backup/GetAzureRmRecoveryServicesBackupStatus.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
using System.Management.Automation;
1818
using Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.Models;
1919
using Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.ProviderModel;
20-
using Microsoft.Azure.Commands.RecoveryServices.Backup.Helpers;
2120
using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters;
2221
using Microsoft.Azure.Management.Internal.Resources.Utilities.Models;
2322

@@ -28,7 +27,7 @@ namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets
2827
/// </summary>
2928
[Cmdlet(VerbsCommon.Get, "AzureRmRecoveryServicesBackupStatus",
3029
DefaultParameterSetName = NameParamSet)]
31-
[OutputType(typeof(string))]
30+
[OutputType(typeof(ResourceBackupStatus))]
3231
public class GetAzureRmRecoveryServicesBackupStatus : RecoveryServicesBackupCmdletBase
3332
{
3433
const string NameParamSet = "Name";

0 commit comments

Comments
 (0)