Skip to content

Commit 718130b

Browse files
author
dragonfly91
committed
resolving merge conflicts
2 parents b96663e + 4b450e4 commit 718130b

15 files changed

+137
-98
lines changed

src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/JobAdapter.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,17 @@ public partial class AzureBackupClientAdapter
3737
var response = AzureBackupClient.Job.ListAsync(queryParams, GetCustomRequestHeaders(), CmdletCancellationToken).Result;
3838
return response.Jobs.Objects;
3939
}
40+
41+
public Mgmt.JobByIdResponse GetJobDetails(string jobId)
42+
{
43+
var response = AzureBackupClient.Job.GetAsync(jobId, GetCustomRequestHeaders(), CmdletCancellationToken).Result;
44+
return response;
45+
}
46+
47+
public Guid TriggerCancelJob(string jobId)
48+
{
49+
var response = AzureBackupClient.Job.StopAsync(jobId, GetCustomRequestHeaders(), CmdletCancellationToken).Result.OperationId;
50+
return response;
51+
}
4052
}
4153
}

src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,10 @@ public void DeleteProtectionPolicy(string policyId)
7878
/// </summary>
7979
/// <param name="policyId"></param>
8080
/// <param name="request"></param>
81-
public void UpdateProtectionPolicy(string policyId, UpdateProtectionPolicyRequest request)
81+
public Guid UpdateProtectionPolicy(string policyId, UpdateProtectionPolicyRequest request)
8282
{
83-
AzureBackupClient.ProtectionPolicy.UpdateAsync(policyId, request, GetCustomRequestHeaders(), CmdletCancellationToken).Wait();
83+
var response = AzureBackupClient.ProtectionPolicy.UpdateAsync(policyId, request, GetCustomRequestHeaders(), CmdletCancellationToken).Result;
84+
return response.OperationId;
8485
}
8586
}
8687
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,5 +74,10 @@ internal static class AzureBackupCmdletHelpMessage
7474
public const string RententionDuration = "Duration of retention for the recovery point in units specified by RetentionType.";
7575
public const string PolicyNewName = "Policy new name";
7676
public const string AzureBackupPolicy = "Azure Backup protection policy";
77+
public const string VMName = "Azure VM name to be register";
78+
public const string ServiceName = "Cloud service name of Azure VM to be register";
79+
public const string RGName = "Resource Group name of Azure VM to be register";
80+
public const string AzureBackupContainerToUnregister = "Azure Backup Container tobe unregister.";
81+
7782
}
7883
}

src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJob.cs

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,34 +27,38 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets
2727
/// <summary>
2828
/// Get list of jobs pertaining to the filters specified. Gets list of all jobs created in the last 24 hours if no filters are specified.
2929
/// </summary>
30-
[Cmdlet(VerbsCommon.Get, "AzureBackupJob"), OutputType(typeof(List<Mgmt.Job>), typeof(Mgmt.Job))]
31-
public class GetAzureBackupJob : AzureBackupVaultCmdletBase
30+
[Cmdlet(VerbsCommon.Get, "AzureBackupJob", DefaultParameterSetName = "FiltersSet"), OutputType(typeof(List<Mgmt.Job>), typeof(Mgmt.Job))]
31+
public class GetAzureBackupJob : AzureBackupCmdletBase
3232
{
33-
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterJobIdHelpMessage)]
33+
[Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.Vault, ParameterSetName = "FiltersSet")]
34+
[ValidateNotNull]
35+
public AzurePSBackupVault Vault { get; set; }
36+
37+
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterJobIdHelpMessage, ParameterSetName = "FiltersSet")]
3438
[ValidateNotNullOrEmpty]
3539
public string JobId { get; set; }
3640

37-
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterJobHelpMessage)]
41+
[Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterJobHelpMessage, ParameterSetName = "JobsListFilter")]
3842
[ValidateNotNull]
3943
public AzureBackupJob Job { get; set; }
4044

41-
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterStartTimeHelpMessage)]
45+
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterStartTimeHelpMessage, ParameterSetName = "FiltersSet")]
4246
[ValidateNotNull]
4347
public DateTime? From { get; set; }
4448

45-
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterEndTimeHelpMessage)]
49+
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterEndTimeHelpMessage, ParameterSetName = "FiltersSet")]
4650
[ValidateNotNull]
4751
public DateTime? To { get; set; }
4852

49-
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterStatusHelpMessage)]
53+
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterStatusHelpMessage, ParameterSetName = "FiltersSet")]
5054
[ValidateSet("Cancelled", "Cancelling", "Completed", "CompletedWithWarnings", "Failed", "InProgress")]
5155
public string Status { get; set; }
5256

53-
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterTypeHelpMessage)]
57+
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterTypeHelpMessage, ParameterSetName = "FiltersSet")]
5458
[ValidateSet("VM")]
5559
public string Type { get; set; }
5660

57-
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterOperationHelpMessage)]
61+
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterOperationHelpMessage, ParameterSetName = "FiltersSet")]
5862
[ValidateSet("Backup", "ConfigureBackup", "DeleteBackupData", "Register", "Restore", "UnProtect", "Unregister")]
5963
public string Operation { get; set; }
6064

@@ -64,16 +68,10 @@ public override void ExecuteCmdlet()
6468
{
6569
if (Job != null)
6670
{
67-
InitializeAzureBackupCmdlet(Job.ResourceGroupName, Job.ResourceName);
71+
Vault = new AzurePSBackupVault(Job.ResourceGroupName, Job.ResourceName, Job.Location);
6872
}
6973

70-
// TODO: BUG: This will overwrite the above initialization
71-
base.ExecuteCmdlet();
72-
73-
//if (Job != null && JobId != null)
74-
//{
75-
// throw new Exception("Please use either JobID filter or Job filter but not both.");
76-
//}
74+
InitializeAzureBackupCmdlet(Vault);
7775

7876
if (Job != null)
7977
{
@@ -143,7 +141,7 @@ public override void ExecuteCmdlet()
143141
foreach (Mgmt.Job serviceJob in jobsList)
144142
{
145143
// TODO: Initialize vault from Job object when vault is made optional
146-
retrievedJobs.Add(new AzureBackupJob(vault, serviceJob));
144+
retrievedJobs.Add(new AzureBackupJob(Vault, serviceJob));
147145
}
148146

149147
WriteDebug("Successfully retrieved all jobs. Number of jobs retrieved: " + retrievedJobs.Count());

src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJobDetails.cs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,31 +18,35 @@
1818
using System.Xml;
1919
using System.Linq;
2020
using Mgmt = Microsoft.Azure.Management.BackupServices.Models;
21+
using Microsoft.Azure.Commands.AzureBackup.Models;
2122

2223
namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets
2324
{
2425
/// <summary>
2526
/// Get full details of a job
2627
/// </summary>
27-
[Cmdlet(VerbsCommon.Get, "AzureBackupJobDetails"), OutputType(typeof(Mgmt.JobProperties))]
28-
public class GetAzureBackupJobDetils : AzureBackupVaultCmdletBase
28+
[Cmdlet(VerbsCommon.Get, "AzureBackupJobDetails", DefaultParameterSetName = "IdFiltersSet"), OutputType(typeof(Mgmt.JobProperties))]
29+
public class GetAzureBackupJobDetils : AzureBackupCmdletBase
2930
{
30-
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobDetailsFilterJobIdHelpMessage)]
31+
[Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.Vault, ParameterSetName = "IdFiltersSet")]
32+
[ValidateNotNull]
33+
public AzurePSBackupVault Vault { get; set; }
34+
35+
[Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.JobDetailsFilterJobIdHelpMessage, ParameterSetName = "IdFiltersSet")]
3136
[ValidateNotNullOrEmpty]
3237
public string JobID { get; set; }
3338

34-
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobDetailsFilterJobHelpMessage)]
39+
[Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.JobDetailsFilterJobHelpMessage, ParameterSetName = "JobsFiltersSet")]
3540
[ValidateNotNull]
3641
public AzureBackupJob Job { get; set; }
3742

3843
public override void ExecuteCmdlet()
3944
{
4045
if (Job != null)
4146
{
42-
InitializeAzureBackupCmdlet(Job.ResourceGroupName, Job.ResourceName, Job.Location);
47+
Vault = new AzurePSBackupVault(Job.ResourceGroupName, Job.ResourceName, Job.Location);
4348
}
44-
45-
base.ExecuteCmdlet();
49+
InitializeAzureBackupCmdlet(Vault);
4650

4751
ExecutionBlock(() =>
4852
{
@@ -53,8 +57,8 @@ public override void ExecuteCmdlet()
5357

5458
WriteDebug("JobID filter is: " + JobID);
5559

56-
Mgmt.JobProperties serviceJobProperties = AzureBackupClient.Job.GetAsync(JobID, GetCustomRequestHeaders(), CmdletCancellationToken).Result.Job;
57-
AzureBackupJobDetails jobDetails = new AzureBackupJobDetails(serviceJobProperties, ResourceGroupName, ResourceName, Location);
60+
Mgmt.JobProperties serviceJobProperties = AzureBackupClient.GetJobDetails(JobID).Job;
61+
AzureBackupJobDetails jobDetails = new AzureBackupJobDetails(Vault, serviceJobProperties);
5862

5963
WriteDebug("Retrieved JobDetails from service.");
6064
WriteObject(jobDetails);

src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,35 +20,36 @@
2020
using Microsoft.Azure.Management.BackupServices;
2121
using System.Threading.Tasks;
2222
using Mgmt = Microsoft.Azure.Management.BackupServices.Models;
23+
using Microsoft.Azure.Commands.AzureBackup.Models;
2324

2425
namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets
2526
{
2627
/// <summary>
2728
/// Stop a running cancellable job
2829
/// </summary>
2930
[Cmdlet("Stop", "AzureBackupJob"), OutputType(typeof(Mgmt.Job))]
30-
public class StopAzureBackupJob : AzureBackupVaultCmdletBase
31+
public class StopAzureBackupJob : AzureBackupCmdletBase
3132
{
32-
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.StopJobFilterJobIdHelpMessage)]
33+
[Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.Vault, ParameterSetName = "IdFiltersSet")]
34+
[ValidateNotNull]
35+
public AzurePSBackupVault Vault { get; set; }
36+
37+
[Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.StopJobFilterJobIdHelpMessage, ParameterSetName = "IdFiltersSet")]
3338
[ValidateNotNullOrEmpty]
3439
public string JobID { get; set; }
3540

36-
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.StopJobFilterJobHelpMessage)]
41+
[Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.StopJobFilterJobHelpMessage, ParameterSetName = "JobFiltersSet")]
3742
[ValidateNotNull]
3843
public AzureBackupJob Job { get; set; }
3944

40-
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.StopJobFilterVaultHelpMessage)]
41-
[ValidateNotNull]
42-
public object Vault { get; set; }
43-
4445
public override void ExecuteCmdlet()
4546
{
4647
if (Job != null)
4748
{
48-
InitializeAzureBackupCmdlet(Job.ResourceGroupName, Job.ResourceName, Job.Location);
49+
Vault = new AzurePSBackupVault(Job.ResourceGroupName, Job.ResourceName, Job.Location);
4950
}
5051

51-
base.ExecuteCmdlet();
52+
InitializeAzureBackupCmdlet(Vault);
5253

5354
ExecutionBlock(() =>
5455
{
@@ -58,23 +59,16 @@ public override void ExecuteCmdlet()
5859
}
5960

6061
WriteDebug("JobID is: " + JobID);
61-
OperationResponse cancelTask = AzureBackupClient.Job.StopAsync(JobID, GetCustomRequestHeaders(), CmdletCancellationToken).Result;
62+
Guid cancelTaskId = AzureBackupClient.TriggerCancelJob(JobID);
63+
OperationResultResponse opResponse = TrackOperation(cancelTaskId);
6264

63-
var opStatus = AzureBackupClient.OperationStatus.GetAsync(cancelTask.OperationId.ToString(), GetCustomRequestHeaders()).Result;
64-
while (opStatus.OperationStatus != "Completed")
65+
if (opResponse.OperationResult == AzureBackupOperationResult.Succeeded.ToString())
6566
{
66-
WriteDebug("Waiting for the task to complete");
67-
opStatus = AzureBackupClient.OperationStatus.GetAsync(cancelTask.OperationId.ToString(), GetCustomRequestHeaders()).Result;
68-
}
69-
// TODO:
70-
if (opStatus.OperationResult == "Failed")
71-
{
72-
var errorRecord = new ErrorRecord(new Exception("Cannot cancel job."), opStatus.Message, ErrorCategory.InvalidOperation, null);
73-
WriteError(errorRecord);
67+
WriteDebug("Triggered cancellation of job with JobID: " + JobID);
7468
}
7569
else
7670
{
77-
WriteDebug("Triggered cancellation of job with JobID: " + JobID);
71+
throw new Exception("Stop Job failed with ErrorCode: " + opResponse.ErrorCode);
7872
}
7973
});
8074
}

src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/WaitAzureBackupJob.cs

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,22 @@
1818
using System.Xml;
1919
using System.Linq;
2020
using Mgmt = Microsoft.Azure.Management.BackupServices.Models;
21+
using Microsoft.Azure.Commands.AzureBackup.Models;
2122

2223
namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets
2324
{
24-
[Cmdlet("Wait", "AzureBackupJob"), OutputType(typeof(Mgmt.Job))]
25+
[Cmdlet("Wait", "AzureBackupJob", DefaultParameterSetName = "IdFiltersSet"), OutputType(typeof(Mgmt.Job))]
2526
public class WaitAzureBackupJob : AzureBackupVaultCmdletBase
2627
{
27-
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.WaitJobFilterJobIdHelpMessage, ValueFromPipeline = true)]
28+
[Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.Vault, ParameterSetName = "IdFiltersSet")]
29+
[ValidateNotNull]
30+
public AzurePSBackupVault Vault { get; set; }
31+
32+
[Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.WaitJobFilterJobIdHelpMessage, ValueFromPipeline = true, ParameterSetName = "IdFiltersSet")]
2833
[ValidateNotNull]
2934
public object JobID { get; set; }
3035

31-
[Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.WaitJobFilterJobHelpMessage, ValueFromPipeline = true)]
36+
[Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.WaitJobFilterJobHelpMessage, ValueFromPipeline = true, ParameterSetName = "JobFiltersSet")]
3237
[ValidateNotNullOrEmpty]
3338
public object Job { get; set; }
3439

@@ -42,16 +47,15 @@ public override void ExecuteCmdlet()
4247

4348
if (Job != null)
4449
{
45-
WriteDebug("Job is Powershell: " + (Job is PSObject));
50+
WriteDebug("Job is PowershellObject: " + (Job is PSObject));
4651
WriteDebug("Job type: " + Job.GetType());
4752

4853
if ((Job is PSObject) && (((PSObject)Job).ImmediateBaseObject is List<AzureBackupJob>))
4954
{
5055
WriteDebug("Type of input paramter is List<AzureBackupJob>");
5156
foreach (AzureBackupJob jobToWait in ((Job as PSObject).ImmediateBaseObject as List<AzureBackupJob>))
5257
{
53-
InitializeAzureBackupCmdlet(jobToWait.ResourceGroupName, jobToWait.ResourceName, jobToWait.Location);
54-
58+
Vault = new AzurePSBackupVault(jobToWait.ResourceGroupName, jobToWait.ResourceName, jobToWait.Location);
5559
specifiedJobs.Add(jobToWait.InstanceId);
5660
}
5761
}
@@ -60,33 +64,26 @@ public override void ExecuteCmdlet()
6064
WriteDebug("Type of input paramter is List<AzureBackupJob> second case");
6165
foreach (AzureBackupJob jobToWait in (Job as List<AzureBackupJob>))
6266
{
63-
this.ResourceGroupName = jobToWait.ResourceGroupName;
64-
this.ResourceName = jobToWait.ResourceName;
65-
this.Location = jobToWait.Location;
66-
67+
Vault = new AzurePSBackupVault(jobToWait.ResourceGroupName, jobToWait.ResourceName, jobToWait.Location);
6768
specifiedJobs.Add(jobToWait.InstanceId);
6869
}
6970
}
7071
else if ((Job is PSObject) && (((PSObject)Job).ImmediateBaseObject is AzureBackupJob))
7172
{
7273
AzureBackupJob azureJob = ((Job as PSObject).ImmediateBaseObject as AzureBackupJob);
73-
this.ResourceGroupName = azureJob.ResourceGroupName;
74-
this.ResourceName = azureJob.ResourceName;
75-
this.Location = azureJob.Location;
76-
74+
Vault = new AzurePSBackupVault(azureJob.ResourceGroupName, azureJob.ResourceName, azureJob.Location);
7775
specifiedJobs.Add(azureJob.InstanceId);
7876
}
7977
else if (Job is AzureBackupJob)
8078
{
81-
this.ResourceName = (Job as AzureBackupJob).ResourceName;
82-
this.ResourceGroupName = (Job as AzureBackupJob).ResourceGroupName;
83-
this.Location = (Job as AzureBackupJob).Location;
84-
79+
Vault = new AzurePSBackupVault((Job as AzureBackupJob).ResourceGroupName, (Job as AzureBackupJob).ResourceName, (Job as AzureBackupJob).Location);
8580
specifiedJobs.Add((Job as AzureBackupJob).InstanceId);
8681
}
8782
}
88-
else
83+
84+
if(JobID != null)
8985
{
86+
WriteDebug("Type of immediate base object: " + ((PSObject)JobID).ImmediateBaseObject.GetType().ToString());
9087
if ((JobID is PSObject) && (((PSObject)JobID).ImmediateBaseObject is List<string>))
9188
{
9289
foreach (string idOfJobToWait in ((JobID as PSObject).ImmediateBaseObject as List<string>))
@@ -114,10 +111,20 @@ public override void ExecuteCmdlet()
114111
specifiedJobs.Add(JobID as string);
115112
}
116113
}
114+
else
115+
{
116+
WriteDebug("JobID is null");
117+
}
117118

118119
WriteDebug("Number of jobs to wait on: " + specifiedJobs.Count);
119120

120-
base.ExecuteCmdlet();
121+
if (specifiedJobs.Count == 0)
122+
{
123+
WriteDebug("No jobs to wait on. Quitting.");
124+
return;
125+
}
126+
127+
InitializeAzureBackupCmdlet(Vault);
121128

122129
ExecutionBlock(() =>
123130
{
@@ -132,6 +139,8 @@ public override void ExecuteCmdlet()
132139

133140
while (true)
134141
{
142+
WriteDebug("In loop querying jobs");
143+
135144
if (DateTime.UtcNow.Subtract(waitingStartTime).TotalSeconds >= TimeOut)
136145
{
137146
WriteDebug("Exiting due to timeout.");
@@ -142,7 +151,7 @@ public override void ExecuteCmdlet()
142151

143152
for (int i = 0; i < pendingJobs.Count; i++)
144153
{
145-
Mgmt.Job retrievedJob = AzureBackupClient.Job.GetAsync(pendingJobs[i], GetCustomRequestHeaders(), CmdletCancellationToken).Result.Job;
154+
Mgmt.Job retrievedJob = AzureBackupClient.GetJobDetails(pendingJobs[i]).Job;
146155
if (AzureBackupJobHelper.IsJobRunning(retrievedJob.Status))
147156
areJobsRunning = true;
148157
else

0 commit comments

Comments
 (0)