Skip to content

Commit 120484a

Browse files
committed
Merge branch 'dev' into adit-branch
Conflicts: src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs
2 parents cbe486c + 0d4af69 commit 120484a

20 files changed

+208
-182
lines changed

src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ public abstract class AzureBackupCmdletBase : AzurePSCmdlet
4141
/// </summary>
4242
private string resourceName { get; set; }
4343

44+
/// <summary>
45+
/// Resource context for the operation
46+
/// </summary>
47+
private string location { get; set; }
48+
4449
/// <summary>
4550
/// Client request id.
4651
/// </summary>
@@ -82,10 +87,11 @@ protected void RefreshClientRequestId()
8287
clientRequestId = Guid.NewGuid().ToString() + "-" + DateTime.Now.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ssZ") + "-PS";
8388
}
8489

85-
public void InitializeAzureBackupCmdlet(string rgName, string rName)
90+
public void InitializeAzureBackupCmdlet(string rgName, string rName, string locationName)
8691
{
8792
resourceGroupName = rgName;
8893
resourceName = rName;
94+
location = locationName;
8995

9096
RefreshClientRequestId();
9197
WriteDebug(string.Format("Initialized AzureBackup Cmdlet, ClientRequestId: {0}, ResourceGroupName: {1}, ResourceName : {2}", this.clientRequestId, resourceGroupName, resourceName));

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ internal static class AzureBackupCmdletHelpMessage
2020
public const string PolicyName = "The protection policy name.";
2121
public const string ResourceGroupName = "The ResourceGroup name.";
2222
public const string ResourceName = "The Resource name.";
23+
public const string Location = "Location.";
2324
public const string TargetLocation = "The directory where the credentials file will be saved.";
24-
public const string ContainerName = "The container name.";
25+
public const string ContainerResourceName = "The container resource name aka friendly name.";
2526
public const string ContainerId = "The container ID.";
2627
public const string ContainerRegistrationStatus = "The container registration status.";
2728
public const string ContainerType = "The container type.";
@@ -47,5 +48,10 @@ internal static class AzureBackupCmdletHelpMessage
4748
public const string WaitJobFilterVaultHelpMessage = "The vault of which a job has to be stopped";
4849
public const string WaitJobFilterJobHelpMessage = "The job which should be stopped";
4950
public const string WaitJobFilterTimeoutHelpMessage = "Maximum number of seconds for which cmdlet should wait before job(s) complete running.";
51+
52+
public const string ContainerResourceGroupName = "The container resource group name.";
53+
public const string ProtectionStatus = "Protection Status of the azure backup item.";
54+
public const string AzureBackUpItem = "Azure BackUp Item.";
55+
public const string RecoveryPointId = "Recovery Point Id.";
5056
}
5157
}

src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupContainerCmdletBase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ public override void ExecuteCmdlet()
3838
{
3939
base.ExecuteCmdlet();
4040

41-
WriteDebug(String.Format("Cmdlet called for ResourceGroupName: {0}, ResourceName: {1}", AzureBackupContainer.ResourceGroupName, AzureBackupContainer.ResourceName));
41+
WriteDebug(String.Format("Cmdlet called for ResourceGroupName: {0}, ResourceName: {1}, Location: {2}", AzureBackupContainer.ResourceGroupName, AzureBackupContainer.ResourceName, AzureBackupContainer.Location));
4242

43-
InitializeAzureBackupCmdlet(AzureBackupContainer.ResourceGroupName, AzureBackupContainer.ResourceName);
43+
InitializeAzureBackupCmdlet(AzureBackupContainer.ResourceGroupName, AzureBackupContainer.ResourceName, AzureBackupContainer.Location);
4444
}
4545
}
4646
}

src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupDSCmdletBase.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,17 @@ public abstract class AzureBackupDSCmdletBase : AzureBackupCmdletBase
3030
{
3131
// ToDO:
3232
// Correct Help message and other attributes related to paameters
33-
[Parameter(Position = 0, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.ResourceGroupName, ValueFromPipelineByPropertyName = true)]
33+
[Parameter(Position = 0, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.AzureBackUpItem, ValueFromPipelineByPropertyName = true)]
3434
[ValidateNotNullOrEmpty]
35-
public AzureBackupItem AzureBackupItem { get; set; }
35+
public AzureBackupItem item { get; set; }
3636

3737
public override void ExecuteCmdlet()
3838
{
3939
base.ExecuteCmdlet();
4040

41-
WriteDebug(String.Format("Cmdlet called for ResourceGroupName: {0}, ResourceName: {1}", AzureBackupItem.ResourceGroupName, AzureBackupItem.ResourceName));
41+
WriteDebug(String.Format("Cmdlet called for ResourceGroupName: {0}, ResourceName: {1}", item.ResourceGroupName, item.ResourceName));
4242

43-
InitializeAzureBackupCmdlet(AzureBackupItem.ResourceGroupName, AzureBackupItem.ResourceName);
43+
InitializeAzureBackupCmdlet(item.ResourceGroupName, item.ResourceName, item.Location);
4444
}
4545
}
4646
}

src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupVaultCmdletBase.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,17 @@ public abstract class AzureBackupVaultCmdletBase : AzureBackupCmdletBase
3636
[ValidateNotNullOrEmpty]
3737
public string ResourceName { get; set; }
3838

39+
[Parameter(Position = 2, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.Location, ValueFromPipelineByPropertyName = true)]
40+
[ValidateNotNullOrEmpty]
41+
public string Location { get; set; }
3942

4043
public override void ExecuteCmdlet()
4144
{
4245
base.ExecuteCmdlet();
4346

4447
WriteDebug(String.Format("Cmdlet called for ResourceGroupName: {0}, ResourceName: {1}", ResourceGroupName, ResourceName));
4548

46-
InitializeAzureBackupCmdlet(ResourceGroupName, ResourceName);
49+
InitializeAzureBackupCmdlet(ResourceGroupName, ResourceName, Location);
4750
}
4851
}
4952
}

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

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets
3131
/// <summary>
3232
/// Get list of containers
3333
/// </summary>
34-
[Cmdlet(VerbsCommon.New, "AzureBackupItem"), OutputType(typeof(MBS.OperationResponse))]
34+
[Cmdlet(VerbsData.Backup, "AzureBackupItem"), OutputType(typeof(MBS.OperationResponse))]
3535
public class TriggerAzureBackup : AzureBackupDSCmdletBase
3636
{
3737
public override void ExecuteCmdlet()
@@ -44,26 +44,26 @@ public override void ExecuteCmdlet()
4444

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

5252
WriteVerbose("Received policy response");
5353
WriteVerbose("Received policy response2");
5454

5555
WriteVerbose("Converting response");
56-
WriteAzureBackupProtectionPolicy(triggerBackUpInfo);
56+
WriteAzureBackupOperationId(triggerBackUpInfo);
5757
});
5858
}
5959

60-
public void WriteAzureBackupProtectionPolicy(MBS.OperationResponse sourceOperationResponse)
60+
public void WriteAzureBackupOperationId(MBS.OperationResponse sourceOperationResponse)
6161
{
6262
// this needs to be uncommented once we have proper constructor
63-
//this.WriteObject(new AzureBackupRecoveryPoint(ResourceGroupName, ResourceName, sourceOperationResponse));
63+
// this.WriteObject(new AzureBackupRecoveryPoint(ResourceGroupName, ResourceName, sourceOperationResponse));
6464
}
6565

66-
public void WriteAzureBackupProtectionPolicy(IEnumerable<MBS.OperationResponse> sourceOperationResponseList)
66+
public void WriteAzureBackupOperationId(IEnumerable<MBS.OperationResponse> sourceOperationResponseList)
6767
{
6868
List<MBS.OperationResponse> targetList = new List<MBS.OperationResponse>();
6969

@@ -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: 58 additions & 49 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,79 @@ 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+
WriteVerbose(string.Format("# of fetched containers = {0}", listContainerResponse.Objects.Count));
61+
62+
List<ContainerInfo> containerInfos = listContainerResponse.Objects.ToList();
63+
64+
// When resource group name is specified, remove all containers whose resource group name
65+
// doesn't match the given resource group name
66+
if (!string.IsNullOrEmpty(ContainerResourceGroupName))
5967
{
60-
return new AzureBackupContainer()
68+
containerInfos.RemoveAll(containerInfo =>
6169
{
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-
};
70+
return containerInfo.ParentContainerName != ContainerResourceGroupName;
71+
});
72+
}
73+
74+
WriteVerbose(string.Format("# of containers after resource group filter = {0}", listContainerResponse.Objects.Count));
75+
76+
List<AzureBackupContainer> containers = containerInfos.ConvertAll(containerInfo =>
77+
{
78+
return new AzureBackupContainer(containerInfo, ResourceGroupName, ResourceName, Location);
7379
});
7480

75-
WriteObject(containers);
81+
if (!string.IsNullOrEmpty(ResourceName) & !string.IsNullOrEmpty(ResourceGroupName))
82+
{
83+
if (containers.Any())
84+
{
85+
WriteObject(containers.First());
86+
}
87+
}
88+
else
89+
{
90+
WriteObject(containers);
91+
}
7692
});
7793
}
7894

7995
private string ConstructQueryFilterString()
8096
{
81-
string queryFilterString = string.Empty;
8297
BMI.ContainerQueryObject containerQueryObject = new BMI.ContainerQueryObject();
8398

84-
if (Type != null)
99+
switch (Type)
85100
{
86-
switch (Type)
87-
{
88-
case AzureBackupContainerType.AzureVirtualMachine:
89-
containerQueryObject.Type = BCI.ContainerType.IaasVMContainer.ToString();
90-
break;
91-
default:
92-
break;
93-
}
101+
case AzureBackupContainerType.AzureVirtualMachine:
102+
containerQueryObject.Type = BCI.ContainerType.IaasVMContainer.ToString();
103+
break;
104+
default:
105+
break;
94106
}
95107

96-
if (Status != null)
108+
switch (Status)
97109
{
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-
}
110+
case AzureBackupContainerStatus.Registered:
111+
containerQueryObject.Status = BCI.RegistrationStatus.Registered.ToString();
112+
break;
113+
case AzureBackupContainerStatus.Registering:
114+
containerQueryObject.Status = BCI.RegistrationStatus.Registering.ToString();
115+
break;
116+
case AzureBackupContainerStatus.NotRegistered:
117+
containerQueryObject.Status = BCI.RegistrationStatus.NotRegistered.ToString();
118+
break;
119+
default:
120+
break;
112121
}
113122

114-
if (VirtualMachine != null)
123+
if (!string.IsNullOrEmpty(ContainerResourceName))
115124
{
116-
125+
containerQueryObject.FriendlyName = ContainerResourceName;
117126
}
118127

119-
return queryFilterString;
128+
return BMI.BackupManagementAPIHelper.GetQueryString(containerQueryObject.GetNameValueCollection());
120129
}
121130
}
122131
}

0 commit comments

Comments
 (0)