Skip to content

Commit c9e8906

Browse files
committed
merged from dev
2 parents 09c9847 + d243ff6 commit c9e8906

File tree

7 files changed

+85
-26
lines changed

7 files changed

+85
-26
lines changed

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@ 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 ProtectionStatus = "Protection Status of item.";
28+
public const string ContainerResourceGroupName = "The container resource group name.";
29+
public const string ProtectionStatus = "Protection Status of the azure backup item.";
2930
}
3031
}

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ public override void ExecuteCmdlet()
4444

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

5252
WriteVerbose("Received policy response");
5353
WriteVerbose("Received policy response2");
@@ -77,4 +77,3 @@ public void WriteAzureBackupProtectionPolicy(IEnumerable<MBS.OperationResponse>
7777
}
7878
}
7979
}
80-

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

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

15+
using BCI = Microsoft.BackupManagementService.CommonInterface;
16+
using BMI = Microsoft.BackupManagementService.ManagementInterface;
17+
using Microsoft.Azure.Management.BackupServices.Models;
1518
using System;
1619
using System.Collections.Generic;
1720
using System.Linq;
@@ -27,19 +30,19 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets
2730
[Cmdlet(VerbsCommon.Get, "AzureBackupContainer"), OutputType(typeof(AzureBackupContainer), typeof(List<AzureBackupContainer>))]
2831
public class GetAzureBackupContainer : AzureBackupVaultCmdletBase
2932
{
30-
[Parameter(Position = 2, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerName)]
33+
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerResourceGroupName)]
3134
[ValidateNotNullOrEmpty]
32-
public string Name { get; set; }
35+
public string ContainerResourceGroupName { get; set; }
3336

34-
[Parameter(Position = 2, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerId)]
37+
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerResourceName)]
3538
[ValidateNotNullOrEmpty]
36-
public string Id { get; set; }
39+
public string ContainerResourceName { get; set; }
3740

38-
[Parameter(Position = 2, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerRegistrationStatus)]
41+
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerRegistrationStatus)]
3942
[ValidateNotNullOrEmpty]
4043
public AzureBackupContainerStatus Status { get; set; }
4144

42-
[Parameter(Position = 2, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerType)]
45+
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerType)]
4346
[ValidateNotNullOrEmpty]
4447
public AzureBackupContainerType Type { get; set; }
4548

@@ -49,12 +52,64 @@ public override void ExecuteCmdlet()
4952

5053
ExecutionBlock(() =>
5154
{
52-
IEnumerable<AzureBackupContainer> containers = new List<AzureBackupContainer>();
55+
string queryFilterString = string.Empty;
56+
queryFilterString = ConstructQueryFilterString();
57+
ListContainerResponse listContainerResponse = AzureBackupClient.Container.ListAsync(queryFilterString,
58+
GetCustomRequestHeaders(), CmdletCancellationToken).Result;
5359

54-
// TODO: Call Hydra
60+
List<ContainerInfo> containerInfos = listContainerResponse.Objects.ToList();
5561

56-
WriteObject(containers);
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))
65+
{
66+
containerInfos.RemoveAll(containerInfo =>
67+
{
68+
return containerInfo.ParentContainerName != ContainerResourceGroupName;
69+
});
70+
}
71+
72+
WriteObject(containerInfos.ConvertAll(containerInfo =>
73+
{
74+
return new AzureBackupContainer(containerInfo);
75+
}));
5776
});
5877
}
78+
79+
private string ConstructQueryFilterString()
80+
{
81+
BMI.ContainerQueryObject containerQueryObject = new BMI.ContainerQueryObject();
82+
83+
switch (Type)
84+
{
85+
case AzureBackupContainerType.AzureVirtualMachine:
86+
containerQueryObject.Type = BCI.ContainerType.IaasVMContainer.ToString();
87+
break;
88+
default:
89+
break;
90+
}
91+
92+
switch (Status)
93+
{
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;
105+
}
106+
107+
if (!string.IsNullOrEmpty(ContainerResourceName))
108+
{
109+
containerQueryObject.FriendlyName = ContainerResourceName;
110+
}
111+
112+
return BMI.BackupManagementAPIHelper.GetQueryString(containerQueryObject.GetNameValueCollection());
113+
}
59114
}
60115
}

src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs

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

4242
RecoveryPointListResponse recoveryPointListResponse =
4343
AzureBackupClient.RecoveryPoint.ListAsync(GetCustomRequestHeaders(),
44-
AzureBackupItem.ContainerName,
44+
AzureBackupItem.ContainerUniqueName,
4545
AzureBackupItem.Type,
4646
AzureBackupItem.DataSourceId,
4747
CmdletCancellationToken).Result;

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

0 commit comments

Comments
 (0)