Skip to content

Commit 684ce13

Browse files
committed
Added Filters and help message
1 parent b782f4f commit 684ce13

File tree

4 files changed

+49
-50
lines changed

4 files changed

+49
-50
lines changed

src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,6 @@ internal static class AzureBackupCmdletHelpMessage
2525
public const string ContainerId = "The container ID.";
2626
public const string ContainerRegistrationStatus = "The container registration status.";
2727
public const string ContainerType = "The container type.";
28+
public const string ProtectionStatus = "Protection Status of item.";
2829
}
2930
}

src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/DataSource/GetAzureBackupItem.cs

Lines changed: 39 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
using System.Xml;
1919
using System.Linq;
2020
using Microsoft.Azure.Management.BackupServices.Models;
21+
using System.Runtime.Serialization;
2122

2223
namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets
2324
{
@@ -27,9 +28,9 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets
2728
[Cmdlet(VerbsCommon.Get, "AzureBackupItem"), OutputType(typeof(AzureBackupItem), typeof(List<AzureBackupItem>))]
2829
public class GetAzureBackupItem : AzureBackupContainerCmdletBase
2930
{
30-
[Parameter(Position = 2, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.PolicyName)]
31+
[Parameter(Position = 2, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ProtectionStatus)]
3132
[ValidateNotNullOrEmpty]
32-
public string Id { get; set; }
33+
public protectionStatus ProtectionStatus { get; set; }
3334

3435
public override void ExecuteCmdlet()
3536
{
@@ -39,23 +40,38 @@ public override void ExecuteCmdlet()
3940
{
4041
WriteVerbose("Making client call");
4142

42-
var azureBackupDatasourceListResponse = AzureBackupClient.DataSource.ListAsync(GetCustomRequestHeaders(), CmdletCancellationToken).Result;
43-
var azureBackupPOListResponse = AzureBackupClient.ProtectableObject. ListAsync(GetCustomRequestHeaders(), CmdletCancellationToken).Result;
43+
DataSourceQueryParameter dsQueryParameter = new DataSourceQueryParameter()
44+
{
45+
ContainerName = AzureBackupContainer.ContainerName
46+
};
47+
48+
POQueryParameter pOQueryParameter = new POQueryParameter()
49+
{
50+
Status = this.ProtectionStatus.ToString()
51+
};
52+
53+
var azureBackupDatasourceListResponse = AzureBackupClient.DataSource.ListAsync(dsQueryParameter,GetCustomRequestHeaders(), CmdletCancellationToken).Result;
54+
var azureBackupPOListResponse = AzureBackupClient.ProtectableObject. ListAsync(pOQueryParameter, GetCustomRequestHeaders(), CmdletCancellationToken).Result;
4455

4556
WriteVerbose("Received policy response");
4657
WriteVerbose("Received policy response2");
47-
IEnumerable<DataSourceInfo> azureBackupDatasourceObjects = null;
48-
IEnumerable<ProtectableObjectInfo> azureBackupPOObjects = null;
58+
List<DataSourceInfo> azureBackupDatasourceObjects = null;
59+
List<ProtectableObjectInfo> azureBackupPOObjects = null;
4960

50-
if (Id != null)
51-
{
52-
azureBackupDatasourceObjects = azureBackupDatasourceListResponse.DataSources.Objects.Where(x => x.InstanceId.Equals(Id, System.StringComparison.InvariantCultureIgnoreCase));
53-
azureBackupPOObjects = azureBackupPOListResponse.ProtectableObject.Objects.Where(x => x.InstanceId.Equals(Id, System.StringComparison.InvariantCultureIgnoreCase));
54-
}
55-
else
61+
azureBackupDatasourceObjects = azureBackupDatasourceListResponse.DataSources.Objects.ToList();
62+
azureBackupPOObjects = azureBackupPOListResponse.ProtectableObject.Objects.Where(x => x.ContainerName.Equals(AzureBackupContainer.ContainerName, System.StringComparison.InvariantCultureIgnoreCase)).ToList();
63+
64+
//If user has stopped protection for some datasoure then we will have duplicate items(po and ds).
65+
//So in this case removing poitem.
66+
foreach (var DSItem in azureBackupDatasourceObjects)
5667
{
57-
azureBackupDatasourceObjects = azureBackupDatasourceListResponse.DataSources.Objects;
58-
azureBackupPOObjects = azureBackupPOListResponse.ProtectableObject.Objects;
68+
foreach(var POItem in azureBackupPOObjects)
69+
{
70+
if(DSItem.ProtectableObjectName == POItem.Name)
71+
{
72+
azureBackupPOObjects.Remove(POItem);
73+
}
74+
}
5975
}
6076

6177
WriteVerbose("Converting response");
@@ -68,7 +84,7 @@ public void WriteAzureBackupProtectionPolicy(DataSourceInfo sourceItem, AzureBac
6884
this.WriteObject(new AzureBackupItem(sourceItem, azureBackupItem));
6985
}
7086

71-
public void WriteAzureBackupProtectionPolicy(IEnumerable<DataSourceInfo> sourceDataSourceList,IEnumerable<ProtectableObjectInfo> sourcePOList, AzureBackupContainer azureBackupContainer)
87+
public void WriteAzureBackupProtectionPolicy(List<DataSourceInfo> sourceDataSourceList, List<ProtectableObjectInfo> sourcePOList, AzureBackupContainer azureBackupContainer)
7288
{
7389
List<AzureBackupItem> targetList = new List<AzureBackupItem>();
7490

@@ -85,5 +101,13 @@ public void WriteAzureBackupProtectionPolicy(IEnumerable<DataSourceInfo> sourceD
85101
this.WriteObject(targetList, true);
86102
}
87103

104+
public enum protectionStatus
105+
{
106+
[EnumMember]
107+
NotProtected = 0,
108+
109+
[EnumMember]
110+
Protected,
111+
}
88112
}
89113
}

src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public class AzureBackupItemContextObject : AzureBackupContainerContextObject
8686
/// <summary>
8787
/// DataSourceId of Azure Backup Item
8888
/// </summary>
89-
public string DataSourceType { get; set; }
89+
public string Type { get; set; }
9090

9191
public AzureBackupItemContextObject()
9292
: base()
@@ -97,20 +97,20 @@ public AzureBackupItemContextObject(AzureBackupItemContextObject azureBackupItem
9797
: base(azureBackupItemContextObject)
9898
{
9999
DataSourceId = azureBackupItemContextObject.DataSourceId;
100-
DataSourceType = azureBackupItemContextObject.DataSourceType;
100+
Type = azureBackupItemContextObject.Type;
101101
}
102102

103103
public AzureBackupItemContextObject(DataSourceInfo item, AzureBackupContainer azureBackupContainer)
104104
: base(azureBackupContainer)
105105
{
106106
DataSourceId = item.InstanceId;
107-
DataSourceType = item.Type;
107+
Type = item.Type;
108108
}
109109

110110
public AzureBackupItemContextObject(ProtectableObjectInfo item, AzureBackupContainer azureBackupContainer)
111111
: base(azureBackupContainer)
112112
{
113-
DataSourceType = item.Type;
113+
Type = item.Type;
114114
}
115115
}
116116
}

src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs

Lines changed: 5 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class AzureBackupItem : AzureBackupItemContextObject
2929
/// <summary>
3030
/// Status for the Azure Backup Item
3131
/// </summary>
32-
public string Status { get; set; }
32+
public string DataSourceStatus { get; set; }
3333

3434
/// <summary>
3535
/// Protection Status for the Azure Backup Item
@@ -39,7 +39,7 @@ public class AzureBackupItem : AzureBackupItemContextObject
3939
/// <summary>
4040
/// Protectable Object Name for the Azure Backup Item
4141
/// </summary>
42-
public string ProtectableObjectName { get; set; }
42+
public string Name { get; set; }
4343

4444
/// <summary>
4545
/// Protection Policy Name for the Azure Backup Item
@@ -51,11 +51,6 @@ public class AzureBackupItem : AzureBackupItemContextObject
5151
/// </summary>
5252
public string ProtectionPolicyId { get; set; }
5353

54-
/// <summary>
55-
/// Policy Inconsistent for the Azure Backup Item
56-
/// </summary>
57-
public bool PolicyInconsistent { get; set; }
58-
5954
/// <summary>
6055
/// Recovery Points Count for the Azure Backup Item
6156
/// </summary>
@@ -64,22 +59,6 @@ public class AzureBackupItem : AzureBackupItemContextObject
6459
/// <summary>
6560
/// Last Recovery Point for the Azure Backup Item
6661
/// </summary>
67-
public DateTime? LastRecoveryPoint { get; set; }
68-
69-
/// <summary>
70-
/// Last Backup Time for the Azure Backup Item
71-
/// </summary>
72-
public DateTime? LastBackupTime { get; set; }
73-
74-
/// <summary>
75-
/// Last Backup Status for the Azure Backup Item
76-
/// </summary>
77-
public string LastBackupStatus { get; set; }
78-
79-
/// <summary>
80-
/// Last Backup Job Id for the Azure Backup Item
81-
/// </summary>
82-
public string LastBackupJobId { get; set; }
8362

8463
public AzureBackupItem()
8564
: base()
@@ -89,24 +68,19 @@ public AzureBackupItem()
8968
public AzureBackupItem(DataSourceInfo datasource, AzureBackupContainer azureBackupContainer)
9069
: base(datasource, azureBackupContainer)
9170
{
92-
Status = datasource.Status;
71+
DataSourceStatus = datasource.Status;
9372
ProtectionStatus = datasource.ProtectionStatus;
94-
ProtectableObjectName = datasource.ProtectableObjectName;
73+
Name = datasource.Name;
9574
ProtectionPolicyName = datasource.ProtectionPolicyName;
9675
ProtectionPolicyId = datasource.ProtectionPolicyId;
97-
PolicyInconsistent = datasource.PolicyInconsistent;
9876
RecoveryPointsCount = datasource.RecoveryPointsCount;
99-
LastRecoveryPoint = datasource.LastRecoveryPoint;
100-
LastBackupTime = datasource.LastBackupTime;
101-
LastBackupStatus = datasource.LastBackupStatus;
102-
LastBackupJobId = datasource.LastBackupJobId;
10377
}
10478

10579
public AzureBackupItem(ProtectableObjectInfo pPOItem, AzureBackupContainer azureBackupContainer)
10680
: base(pPOItem, azureBackupContainer)
10781
{
10882
ProtectionStatus = pPOItem.ProtectionStatus;
109-
ProtectableObjectName = pPOItem.Name;
83+
Name = pPOItem.Name;
11084
}
11185
}
11286
}

0 commit comments

Comments
 (0)