Skip to content

Commit d243ff6

Browse files
author
Samuel Anudeep
committed
Merge pull request #14 from MabOneSdk/anudeeb
Get-AzureBackupContainer
2 parents 10e77e3 + 00ccd3e commit d243ff6

File tree

7 files changed

+71
-93
lines changed

7 files changed

+71
-93
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@ internal static class AzureBackupCmdletHelpMessage
2121
public const string ResourceGroupName = "The ResourceGroup name.";
2222
public const string ResourceName = "The Resource name.";
2323
public const string TargetLocation = "The directory where the credentials file will be saved.";
24-
public const string ContainerName = "The container name.";
24+
public const string ContainerResourceName = "The container resource name aka friendly name.";
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 ContainerResourceGroupName = "The container resource group name.";
2829
}
2930
}

src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/BackUp/TriggerBackUp.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public override void ExecuteCmdlet()
4444

4545
MBS.OperationResponse triggerBackUpInfo =
4646
AzureBackupClient.BackUp.TriggerBackUpAsync(GetCustomRequestHeaders(),
47-
AzureBackupItem.ContainerName,
47+
AzureBackupItem.ContainerUniqueName,
4848
AzureBackupItem.DataSourceType,
4949
AzureBackupItem.DataSourceId,
5050
CmdletCancellationToken).Result;

src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs

Lines changed: 43 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,19 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets
3030
[Cmdlet(VerbsCommon.Get, "AzureBackupContainer"), OutputType(typeof(AzureBackupContainer), typeof(List<AzureBackupContainer>))]
3131
public class GetAzureBackupContainer : AzureBackupVaultCmdletBase
3232
{
33-
[Parameter(Position = 2, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerName)]
33+
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerResourceGroupName)]
3434
[ValidateNotNullOrEmpty]
35-
public string VirtualMachine { get; set; }
35+
public string ContainerResourceGroupName { get; set; }
3636

37-
[Parameter(Position = 2, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerRegistrationStatus)]
37+
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerResourceName)]
38+
[ValidateNotNullOrEmpty]
39+
public string ContainerResourceName { get; set; }
40+
41+
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerRegistrationStatus)]
3842
[ValidateNotNullOrEmpty]
3943
public AzureBackupContainerStatus Status { get; set; }
4044

41-
[Parameter(Position = 2, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerType)]
45+
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerType)]
4246
[ValidateNotNullOrEmpty]
4347
public AzureBackupContainerType Type { get; set; }
4448

@@ -49,74 +53,63 @@ public override void ExecuteCmdlet()
4953
ExecutionBlock(() =>
5054
{
5155
string queryFilterString = string.Empty;
52-
// TODO: Construct query filter string based on input filters.
53-
//queryFilterString = ConstructQueryFilterString();
54-
56+
queryFilterString = ConstructQueryFilterString();
5557
ListContainerResponse listContainerResponse = AzureBackupClient.Container.ListAsync(queryFilterString,
5658
GetCustomRequestHeaders(), CmdletCancellationToken).Result;
5759

58-
IEnumerable<AzureBackupContainer> containers = listContainerResponse.Objects.ToList().ConvertAll(containerInfo =>
60+
List<ContainerInfo> containerInfos = listContainerResponse.Objects.ToList();
61+
62+
// When resource group name is specified, remove all containers whose resource group name
63+
// doesn't match the given resource group name
64+
if (!string.IsNullOrEmpty(ContainerResourceGroupName))
5965
{
60-
return new AzureBackupContainer()
66+
containerInfos.RemoveAll(containerInfo =>
6167
{
62-
ContainerType = containerInfo.ContainerType,
63-
FriendlyName = containerInfo.FriendlyName,
64-
HealthStatus = containerInfo.HealthStatus,
65-
InstanceId = containerInfo.InstanceId,
66-
Name = containerInfo.Name,
67-
ParentContainerFriendlyName = containerInfo.ParentContainerFriendlyName,
68-
ParentContainerName = containerInfo.ParentContainerName,
69-
RegistrationStatus = containerInfo.RegistrationStatus,
70-
ResourceGroupName = ResourceGroupName,
71-
ResourceName = ResourceName,
72-
};
73-
});
68+
return containerInfo.ParentContainerName != ContainerResourceGroupName;
69+
});
70+
}
7471

75-
WriteObject(containers);
72+
WriteObject(containerInfos.ConvertAll(containerInfo =>
73+
{
74+
return new AzureBackupContainer(containerInfo);
75+
}));
7676
});
7777
}
7878

7979
private string ConstructQueryFilterString()
8080
{
81-
string queryFilterString = string.Empty;
8281
BMI.ContainerQueryObject containerQueryObject = new BMI.ContainerQueryObject();
8382

84-
if (Type != null)
83+
switch (Type)
8584
{
86-
switch (Type)
87-
{
88-
case AzureBackupContainerType.AzureVirtualMachine:
89-
containerQueryObject.Type = BCI.ContainerType.IaasVMContainer.ToString();
90-
break;
91-
default:
92-
break;
93-
}
85+
case AzureBackupContainerType.AzureVirtualMachine:
86+
containerQueryObject.Type = BCI.ContainerType.IaasVMContainer.ToString();
87+
break;
88+
default:
89+
break;
9490
}
9591

96-
if (Status != null)
92+
switch (Status)
9793
{
98-
switch (Status)
99-
{
100-
case AzureBackupContainerStatus.Registered:
101-
containerQueryObject.Status = BCI.RegistrationStatus.Registered.ToString();
102-
break;
103-
case AzureBackupContainerStatus.Registering:
104-
containerQueryObject.Status = BCI.RegistrationStatus.Registering.ToString();
105-
break;
106-
case AzureBackupContainerStatus.NotRegistered:
107-
containerQueryObject.Status = BCI.RegistrationStatus.NotRegistered.ToString();
108-
break;
109-
default:
110-
break;
111-
}
94+
case AzureBackupContainerStatus.Registered:
95+
containerQueryObject.Status = BCI.RegistrationStatus.Registered.ToString();
96+
break;
97+
case AzureBackupContainerStatus.Registering:
98+
containerQueryObject.Status = BCI.RegistrationStatus.Registering.ToString();
99+
break;
100+
case AzureBackupContainerStatus.NotRegistered:
101+
containerQueryObject.Status = BCI.RegistrationStatus.NotRegistered.ToString();
102+
break;
103+
default:
104+
break;
112105
}
113106

114-
if (VirtualMachine != null)
107+
if (!string.IsNullOrEmpty(ContainerResourceName))
115108
{
116-
109+
containerQueryObject.FriendlyName = ContainerResourceName;
117110
}
118111

119-
return queryFilterString;
112+
return BMI.BackupManagementAPIHelper.GetQueryString(containerQueryObject.GetNameValueCollection());
120113
}
121114
}
122115
}

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

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ public AzureBackupVaultContextObject(string resourceGroupName, string resourceNa
3838
}
3939
}
4040

41+
/// <summary>
42+
/// This class encapsulates all the properties of the container object
43+
/// that are needed by higher level objects (data source, recovery point etc).
44+
/// </summary>
4145
public class AzureBackupContainerContextObject : AzureBackupVaultContextObject
4246
{
4347
/// <summary>
@@ -46,14 +50,9 @@ public class AzureBackupContainerContextObject : AzureBackupVaultContextObject
4650
public string ContainerType { get; set; }
4751

4852
/// <summary>
49-
/// Name of the Azure Backup container
53+
/// Unique name of the Azure Backup Container
5054
/// </summary>
51-
public string ContainerName { get; set; }
52-
53-
/// <summary>
54-
/// Id of the Azure Backup Container
55-
/// </summary>
56-
public string ContainerId { get; set; }
55+
public string ContainerUniqueName { get; set; }
5756

5857
public AzureBackupContainerContextObject()
5958
: base()
@@ -64,15 +63,20 @@ public AzureBackupContainerContextObject(AzureBackupContainerContextObject azure
6463
: base(azureBackupContainerContextObject.ResourceGroupName, azureBackupContainerContextObject.ResourceName)
6564
{
6665
ContainerType = azureBackupContainerContextObject.ContainerType;
67-
ContainerName = azureBackupContainerContextObject.ContainerName;
68-
ContainerId = azureBackupContainerContextObject.ContainerId;
66+
ContainerUniqueName = azureBackupContainerContextObject.ContainerUniqueName;
6967
}
7068
public AzureBackupContainerContextObject(AzureBackupContainer azureBackupContainer)
7169
: base(azureBackupContainer.ResourceGroupName, azureBackupContainer.ResourceName)
7270
{
7371
ContainerType = azureBackupContainer.ContainerType;
74-
ContainerName = azureBackupContainer.ContainerName;
75-
ContainerId = azureBackupContainer.ContainerId;
72+
ContainerUniqueName = azureBackupContainer.ContainerUniqueName;
73+
}
74+
75+
public AzureBackupContainerContextObject(ContainerInfo containerInfo)
76+
: base(containerInfo.ParentContainerName, containerInfo.FriendlyName)
77+
{
78+
ContainerType = containerInfo.ContainerType;
79+
ContainerUniqueName = containerInfo.Name;
7680
}
7781
}
7882

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

Lines changed: 10 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
// limitations under the License.
1313
// ----------------------------------------------------------------------------------
1414

15+
using Microsoft.Azure.Management.BackupServices.Models;
1516
using System;
1617
using System.Collections.Generic;
1718
using System.Linq;
@@ -25,44 +26,23 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets
2526
/// </summary>
2627
public class AzureBackupContainer : AzureBackupContainerContextObject
2728
{
28-
/// <summary>
29-
/// Type of the Azure Backup container
30-
/// </summary>
31-
public string ContainerType { get; set; }
32-
33-
/// <summary>
34-
/// Friendly name for the Azure Backup container
35-
/// </summary>
36-
public string FriendlyName { get; set; }
37-
3829
/// <summary>
3930
/// Status of health of the Azure Backup container
4031
/// </summary>
4132
public string HealthStatus { get; set; }
4233

43-
/// <summary>
44-
/// Id of the Azure Backup Container
45-
/// </summary>
46-
public string InstanceId { get; set; }
47-
48-
/// <summary>
49-
/// Name of the Azure Backup container
50-
/// </summary>
51-
public string Name { get; set; }
52-
53-
/// <summary>
54-
/// Friendly name of the parent container
55-
/// </summary>
56-
public string ParentContainerFriendlyName { get; set; }
57-
58-
/// <summary>
59-
/// Name of the parent container
60-
/// </summary>
61-
public string ParentContainerName { get; set; }
62-
6334
/// <summary>
6435
/// Status of registration of the container
6536
/// </summary>
6637
public string RegistrationStatus { get; set; }
38+
39+
public AzureBackupContainer() : base() { }
40+
41+
public AzureBackupContainer(ContainerInfo containerInfo)
42+
: base(containerInfo)
43+
{
44+
HealthStatus = containerInfo.HealthStatus;
45+
RegistrationStatus = containerInfo.RegistrationStatus;
46+
}
6747
}
6848
}

0 commit comments

Comments
 (0)