From bd15375e6bd1a137ae0d8f48c28b7c764be2e551 Mon Sep 17 00:00:00 2001 From: pragrawa Date: Sat, 4 Jul 2015 04:01:23 +0530 Subject: [PATCH 01/58] Policy Bug Fixes --- .../AzureBackupClientAdapter/PolicyAdapter.cs | 15 ++++ .../GetAzureBackupProtectionPolicy.cs | 2 +- .../NewAzureBackupProtectionPolicy.cs | 42 ++++------ .../SetAzureBackupProtectionPolicy.cs | 83 ++++++++++--------- .../Helpers/ProtectionPolicyHelpers.cs | 48 ++++++++++- 5 files changed, 122 insertions(+), 68 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs index 4db1e2ba2cc7..97cd52166e5a 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs @@ -83,5 +83,20 @@ public Guid UpdateProtectionPolicy(string policyId, UpdateProtectionPolicyReques var response = AzureBackupClient.ProtectionPolicy.UpdateAsync(policyId, request, GetCustomRequestHeaders(), CmdletCancellationToken).Result; return response.OperationId; } + + /// + /// Gets protection policies of matching name + /// + /// + /// + public void CheckProtectionPolicyNameAvailability(string name) + { + var policy = GetProtectionPolicyByName(name); + if (policy != null) + { + var exception = new ArgumentException("A protection policy with the specified name already exists."); + throw exception; + } + } } } \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/GetAzureBackupProtectionPolicy.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/GetAzureBackupProtectionPolicy.cs index 931504977024..b4ee5e06db79 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/GetAzureBackupProtectionPolicy.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/GetAzureBackupProtectionPolicy.cs @@ -29,7 +29,7 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets [Cmdlet(VerbsCommon.Get, "AzureBackupProtectionPolicy"), OutputType(typeof(AzureBackupProtectionPolicy), typeof(List))] public class GetAzureBackupProtectionPolicy : AzureBackupVaultCmdletBase { - [Parameter(Position = 3, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.PolicyName)] + [Parameter(Position = 1, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.PolicyName)] [ValidateNotNullOrEmpty] public string Name { get; set; } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/NewAzureBackupProtectionPolicy.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/NewAzureBackupProtectionPolicy.cs index e9c01c03d859..114801763cae 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/NewAzureBackupProtectionPolicy.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/NewAzureBackupProtectionPolicy.cs @@ -31,38 +31,38 @@ public class NewAzureBackupProtectionPolicy : AzureBackupVaultCmdletBase { protected const string WeeklyScheduleParamSet = "WeeklyScheduleParamSet"; protected const string DailyScheduleParamSet = "DailyScheduleParamSet"; - protected const string NoScheduleParamSet = "DailyScheduleParamSet"; + protected const string NoScheduleParamSet = "NoScheduleParamSet"; - [Parameter(Position = 3, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.PolicyName)] + [Parameter(Position = 1, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.PolicyName)] [ValidateNotNullOrEmpty] public string Name { get; set; } - [Parameter(Position = 4, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.WorkloadType, ValueFromPipelineByPropertyName = true)] + [Parameter(Position = 2, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.WorkloadType, ValueFromPipelineByPropertyName = true)] [ValidateSet("VM", IgnoreCase = true)] public string WorkloadType { get; set; } - [Parameter(Position = 5, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.BackupType, ValueFromPipelineByPropertyName = true)] + [Parameter(Position = 3, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.BackupType, ValueFromPipelineByPropertyName = true)] [ValidateSet("Full", IgnoreCase = true)] public string BackupType { get; set; } - [Parameter(ParameterSetName = DailyScheduleParamSet, Position = 6, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.DailyScheduleType)] + [Parameter(ParameterSetName = DailyScheduleParamSet, Position = 4, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.DailyScheduleType)] public SwitchParameter Daily { get; set; } - [Parameter(ParameterSetName = WeeklyScheduleParamSet, Position = 7, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.WeeklyScheduleType)] + [Parameter(ParameterSetName = WeeklyScheduleParamSet, Position = 5, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.WeeklyScheduleType)] public SwitchParameter Weekly { get; set; } - [Parameter(Position = 8, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.ScheduleRunTimes, ValueFromPipelineByPropertyName = true)] + [Parameter(Position = 6, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.ScheduleRunTimes, ValueFromPipelineByPropertyName = true)] public DateTime ScheduleRunTimes { get; set; } - [Parameter(Position = 9, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.RetentionType, ValueFromPipelineByPropertyName = true)] + [Parameter(Position = 7, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.RetentionType, ValueFromPipelineByPropertyName = true)] [ValidateSet("Days", "Weeks", IgnoreCase = true)] public string RetentionType { get; set; } - [Parameter(Position = 10, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.RententionDuration, ValueFromPipelineByPropertyName = true)] + [Parameter(Position = 8, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.RententionDuration, ValueFromPipelineByPropertyName = true)] public int RetentionDuration { get; set; } - [Parameter(ParameterSetName = WeeklyScheduleParamSet, Position = 11, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.ScheduleRunDays, ValueFromPipelineByPropertyName = true)] - [Parameter(ParameterSetName = NoScheduleParamSet, Position = 11, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ScheduleRunDays, ValueFromPipelineByPropertyName = true)] + [Parameter(ParameterSetName = WeeklyScheduleParamSet, Position = 9, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.ScheduleRunDays, ValueFromPipelineByPropertyName = true)] + [Parameter(ParameterSetName = NoScheduleParamSet, Position = 9, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ScheduleRunDays, ValueFromPipelineByPropertyName = true)] [AllowEmptyCollection] [ValidateSet("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", IgnoreCase = true)] public string[] ScheduleRunDays { get; set; } @@ -74,7 +74,11 @@ public override void ExecuteCmdlet() base.ExecuteCmdlet(); WriteDebug("Making client call"); - var ScheduleType = GetScheduleType(ScheduleRunDays); + ProtectionPolicyHelpers.ValidateProtectionPolicyName(Name); + AzureBackupClient.CheckProtectionPolicyNameAvailability(this.Name); + + var ScheduleType = ProtectionPolicyHelpers.GetScheduleType(ScheduleRunDays, this.ParameterSetName, + DailyScheduleParamSet, WeeklyScheduleParamSet); var backupSchedule = ProtectionPolicyHelpers.FillBackupSchedule(BackupType, ScheduleType, ScheduleRunTimes, RetentionType, RetentionDuration, ScheduleRunDays); @@ -91,20 +95,6 @@ public override void ExecuteCmdlet() WriteObject(ProtectionPolicyHelpers.GetCmdletPolicy(vault, policyInfo)); }); } - - private string GetScheduleType(string[] ScheduleRunDays) - { - WriteDebug("ParameterSetName = " + this.ParameterSetName.ToString()); - - if (ScheduleRunDays != null && ScheduleRunDays.Length > 0) - { - return ScheduleType.Weekly.ToString(); - } - else - { - return ScheduleType.Daily.ToString(); - } - } } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs index 5b33b7f0d435..90d90606e3a6 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs @@ -74,8 +74,13 @@ public override void ExecuteCmdlet() var policyInfo = ProtectionPolicyHelpers.GetCmdletPolicy(vault, response); + if (policyInfo == null) + { + throw new ArgumentException(String.Format("Protection policy {0} not found", ProtectionPolicy.Name)); + } + // TODO: Make the below function work with AzureBackupProtectionPolicy - FillRemainingValuesForSetPolicyRequest(policyInfo); + FillRemainingValuesForSetPolicyRequest(policyInfo, this.NewName); var backupSchedule = ProtectionPolicyHelpers.FillBackupSchedule(BackupType, policyInfo.ScheduleType, ScheduleRunTimes, RetentionType, RetentionDuration, policyInfo.ScheduleRunDays.ToArray()); @@ -85,68 +90,66 @@ public override void ExecuteCmdlet() updateProtectionPolicyRequest.PolicyName = this.NewName; updateProtectionPolicyRequest.Schedule = backupSchedule; - if (policyInfo != null) - { - // TODO: Add Async handling - // BUG: Update API in hydra doesn't return OperationResponse rather than AzureOperationResponse - var operationId = AzureBackupClient.UpdateProtectionPolicy(policyInfo.InstanceId, updateProtectionPolicyRequest); - - if(operationId != Guid.Empty) - { - var operationStatus = GetOperationStatus(operationId); - WriteDebug("Protection Policy successfully updated and created job(s) to re-configure protection on associated items"); - WriteObject(operationStatus.Jobs); - } - - else - { - WriteDebug("Protection Policy successfully updated"); - } + var operationId = AzureBackupClient.UpdateProtectionPolicy(policyInfo.InstanceId, updateProtectionPolicyRequest); + if (operationId != Guid.Empty) + { + var operationStatus = GetOperationStatus(operationId); + WriteDebug("Protection Policy successfully updated and created job(s) to re-configure protection on associated items"); + WriteObject(operationStatus.Jobs); } + else { - // TODO: Validate proper error message is delivered to user. - throw new ArgumentException(String.Format("Protection policy {0} not found", ProtectionPolicy.Name)); + WriteDebug("Protection Policy successfully updated"); } + }); } - private void FillRemainingValuesForSetPolicyRequest(AzureBackupProtectionPolicy policy) + private void FillRemainingValuesForSetPolicyRequest(AzureBackupProtectionPolicy policy, string newName) { - if(string.IsNullOrEmpty(BackupType)) - { - BackupType = policy.BackupType; - } - - if (ScheduleRunTimes == null || ScheduleRunTimes == DateTime.MinValue) + if (newName != null && NewName != policy.Name) { - ScheduleRunTimes = policy.ScheduleRunTimes; + ProtectionPolicyHelpers.ValidateProtectionPolicyName(this.NewName); + AzureBackupClient.CheckProtectionPolicyNameAvailability(this.NewName); } - if (string.IsNullOrEmpty(RetentionType)) - { - RetentionType = policy.RetentionType; - } + BackupType = (string.IsNullOrEmpty(BackupType)) ? policy.BackupType : BackupType; - if (RetentionDuration == 0) - { - RetentionDuration = policy.RetentionDuration; - } + ScheduleRunTimes = (ScheduleRunTimes == DateTime.MinValue) ? policy.ScheduleRunTimes : + ScheduleRunTimes; + + RetentionType = (string.IsNullOrEmpty(RetentionType)) ? policy.RetentionType : RetentionType ; + + RetentionDuration = (RetentionDuration == 0) ? policy.RetentionDuration : RetentionDuration; + + WriteDebug("ParameterSetName = " + this.ParameterSetName.ToString()); if (this.ParameterSetName != NoScheduleParamSet ) { - if (ScheduleRunDays != null && ScheduleRunDays.Length > 0) + if (ScheduleRunDays != null && ScheduleRunDays.Length > 0 && + this.ParameterSetName == WeeklyScheduleParamSet) { policy.ScheduleType = ScheduleType.Weekly.ToString(); policy.ScheduleRunDays = ScheduleRunDays.ToList(); } - else + else if (this.ParameterSetName == DailyScheduleParamSet && + (ScheduleRunDays == null || ScheduleRunDays.Length <= 0)) { policy.ScheduleType = ScheduleType.Daily.ToString(); policy.ScheduleRunDays = new List(); - } - + } + else + { + policy.ScheduleType = ProtectionPolicyHelpers.GetScheduleType(ScheduleRunDays, this.ParameterSetName, + DailyScheduleParamSet, WeeklyScheduleParamSet); + + } + } + else if(ScheduleRunDays != null && ScheduleRunDays.Length > 0) + { + throw new ArgumentException("For Schedule Run Days, weekly switch param is required"); } } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs index 6430c26ed5be..1fdaa1d56ed4 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs @@ -30,6 +30,7 @@ using CmdletModel = Microsoft.Azure.Commands.AzureBackup.Models; using System.Collections.Specialized; using System.Web; +using System.Text.RegularExpressions; namespace Microsoft.Azure.Commands.AzureBackup.Helpers { @@ -39,6 +40,9 @@ public static class ProtectionPolicyHelpers public const int MaxRetentionInDays = 30; public const int MinRetentionInWeeks = 1; public const int MaxRetentionInWeeks = 4; + public const int MinPolicyNameLength = 3; + public const int MaxPolicyNameLength = 150; + public static Regex rgx = new Regex(@"^[A-Za-z][-A-Za-z0-9]*[A-Za-z0-9]$"); public static AzureBackupProtectionPolicy GetCmdletPolicy(CmdletModel.AzurePSBackupVault vault, ProtectionPolicyInfo sourcePolicy) { @@ -50,7 +54,7 @@ public static AzureBackupProtectionPolicy GetCmdletPolicy(CmdletModel.AzurePSBac return new AzureBackupProtectionPolicy(vault, sourcePolicy); } - public static List GetCmdletPolicies(CmdletModel.AzurePSBackupVault vault, IEnumerable sourcePolicyList) + public static IEnumerable GetCmdletPolicies(CmdletModel.AzurePSBackupVault vault, IEnumerable sourcePolicyList) { if (sourcePolicyList == null) { @@ -90,6 +94,48 @@ public static BackupSchedule FillBackupSchedule(string backupType, string schedu return backupSchedule; } + public static void ValidateProtectionPolicyName(string policyName) + { + if(policyName.Length < MinPolicyNameLength || policyName.Length > MaxPolicyNameLength) + { + var exception = new ArgumentException("The protection policy name must contain between 3 and 150 characters."); + throw exception; + } + + if(!rgx.IsMatch(policyName)) + { + var exception = new ArgumentException("The protection policy name should contain alphanumeric characters and cannot start with a number."); + throw exception; + } + } + + public static string GetScheduleType(string[] ScheduleRunDays, string parameterSetName, + string dailyParameterSet, string weeklyParameterSet) + { + if (ScheduleRunDays != null && ScheduleRunDays.Length > 0) + { + if (parameterSetName == dailyParameterSet) + { + throw new ArgumentException("For daily schedule, protection policy cannot have scheduleRundays"); + } + else + { + return ScheduleType.Weekly.ToString(); + } + } + else + { + if (parameterSetName == weeklyParameterSet) + { + throw new ArgumentException("For weekly schedule, ScheduleRundays param cannot be empty"); + } + else + { + return ScheduleType.Daily.ToString(); + } + } + } + private static RetentionPolicy FillRetentionPolicy(string retentionType, int retentionDuration) { ValidateRetentionRange(retentionType, retentionDuration); From 040eff942a0444afc36fb731d508d8eee279c408 Mon Sep 17 00:00:00 2001 From: pragrawa Date: Sat, 4 Jul 2015 04:05:38 +0530 Subject: [PATCH 02/58] Merge Conflict --- .../AzureBackupClientAdapter/PolicyAdapter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs index 97cd52166e5a..1a52bdd4fae8 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs @@ -85,7 +85,7 @@ public Guid UpdateProtectionPolicy(string policyId, UpdateProtectionPolicyReques } /// - /// Gets protection policies of matching name + /// Check protection policy name availability /// /// /// From 5c203b75d13d541522f75102b17f04badd35861e Mon Sep 17 00:00:00 2001 From: mkherani Date: Mon, 6 Jul 2015 15:00:24 +0530 Subject: [PATCH 03/58] [3435722]: Unregister-AzureBackupContainer has a filter named "AzureBackupContainer" instead of "Container" --- .../Container/UnregisterAzureBackupContainer.cs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs index b3ee567b2e5e..c2dadc1e9e0b 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs @@ -30,23 +30,19 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets /// Get list of containers /// [Cmdlet(VerbsLifecycle.Unregister, "AzureBackupContainer"), OutputType(typeof(string))] - public class UnregisterAzureBackupContainer : AzureBackupVaultCmdletBase + public class UnregisterAzureBackupContainer : AzureBackupContainerCmdletBase { - [Parameter(Position = 1, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.AzureBackupContainerToUnregister, ValueFromPipeline = true)] - [ValidateNotNullOrEmpty] - public AzureBackupContainer AzureBackupContainer { get; set; } - public override void ExecuteCmdlet() { ExecutionBlock(() => { base.ExecuteCmdlet(); - string containerUniqueName = AzureBackupContainer.ContainerUniqueName; + string containerUniqueName = Container.ContainerUniqueName; UnregisterContainerRequestInput unregRequest = new UnregisterContainerRequestInput(containerUniqueName, AzureBackupContainerType.IaasVMContainer.ToString()); var operationId = AzureBackupClient.UnRegisterContainer(unregRequest); - WriteObject(GetCreatedJobs(Vault, GetOperationStatus(operationId).Jobs).FirstOrDefault()); + WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Container.ResourceGroupName, Container.ResourceName, Container.Location), GetOperationStatus(operationId).Jobs).FirstOrDefault()); }); } } From 13463f3d34738654650e103a003d803011cc87aa Mon Sep 17 00:00:00 2001 From: dragonfly91 Date: Tue, 7 Jul 2015 16:14:38 +0530 Subject: [PATCH 04/58] Adding other cmdlets part 1 --- locker/Constants.cs | 27 +++ locker/ListContainerQueryParameter.cs | 41 ++++ .../Commands.AzureBackup.Test.csproj | 15 ++ .../AzureBackupContainerTests.cs | 46 +++++ .../AzureBackupContainerTests.ps1 | 60 ++++++ .../ScenarioTests/AzureBackupItem.cs | 82 ++++++++ .../ScenarioTests/AzureBackupItemTestCases.cs | 40 ++++ .../AzureBackupItemTestCases.ps1 | 75 +++++++ .../ScenarioTests/AzureBackupJobHelper.cs | 88 ++++++++ .../ScenarioTests/AzureBackupJobTests.cs | 35 ++++ .../ScenarioTests/AzureBackupJobTests.ps1 | 62 ++++++ .../ScenarioTests/AzureBackupPolicyTests.cs | 54 +++++ .../ScenarioTests/AzureBackupPolicyTests.ps1 | 128 ++++++++++++ .../ScenarioTests/AzureBackupRecoveryPoint.cs | 70 +++++++ .../ScenarioTests/BackupItemTests.cs | 28 +++ .../ScenarioTests/BackupItemTests.ps1 | 24 +++ .../ScenarioTests/RecoveryPointTests.cs | 28 +++ .../ScenarioTests/RecoveryPointTests.ps1 | 33 +++ .../ContainerAdapter.cs | 78 +++++++ .../AzureBackupClientAdapter/ItemAdapter.cs | 107 ++++++++++ .../AzureBackupClientAdapter/JobAdapter.cs | 53 +++++ .../OperationStatusAdapter.cs | 39 ++++ .../AzureBackupCmdletHelpMessage.cs | 56 +++++ .../AzureBackupContainerCmdletBase.cs | 45 ++++ .../AzureBackupDSCmdletBase.cs | 46 +++++ .../AzureBackupItemCmdletBase.cs | 44 ++++ .../AzureBackupPolicyCmdletBase.cs | 49 +++++ .../Cmdlets/Backup/TriggerBackUp.cs | 53 +++++ .../Container/GetAzureBackupContainer.cs | 131 ++++++++++++ .../Container/RegisterAzureBackupContainer.cs | 194 ++++++++++++++++++ .../Item/Disable-AzureBackupProtection .cs | 79 +++++++ .../Item/Enable-AzureBackupProtection .cs | 79 +++++++ .../Cmdlets/Item/GetAzureBackupItem.cs | 121 +++++++++++ .../Cmdlets/Jobs/AzureBackupJobHelper.cs | 88 ++++++++ .../Cmdlets/Jobs/GetAzureBackupJob.cs | 161 +++++++++++++++ .../Cmdlets/Jobs/GetAzureBackupJobDetails.cs | 68 ++++++ .../Cmdlets/Jobs/StopAzureBackukpJob.cs | 76 +++++++ .../Cmdlets/Jobs/WaitAzureBackupJob.cs | 155 ++++++++++++++ .../RemoveAzureBackupProtectionPolicy.cs | 53 +++++ .../GetAzureBackupRecoveryPoint.cs | 90 ++++++++ .../Commands.AzureBackup.csproj | 34 +++ .../Helpers/ContainerHelpers.cs | 67 ++++++ .../Models/AzureBackupBaseObjects.cs | 81 ++++++++ .../Models/AzureBackupContainer.cs | 60 ++++++ .../Models/AzureBackupItem.cs | 82 ++++++++ .../Models/AzureBackupRecoveryPoint.cs | 70 +++++++ .../Commands.AzureBackup/Models/JobObjects.cs | 148 +++++++++++++ .../Models/ListContainerQueryParameter.cs | 41 ++++ .../Models/ProtectionPolicy.cs | 89 ++++++++ 49 files changed, 3473 insertions(+) create mode 100644 locker/Constants.cs create mode 100644 locker/ListContainerQueryParameter.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupContainerTests.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupContainerTests.ps1 create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItem.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupJobHelper.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupJobTests.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupJobTests.ps1 create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupRecoveryPoint.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/BackupItemTests.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/BackupItemTests.ps1 create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/JobAdapter.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupContainerCmdletBase.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupDSCmdletBase.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupItemCmdletBase.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupPolicyCmdletBase.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/AzureBackupJobHelper.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJob.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJobDetails.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/WaitAzureBackupJob.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/RemoveAzureBackupProtectionPolicy.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ContainerHelpers.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupContainer.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupRecoveryPoint.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/JobObjects.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ListContainerQueryParameter.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs diff --git a/locker/Constants.cs b/locker/Constants.cs new file mode 100644 index 000000000000..f22d134b53b6 --- /dev/null +++ b/locker/Constants.cs @@ -0,0 +1,27 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + public class Constants + { + public const int VaultCertificateExpiryInHoursForBackup = 48; + } +} diff --git a/locker/ListContainerQueryParameter.cs b/locker/ListContainerQueryParameter.cs new file mode 100644 index 000000000000..08de6d174ffe --- /dev/null +++ b/locker/ListContainerQueryParameter.cs @@ -0,0 +1,41 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Management.BackupServices.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Commands.AzureBackup.Models +{ + internal class ListContainerQueryParameter : ManagementBaseObject + { + /// + ///Containers information for registration + /// + public string ContainerTypeField { get; set; } + + /// + ///Containers status information + /// + public string ContainerStatusField { get; set; } + + /// + ///Containers status information + /// + public string ContainerFriendlyNameField { get; set; } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj index c4b59a0d3610..a63966bbac96 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj @@ -123,11 +123,20 @@ + + + + + + + Code + + @@ -153,9 +162,15 @@ Designer + + + + Always + + Always diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupContainerTests.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupContainerTests.cs new file mode 100644 index 000000000000..6289e8cd69bf --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupContainerTests.cs @@ -0,0 +1,46 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Xunit; + +namespace Microsoft.Azure.Commands.AzureBackup.Test.ScenarioTests +{ + public class AzureBackupContainerTests : AzureBackupTestsBase + { + [Fact] + public void GetAzureBackupContainerTests() + { + this.RunPowerShellTest("Test-GetAzureBackupContainerWithoutFilterReturnsNonZeroContainers"); + + this.RunPowerShellTest("Test-GetAzureBackupContainerWithUniqueFilterReturnsOneContainer"); + } + + [Fact] + public void RegisterAzureBackupContainerTest() + { + this.RunPowerShellTest("Test-RegisterAzureBackupContainer"); + } + + [Fact] + public void UnregisterAzureBackupContainerTest() + { + this.RunPowerShellTest("Test-UnregisterAzureBackupContainer"); + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupContainerTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupContainerTests.ps1 new file mode 100644 index 000000000000..33f834e7420e --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupContainerTests.ps1 @@ -0,0 +1,60 @@ +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +$ResourceGroupName = "backuprg" +$ResourceName = "backuprn" +$Location = "westus" +$ManagedResourceGroupName = "powershellbvt" +$ManagedResourceName = "powershellbvt" + +<# +.SYNOPSIS +Tests to test list containers +#> +function Test-GetAzureBackupContainerWithoutFilterReturnsNonZeroContainers +{ + $vault = Get-AzureBackupVault -Name $ResourceName; + $containers = Get-AzureBackupContainer -vault $vault; + Assert-NotNull $containers 'Container list should not be null'; +} + +function Test-GetAzureBackupContainerWithUniqueFilterReturnsOneContainer +{ + $vault = Get-AzureBackupVault -Name $ResourceName; + $container = Get-AzureBackupContainer -vault $vault -ManagedResourceGroupName $ManagedResourceGroupName -ManagedResourceName $ManagedResourceName + Assert-NotNull $container 'Container should not be null'; + Assert-AreEqual $container.ManagedResourceName $ManagedResourceName -CaseSensitive 'Returned container resource name (a.k.a friendly name) does not match the test VM resource name'; + Assert-AreEqual $container.ManagedResourceGroupName $ManagedResourceGroupName -CaseSensitive 'Returned container resource group name (a.k.a parent friendly name) does not match the test VM resource group name'; +} + +<# +.SYNOPSIS +Tests to register the container +#> +function Test-RegisterAzureBackupContainer +{ + $vault = Get-AzureBackupVault -Name $ResourceName; + $jobId = Register-AzureBackupContainer -vault $vault -Name $ManagedResourceName -ServiceName $ManagedResourceGroupName + + Assert-NotNull $jobId 'Job should not be null'; +} + +function Test-UnregisterAzureBackupContainer +{ + $vault = Get-AzureBackupVault -Name $ResourceName; + $container = Get-AzureBackupContainer -vault $vault -ManagedResourceName $ManagedResourceName -ManagedResourceGroupName $ManagedResourceGroupName + $jobId = Unregister-AzureBackupContainer -vault $vault -AzureBackupContainer $container + + Assert-NotNull $jobId 'Job should not be null'; +} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItem.cs new file mode 100644 index 000000000000..8dd3912938d1 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItem.cs @@ -0,0 +1,82 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.Azure.Management.BackupServices.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.Models +{ + /// + /// Represents Azure Backup Item + /// + public class AzureBackupItem : AzureBackupItemContextObject + { + /// + /// Status for the Azure Backup Item + /// + public string DataSourceStatus { get; set; } + + /// + /// Protection Status for the Azure Backup Item + /// + public string ProtectionStatus { get; set; } + + /// + /// Protectable Object Name for the Azure Backup Item + /// + public string Name { get; set; } + + /// + /// Protection Policy Name for the Azure Backup Item + /// + public string ProtectionPolicyName { get; set; } + + /// + /// Protection Policy Id for the Azure Backup Item + /// + public string ProtectionPolicyId { get; set; } + + /// + /// Recovery Points Count for the Azure Backup Item + /// + public int RecoveryPointsCount { get; set; } + + public AzureBackupItem() + : base() + { + } + + public AzureBackupItem(DataSourceInfo datasource, AzureBackupContainer azureBackupContainer) + : base(datasource, azureBackupContainer) + { + DataSourceStatus = datasource.Status; + ProtectionStatus = datasource.ProtectionStatus; + Name = datasource.Name; + ProtectionPolicyName = datasource.ProtectionPolicyName; + ProtectionPolicyId = datasource.ProtectionPolicyId; + RecoveryPointsCount = datasource.RecoveryPointsCount; + } + + public AzureBackupItem(ProtectableObjectInfo pPOItem, AzureBackupContainer azureBackupContainer) + : base(pPOItem, azureBackupContainer) + { + ProtectionStatus = pPOItem.ProtectionStatus; + Name = pPOItem.Name; + } + } +} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.cs new file mode 100644 index 000000000000..a1b7755e3f49 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.cs @@ -0,0 +1,40 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Microsoft.Azure.Commands.AzureBackup.Test.ScenarioTests +{ + public class AzureBackupItemTestCases : AzureBackupTestsBase + { + [Fact] + public void ListAzureBackupItemTests() + { + this.RunPowerShellTest("Test-GetAzureBackupItemTests"); + } + + [Fact] + public void EnableAzureBackupProtectionTest() + { + this.RunPowerShellTest("Test-EnableAzureBackupProtection"); + } + + [Fact] + public void DisableAzureBackupProtectionTest() + { + this.RunPowerShellTest("Test-DisableAzureBackupProtection"); + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 new file mode 100644 index 000000000000..e34ba7283915 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 @@ -0,0 +1,75 @@ +$ResourceGroupName = "backuprg" +$ResourceName = "backuprn" +$ContainerName = "iaasvmcontainer;dev01testing;dev01testing" +$ContainerType = "IaasVMContainer" +$DataSourceType = "VM" +$DataSourceId = "17593283453810" +$Location = "SouthEast Asia" +$PolicyName = "Policy9"; +$PolicyId = "c87bbada-6e1b-4db2-b76c-9062d28959a4"; +$POName = "iaasvmcontainer;dev01testing;dev01testing" + + +function Test-GetAzureBackupItemTests +{ + $azureBackUpContainer = New-Object Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupContainer + $azureBackUpContainer.ResourceGroupName = $ResourceGroupName + $azureBackUpContainer.ResourceName = $ResourceName + $azureBackUpContainer.Location = $Location + $azureBackUpContainer.ContainerUniqueName = $ContainerName + $azureBackUpContainer.ContainerType = $ContainerType + $item = Get-AzureBackupItem -Container $azureBackUpContainer + if (!($item -eq $null)) + { + foreach($backupitem in $item) + { + Assert-NotNull $backupitem.ProtectionStatus 'ProtectionStatus should not be null' + Assert-NotNull $backupitem.Name 'Name should not be null' + Assert-NotNull $backupitem.Type 'Type should not be null' + Assert-NotNull $backupitem.ContainerType 'ContainerType should not be null' + Assert-NotNull $backupitem.ContainerUniqueName 'ContainerUniqueName should not be null' + Assert-NotNull $backupitem.ResourceGroupName 'ResourceGroupName should not be null' + Assert-NotNull $backupitem.ResourceName 'ResourceName should not be null' + Assert-NotNull $backupitem.Location 'Location should not be null' + } + } +} + +function Test-EnableAzureBackupProtection +{ + $policy = New-Object Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupProtectionPolicy + $policy.InstanceId = $PolicyId + $policy.Name = $PolicyName + $policy.ResourceGroupName = $ResourceGroupName + $policy.ResourceName = $ResourceName + $policy.Location = $Location + $policy.WorkloadType = "VM" + $policy.RetentionType = "1" + $policy.ScheduleRunTimes = "2015-06-13T20:30:00" + + $azureBackUpItem = New-Object Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupItem + $azureBackUpItem.ResourceGroupName = $ResourceGroupName + $azureBackUpItem.ResourceName = $ResourceName + $azureBackUpItem.Location = $Location + $azureBackUpItem.ContainerUniqueName = $ContainerName + $azureBackUpItem.ContainerType = $ContainerType + $azureBackUpItem.DataSourceId = $DataSourceId + $azureBackUpItem.Type = $DataSourceType + $azureBackUpItem.Name = $POName + $jobId = Enable-AzureBackupProtection -Item $azureBackUpItem -Policy $policy + +} + +function Test-DisableAzureBackupProtection +{ + $azureBackUpItem = New-Object Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupItem + $azureBackUpItem.ResourceGroupName = $ResourceGroupName + $azureBackUpItem.ResourceName = $ResourceName + $azureBackUpItem.Location = $Location + $azureBackUpItem.ContainerUniqueName = $ContainerName + $azureBackUpItem.ContainerType = $ContainerType + $azureBackUpItem.DataSourceId = $DataSourceId + $azureBackUpItem.Type = $DataSourceType + $azureBackUpItem.Name = $POName + $jobId1 = Disable-AzureBackupProtection -Item $azureBackUpItem +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupJobHelper.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupJobHelper.cs new file mode 100644 index 000000000000..f014ad459864 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupJobHelper.cs @@ -0,0 +1,88 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using System.Linq; +using Mgmt = Microsoft.Azure.Management.BackupServices.Models; + + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + public enum JobStatus + { + Invalid = 0, + + InProgress, + + Completed, + + Failed, + + CompletedWithWarnings, + + Cancelled, + + Cancelling + } + + public enum JobOperationType + { + Invalid = 0, + + Register, + + ConfigureBackup, + + Backup, + + Restore, + + UnProtect, + + DeleteBackupData, + + Unregister + } + + public static class AzureBackupJobHelper + { + public static bool IsValidStatus(string inputStatus) + { + JobStatus status; + if(!Enum.TryParse(inputStatus, out status) || status == JobStatus.Invalid) + { + return false; + } + return true; + } + + public static bool IsValidOperationType(string inputOperationType) + { + JobOperationType operationType; + if(!Enum.TryParse(inputOperationType, out operationType) || operationType == JobOperationType.Invalid) + { + return false; + } + return true; + } + + public static bool IsJobRunning(string status) + { + return ((status.CompareTo("InProgress") == 0) || (status.CompareTo("Cancelling") == 0)); + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupJobTests.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupJobTests.cs new file mode 100644 index 000000000000..6a5cad692eae --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupJobTests.cs @@ -0,0 +1,35 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Microsoft.Azure.Commands.AzureBackup.Test.ScenarioTests +{ + public class AzureBackupJobTests : AzureBackupTestsBase + { + + [Fact] + public void GetAzureBackupJobTests() + { + this.RunPowerShellTest("Test-GetAzureBackupJob"); + } + + [Fact] + public void StopAzureBackupJobTests() + { + this.RunPowerShellTest("Test-StopAzureBackupJob"); + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupJobTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupJobTests.ps1 new file mode 100644 index 000000000000..d63ea8fc45d8 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupJobTests.ps1 @@ -0,0 +1,62 @@ +$ResourceGroupName = "backuprg" +$ResourceName = "backuprn" +$ContainerName = "iaasvmcontainer;dev01testing;dev01testing" +$ContainerType = "IaasVMContainer" +$DataSourceType = "VM" +$DataSourceId = "17593283453810" +$Location = "SouthEast Asia" +$PolicyName = "Policy9"; +$PolicyId = "c87bbada-6e1b-4db2-b76c-9062d28959a4"; +$POName = "iaasvmcontainer;dev01testing;dev01testing" + + +function Test-GetAzureBackupJob +{ + $vault = Get-AzureBackupVault -Name $ResourceName; + $OneMonthBack = Get-Date; + $OneMonthBack = $OneMonthBack.AddDays(-30); + $jobs = Get-AzureBackupJob -Vault $vault -From $OneMonthBack + Assert-NotNull $jobs 'Jobs list should not be null' + foreach($job in $jobs) + { + Assert-NotNull $jobs.InstanceId 'JobID should not be null'; + Assert-NotNull $jobs.StartTime 'StartTime should not be null'; + Assert-NotNull $jobs.WorkloadType 'WorkloadType should not be null'; + Assert-NotNull $jobs.WorkloadName 'WorkloadName should not be null'; + Assert-NotNull $jobs.Status 'Status should not be null'; + Assert-NotNull $jobs.Operation 'Operation should not be null'; + + $jobDetails = Get-AzureBackupJobDetails -Job $job + Assert-NotNull $jobDetails.InstanceId 'JobID should not be null'; + Assert-NotNull $jobDetails.StartTime 'StartTime should not be null'; + Assert-NotNull $jobDetails.WorkloadType 'WorkloadType should not be null'; + Assert-NotNull $jobDetails.WorkloadName 'WorkloadName should not be null'; + Assert-NotNull $jobDetails.Status 'Status should not be null'; + Assert-NotNull $jobDetails.Operation 'Operation should not be null'; + Assert-NotNull $jobDetails.Properties 'Properties in job details cannot be null'; + Assert-NotNull $jobDetails.SubTasks 'SubTasks in job details cannot be null'; + } +} + + +function Test-StopAzureBackupJob +{ + $OneMonthBack = Get-Date; + $OneMonthBack = $OneMonthBack.AddDays(-30); + + $azureBackUpItem = New-Object Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupItem + $azureBackUpItem.ResourceGroupName = $ResourceGroupName + $azureBackUpItem.ResourceName = $ResourceName + $azureBackUpItem.Location = $Location + $azureBackUpItem.ContainerUniqueName = $ContainerName + $azureBackUpItem.ContainerType = $ContainerType + $azureBackUpItem.DataSourceId = $DataSourceId + $azureBackUpItem.Type = $DataSourceType + + $job = Backup-AzureBackupItem -Item $azureBackUpItem + + Stop-AzureBackupJob -Job $job; + Wait-AzureBackupJob -Job $job; + $jobDetails = Get-AzureBackupJobDetails -Job $job; + Assert-AreEqual 'Cancelled' $jobDetails.Status +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.cs new file mode 100644 index 000000000000..2b4b4c8b683a --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.cs @@ -0,0 +1,54 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Microsoft.Azure.Commands.AzureBackup.Test.ScenarioTests +{ + public class AzureBackupPolicyTests : AzureBackupTestsBase + { + [Fact] + public void ListProtectionPolicyTests() + { + this.RunPowerShellTest("Test-GetAzureBackupProtectionPolicyTests"); + } + + [Fact] + public void NewProtectionPolicyTests() + { + this.RunPowerShellTest("Test-NewAzureBackupProtectionPolicyTests"); + } + + [Fact] + public void ListProtectionPolicyByNameTests() + { + this.RunPowerShellTest("Test-GetAzureBackupProtectionPolicyByNameTests"); + } + + [Fact] + public void SetProtectionPolicyTests() + { + this.RunPowerShellTest("Test-SetAzureBackupProtectionPolicyTests"); + } + + [Fact] + public void RemoveProtectionPolicyTests() + { + this.RunPowerShellTest("Test-RemoveAzureBackupProtectionPolicyTests"); + } + + + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 new file mode 100644 index 000000000000..e336515c096f --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 @@ -0,0 +1,128 @@ +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +$ResourceGroupName = "backuprg" +$ResourceName = "backuprn" +$DataSourceType = "VM" +$Location = "SouthEast Asia" +$PolicyName = "Policy10"; +$PolicyId = "c87bbada-6e1b-4db2-b76c-9062d28959a4"; +$POName = "iaasvmcontainer;dev01testing;dev01testing" +$WorkloadType = "VM" +$RetentionType = "Days" +$ScheduleRunTimes = "2015-06-13T20:30:00" +$ScheduleRunDays = "Monday" +$RetentionDuration = 30 +$BackupType = "Full" +$ScheduleType = "Daily" + +<# +.SYNOPSIS +Tests creating new resource group and a simple resource. +#> +function Test-GetAzureBackupProtectionPolicyTests +{ + $vault = Get-AzureBackupVault -Name $ResourceName; + $protectionPolicies = Get-AzureBackupProtectionPolicy -vault $vault + Assert-NotNull $protectionPolicies 'Protection Policies should not be null' + foreach($protectionPolicy in $protectionPolicies) + { + Assert-NotNull $protectionPolicy.InstanceId 'InstanceId should not be null' + Assert-NotNull $protectionPolicy.Name 'Name should not be null' + Assert-NotNull $protectionPolicy.WorkloadType 'WorkloadType should not be null' + Assert-NotNull $protectionPolicy.BackupType 'BackupType should not be null' + Assert-NotNull $protectionPolicy.ScheduleRunTimes 'ScheduleRunTimes should not be null' + Assert-NotNull $protectionPolicy.RetentionDuration 'RetentionDuration should not be null' + Assert-NotNull $protectionPolicy.ResourceGroupName 'ResourceGroupName should not be null' + Assert-NotNull $protectionPolicy.ResourceName 'ResourceName should not be null' + Assert-NotNull $protectionPolicy.Location 'Location should not be null' + } +} + +function Test-GetAzureBackupProtectionPolicyByNameTests +{ + $vault = Get-AzureBackupVault -Name $ResourceName; + $protectionPolicy = Get-AzureBackupProtectionPolicy -vault $vault -Name $PolicyName + + Assert-NotNull $protectionPolicy.InstanceId 'InstanceId should not be null' + Assert-NotNull $protectionPolicy.Name 'Name should not be null' + Assert-NotNull $protectionPolicy.WorkloadType 'WorkloadType should not be null' + Assert-NotNull $protectionPolicy.BackupType 'BackupType should not be null' + Assert-NotNull $protectionPolicy.ScheduleRunTimes 'ScheduleRunTimes should not be null' + Assert-NotNull $protectionPolicy.RetentionDuration 'RetentionDuration should not be null' + Assert-NotNull $protectionPolicy.ResourceGroupName 'ResourceGroupName should not be null' + Assert-NotNull $protectionPolicy.ResourceName 'ResourceName should not be null' + Assert-NotNull $protectionPolicy.Location 'Location should not be null' + +} + +function Test-NewAzureBackupProtectionPolicyTests +{ + $vault = Get-AzureBackupVault -Name $ResourceName; + $protectionPolicy = New-AzureBackupProtectionPolicy -vault $vault -Name $PolicyName -WorkloadType $WorkloadType -BackupType $BackupType -Daily -RetentionType $RetentionType -RetentionDuration $RetentionDuration -ScheduleRunTimes $ScheduleRunTimes + + Assert-NotNull $protectionPolicy.InstanceId 'InstanceId should not be null' + Assert-NotNull $protectionPolicy.Name 'Name should not be null' + Assert-NotNull $protectionPolicy.WorkloadType 'WorkloadType should not be null' + Assert-NotNull $protectionPolicy.BackupType 'BackupType should not be null' + Assert-NotNull $protectionPolicy.ScheduleRunTimes 'ScheduleRunTimes should not be null' + Assert-NotNull $protectionPolicy.RetentionDuration 'RetentionDuration should not be null' + Assert-NotNull $protectionPolicy.ResourceGroupName 'ResourceGroupName should not be null' + Assert-NotNull $protectionPolicy.ResourceName 'ResourceName should not be null' + Assert-NotNull $protectionPolicy.Location 'Location should not be null' +} + +function Test-SetAzureBackupProtectionPolicyTests +{ + $policy = New-Object Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupProtectionPolicy + $policy.InstanceId = $PolicyId + $policy.Name = $PolicyName + $policy.ResourceGroupName = $ResourceGroupName + $policy.ResourceName = $ResourceName + $policy.Location = $Location + $policy.WorkloadType = $WorkloadType + $policy.RetentionType = $RetentionType + $policy.ScheduleRunTimes = $ScheduleRunTimes + $policy.ScheduleType = $ScheduleType + $policyNewName = "policy09_new" + + $protectionPolicy = Set-AzureBackupProtectionPolicy -ProtectionPolicy $policy -NewName $policyNewName + + Assert-NotNull $protectionPolicy.InstanceId 'InstanceId should not be null' + Assert-NotNull $protectionPolicy.Name 'Name should not be null' + Assert-NotNull $protectionPolicy.WorkloadType 'WorkloadType should not be null' + Assert-NotNull $protectionPolicy.BackupType 'BackupType should not be null' + Assert-NotNull $protectionPolicy.ScheduleRunTimes 'ScheduleRunTimes should not be null' + Assert-NotNull $protectionPolicy.RetentionDuration 'RetentionDuration should not be null' + Assert-NotNull $protectionPolicy.ResourceGroupName 'ResourceGroupName should not be null' + Assert-NotNull $protectionPolicy.ResourceName 'ResourceName should not be null' + Assert-NotNull $protectionPolicy.Location 'Location should not be null' +} + +function Test-RemoveAzureBackupProtectionPolicyTests +{ + $policyNewName = "policy09_new" + $policy = New-Object Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupProtectionPolicy + $policy.InstanceId = $PolicyId + $policy.Name = $policyNewName + $policy.ResourceGroupName = $ResourceGroupName + $policy.ResourceName = $ResourceName + $policy.Location = $Location + $policy.WorkloadType = $WorkloadType + $policy.RetentionType = $RetentionType + $policy.ScheduleRunTimes = $ScheduleRunTimes + $policy.ScheduleType = $ScheduleType + + Remove-AzureBackupProtectionPolicy -ProtectionPolicy $policy +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupRecoveryPoint.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupRecoveryPoint.cs new file mode 100644 index 000000000000..1ad78baf3177 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupRecoveryPoint.cs @@ -0,0 +1,70 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Management.BackupServices.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Commands.AzureBackup.Models +{ + public class AzureBackupRecoveryPointContextObject : AzureBackupItemContextObject + { + /// + /// RecoveryPointId of Azure Backup Item + /// + public string RecoveryPointId { get; set; } + + public AzureBackupRecoveryPointContextObject() + : base() + { + } + + public AzureBackupRecoveryPointContextObject(RecoveryPointInfo recoveryPointInfo, AzureBackupItem azureBackupItem) + : base(azureBackupItem) + { + RecoveryPointId = recoveryPointInfo.InstanceId; + } + } + + /// + /// Represents Azure Backup Container + /// + public class AzureBackupRecoveryPoint : AzureBackupRecoveryPointContextObject + { + /// + /// Last Recovery Point for the Azure Backup Item + /// + public DateTime RecoveryPointTime { get; set; } + + /// + /// DataSourceId of Azure Backup Item + /// + public string RecoveryPointType { get; set; } + + public AzureBackupRecoveryPoint() + : base() + { + } + + public AzureBackupRecoveryPoint(RecoveryPointInfo recoveryPointInfo, AzureBackupItem azureBackupItem) + : base(recoveryPointInfo, azureBackupItem) + { + RecoveryPointTime = recoveryPointInfo.RecoveryPointTime; + RecoveryPointType = recoveryPointInfo.RecoveryPointType; + } + } +} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/BackupItemTests.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/BackupItemTests.cs new file mode 100644 index 000000000000..50a9dc7a95da --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/BackupItemTests.cs @@ -0,0 +1,28 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Microsoft.Azure.Commands.AzureBackup.Test.ScenarioTests +{ + public class BackupItemTests : AzureBackupTestsBase + { + [Fact] + public void BackUpAzureBackUpItem() + { + this.RunPowerShellTest("Test-BackUpAzureBackUpItem"); + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/BackupItemTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/BackupItemTests.ps1 new file mode 100644 index 000000000000..8ae666eb3075 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/BackupItemTests.ps1 @@ -0,0 +1,24 @@ +$ResourceGroupName = "backuprg" +$ResourceName = "backuprn" +$ContainerName = "iaasvmcontainer;dev01testing;dev01testing" +$ContainerType = "IaasVMContainer" +$DataSourceType = "VM" +$DataSourceId = "17593283453810" +$Location = "SouthEast Asia" +$PolicyName = "Policy9"; +$PolicyId = "c87bbada-6e1b-4db2-b76c-9062d28959a4"; +$POName = "iaasvmcontainer;dev01testing;dev01testing" + + +function Test-BackUpAzureBackUpItem +{ + $azureBackUpItem = New-Object Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupItem + $azureBackUpItem.ResourceGroupName = $ResourceGroupName + $azureBackUpItem.ResourceName = $ResourceName + $azureBackUpItem.Location = $Location + $azureBackUpItem.ContainerUniqueName = $ContainerName + $azureBackUpItem.ContainerType = $ContainerType + $azureBackUpItem.DataSourceId = $DataSourceId + $azureBackUpItem.Type = $DataSourceType + $jobId = Backup-AzureBackupItem -Item $azureBackUpItem +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.cs new file mode 100644 index 000000000000..9622c170cc15 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.cs @@ -0,0 +1,28 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Microsoft.Azure.Commands.AzureBackup.Test.ScenarioTests +{ + public class RecoveryPointTests : AzureBackupTestsBase + { + [Fact] + public void GetRecoveryPointTests() + { + this.RunPowerShellTest("Test-GetAzureRecoveryPoint"); + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 new file mode 100644 index 000000000000..9ba98ab4fed6 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 @@ -0,0 +1,33 @@ +$ResourceGroupName = "backuprg" +$ResourceName = "backuprn" +$ContainerName = "iaasvmcontainer;dev01testing;dev01testing" +$ContainerType = "IaasVMContainer" +$DataSourceType = "VM" +$DataSourceId = "17593283453810" +$Location = "SouthEast Asia" +$PolicyName = "Policy9"; +$PolicyId = "c87bbada-6e1b-4db2-b76c-9062d28959a4"; +$POName = "iaasvmcontainer;dev01testing;dev01testing" + + +function Test-GetAzureRecoveryPoint +{ + $azureBackUpItem = New-Object Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupItem + $azureBackUpItem.ResourceGroupName = $ResourceGroupName + $azureBackUpItem.ResourceName = $ResourceGroupName + $azureBackUpItem.Location = $Location + $azureBackUpItem.ContainerUniqueName = $ContainerName + $azureBackUpItem.ContainerType = $ContainerType + $azureBackUpItem.DataSourceId = $DataSourceId + $azureBackUpItem.Type = $DataSourceType + $recoveryPoints = Get-AzureBackupRecoveryPoint -Item $azureBackUpItem + if (!($recoveryPoints -eq $null)) + { + foreach($recoveryPoint in $recoveryPoints) + { + Assert-NotNull $recoveryPoint.RecoveryPointTime 'RecoveryPointTime should not be null' + Assert-NotNull $recoveryPoint.RecoveryPointType 'RecoveryPointType should not be null' + Assert-NotNull $recoveryPoint.RecoveryPointId 'RecoveryPointId should not be null' + } + } +} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs new file mode 100644 index 000000000000..ac13b989177e --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs @@ -0,0 +1,78 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Common.Authentication.Models; +using System.Threading; +using Hyak.Common; +using Microsoft.Azure.Commands.AzureBackup.Properties; +using System.Net; +using System.Linq; +using Microsoft.WindowsAzure.Management.Scheduler; +using Microsoft.Azure.Management.BackupServices; +using Microsoft.Azure.Management.BackupServices.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.ClientAdapter +{ + public partial class AzureBackupClientAdapter + { + /// + /// Gets all containers in the vault + /// + /// + /// + public IEnumerable ListContainers(string filter) + { + var listResponse = AzureBackupClient.Container.ListAsync(filter, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return listResponse.Objects; + } + + /// + /// Register container + /// + /// + /// + public Guid RegisterContainer(RegisterContainerRequestInput request) + { + var response = AzureBackupClient.Container.RegisterAsync(request, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return response.OperationId; + } + + /// + /// UnRegister container + /// + /// + /// + public Guid UnRegisterContainer(UnregisterContainerRequestInput request) + { + var response = AzureBackupClient.Container.UnregisterAsync(request, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return response.OperationId; + } + + /// + /// Refresh container list in service + /// + /// + public Guid RefreshContainers() + { + var response = AzureBackupClient.Container.RefreshAsync(GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return response.OperationId; + } + } +} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs new file mode 100644 index 000000000000..193114bb179b --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs @@ -0,0 +1,107 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Common.Authentication.Models; +using System.Threading; +using Hyak.Common; +using Microsoft.Azure.Commands.AzureBackup.Properties; +using System.Net; +using Microsoft.WindowsAzure.Management.Scheduler; +using Microsoft.Azure.Management.BackupServices; +using Microsoft.Azure.Management.BackupServices.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.ClientAdapter +{ + public partial class AzureBackupClientAdapter + { + /// + /// Lists datasources in the vault + /// + /// + /// + public IEnumerable ListDataSources(DataSourceQueryParameter query) + { + var response = AzureBackupClient.DataSource.ListAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return (response != null) ? response.DataSources.Objects : null; + } + + /// + /// Lists protectable objects in the vault + /// + /// + /// + public IEnumerable ListProtectableObjects(POQueryParameter query) + { + var response = AzureBackupClient.ProtectableObject.ListAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return (response != null) ? response.ProtectableObject.Objects : null; + } + + /// + /// Dsiable protection + /// + /// + /// + /// + /// + /// + public Guid DisableProtection(string containerName, string dsType, string dsId, RemoveProtectionRequestInput request) + { + var response = AzureBackupClient.DataSource.DisableProtectionAsync(GetCustomRequestHeaders(), containerName, dsType, dsId, request, CmdletCancellationToken).Result; + return response.OperationId; + } + + /// + /// Enable Protection + /// + /// + /// + public Guid EnableProtection(SetProtectionRequestInput request) + { + var response = AzureBackupClient.DataSource.EnableProtectionAsync(GetCustomRequestHeaders(), request, CmdletCancellationToken).Result; + return response.OperationId; + } + + /// + /// Trigger backup on a DS + /// + /// + /// + /// + /// + public Guid TriggerBackup(string containerName, string dsType, string dsId) + { + var response = AzureBackupClient.BackUp.TriggerBackUpAsync(GetCustomRequestHeaders(), containerName, dsType, dsId, CmdletCancellationToken).Result; + return response.OperationId; + } + + /// + /// Lists recovery points for specified item + /// + /// + /// + /// + /// + public IEnumerable ListRecoveryPoints(string containerName, string dsType, string dsId) + { + var response = AzureBackupClient.RecoveryPoint.ListAsync(GetCustomRequestHeaders(), containerName, dsType, dsId, CmdletCancellationToken).Result; + return (response != null) ? response.RecoveryPoints.Objects : null; + } + } +} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/JobAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/JobAdapter.cs new file mode 100644 index 000000000000..2bea279711f0 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/JobAdapter.cs @@ -0,0 +1,53 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Common.Authentication.Models; +using System.Threading; +using Hyak.Common; +using Microsoft.Azure.Commands.AzureBackup.Properties; +using System.Net; +using Microsoft.WindowsAzure.Management.Scheduler; +using Microsoft.Azure.Management.BackupServices; +using Microsoft.Azure.Management.BackupServices.Models; +using Mgmt = Microsoft.Azure.Management.BackupServices.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.ClientAdapter +{ + public partial class AzureBackupClientAdapter + { + public IEnumerable ListJobs(JobQueryParameter queryParams) + { + var response = AzureBackupClient.Job.ListAsync(queryParams, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return response.Jobs.Objects; + } + + public Mgmt.JobByIdResponse GetJobDetails(string jobId) + { + var response = AzureBackupClient.Job.GetAsync(jobId, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return response; + } + + public Guid TriggerCancelJob(string jobId) + { + var response = AzureBackupClient.Job.StopAsync(jobId, GetCustomRequestHeaders(), CmdletCancellationToken).Result.OperationId; + return response; + } + } +} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs new file mode 100644 index 000000000000..6d4c63dc7aa3 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs @@ -0,0 +1,39 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Common.Authentication.Models; +using System.Threading; +using Hyak.Common; +using Microsoft.Azure.Commands.AzureBackup.Properties; +using System.Net; +using Microsoft.WindowsAzure.Management.Scheduler; +using Microsoft.Azure.Management.BackupServices; +using Microsoft.Azure.Management.BackupServices.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.ClientAdapter +{ + public partial class AzureBackupClientAdapter + { + public OperationResultResponse GetOperationStatus(string operationId) + { + return AzureBackupClient.OperationStatus.GetAsync(operationId, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + } + } +} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs index a3c522538fd1..adb2c7014d6a 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs @@ -23,5 +23,61 @@ internal static class AzureBackupCmdletHelpMessage public const string Sku = "The SKU of the backup vault instance."; public const string TargetLocation = "The directory where the credentials file will be saved. This must be an absolute path."; public const string StorageType = "The vault back-end storage type."; + + public const string PolicyName = "The protection policy name."; + public const string ResourceTags = "A hash table which represents resource tags."; + public const string ManagedResourceName = "The resource name of the resource being managed by the Azure Backup service (ex: resource name of the VM)."; + public const string ContainerId = "The container ID."; + public const string ContainerRegistrationStatus = "The container registration status."; + public const string ContainerType = "The container type."; + + public const string JobFilterJobIdHelpMessage = "The job ID to filter jobs"; + public const string JobFilterJobHelpMessage = "The job for filtering"; + public const string JobFilterStartTimeHelpMessage = "The start time of query range"; + public const string JobFilterEndTimeHelpMessage = "The end time of query range"; + public const string JobFilterOperationHelpMessage = "The operation for filtering jos"; + public const string JobFilterStatusHelpMessage = "The status for filtering jobs"; + public const string JobFitlerVaultHelpMessage = "The vault of which jobs have to be filtered"; + public const string JobFilterTypeHelpMessage = "The type of workload whose jobs have to be filtered"; + + public const string JobDetailsFilterJobIdHelpMessage = "The job ID to get details"; + public const string JobDetailsFilterVaultHelpMessage = "The vault of which job details should be fetched"; + public const string JobDetailsFilterJobHelpMessage = "The job whose full details should be fetched"; + + public const string StopJobFilterJobIdHelpMessage = "The job ID to stop job"; + public const string StopJobFilterVaultHelpMessage = "The vault of which a job has to be stopped"; + public const string StopJobFilterJobHelpMessage = "The job which should be stopped"; + + public const string WaitJobFilterJobIdHelpMessage = "The job ID to stop job"; + public const string WaitJobFilterVaultHelpMessage = "The vault of which a job has to be stopped"; + public const string WaitJobFilterJobHelpMessage = "The job which should be stopped"; + public const string WaitJobFilterTimeoutHelpMessage = "Maximum number of seconds for which cmdlet should wait before job(s) complete running."; + + public const string VirtualMachine = "Virtual Machine."; + public const string ManagedResourceGroupName = "The resource group name of the resource being managed by the Azure Backup service (ex: resource group name of the VM)."; + public const string ProtectionStatus = "Protection Status of the azure backup item."; + public const string AzureBackUpItem = "Azure BackUp Item."; + public const string RecoveryPointId = "Recovery Point Id."; + public const string Type = "Type of Azure Backup Item."; + public const string Status = "Status of Azure Backup Item"; + public const string AzureBackupContainer = "Azure Backup Container for Azure Backup Item."; + public const string AzureBackupItem = "Azure Backup Item for enabling protection"; + public const string RemoveProtectionOption = "Remove Protection Option"; + public const string Reason = "Reson for removing protection"; + public const string Comments = "Comments for for removing protection"; + public const string WorkloadType = "Workload type for which the policy is defined."; + public const string BackupType = "Type of backup."; + public const string DailyScheduleType = "Switch parameter for daily backup schedule."; + public const string WeeklyScheduleType = "Switch parameter for weekly backup schedule."; + public const string ScheduleRunDays = "Days of week for running backup, required for weekly schedule."; + public const string ScheduleRunTimes = "Times of day in UTC for running backup."; + public const string RetentionType = "Unit of retention for the recovery point."; + public const string RententionDuration = "Duration of retention for the recovery point in units specified by RetentionType."; + public const string PolicyNewName = "Policy new name"; + public const string AzureBackupPolicy = "Azure Backup protection policy"; + public const string VMName = "Azure VM name to be register"; + public const string ServiceName = "Cloud service name of Azure VM to be register"; + public const string RGName = "Resource Group name of Azure VM to be register"; + public const string AzureBackupContainerToUnregister = "Azure Backup Container tobe unregister."; } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupContainerCmdletBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupContainerCmdletBase.cs new file mode 100644 index 000000000000..6018452616e5 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupContainerCmdletBase.cs @@ -0,0 +1,45 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Common.Authentication.Models; +using System.Threading; +using Hyak.Common; +using Microsoft.Azure.Commands.AzureBackup.Properties; +using System.Net; +using Microsoft.Azure.Commands.AzureBackup.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + public abstract class AzureBackupContainerCmdletBase : AzureBackupCmdletBase + { + [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.AzureBackupContainer, ValueFromPipeline = true)] + [ValidateNotNullOrEmpty] + public AzureBackupContainer Container { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + WriteDebug(String.Format("Cmdlet called for ResourceGroupName: {0}, ResourceName: {1}, Location: {2}", Container.ResourceGroupName, Container.ResourceName, Container.Location)); + + InitializeAzureBackupCmdlet(Container.ResourceGroupName, Container.ResourceName); + } + } +} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupDSCmdletBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupDSCmdletBase.cs new file mode 100644 index 000000000000..aec5d07b3836 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupDSCmdletBase.cs @@ -0,0 +1,46 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Common.Authentication.Models; +using System.Threading; +using Hyak.Common; +using Microsoft.Azure.Commands.AzureBackup.Properties; +using System.Net; +using Microsoft.Azure.Commands.AzureBackup.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + public abstract class AzureBackupDSCmdletBase : AzureBackupCmdletBase + { + [Parameter(Position = 0, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.AzureBackUpItem, ValueFromPipeline = true)] + [ValidateNotNullOrEmpty] + public AzureBackupItem Item { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + WriteDebug(String.Format("Cmdlet called for ResourceGroupName: {0}, ResourceName: {1}", Item.ResourceGroupName, Item.ResourceName)); + + InitializeAzureBackupCmdlet(Item.ResourceGroupName, Item.ResourceName); + } + } +} + diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupItemCmdletBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupItemCmdletBase.cs new file mode 100644 index 000000000000..a08fe6208834 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupItemCmdletBase.cs @@ -0,0 +1,44 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Common.Authentication.Models; +using System.Threading; +using Hyak.Common; +using Microsoft.Azure.Commands.AzureBackup.Properties; +using System.Net; +using Microsoft.Azure.Commands.AzureBackup.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + public abstract class AzureBackupItemCmdletBase : AzureBackupCmdletBase + { + [Parameter(Position = 0, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.AzureBackupItem, ValueFromPipeline = true)] + [ValidateNotNullOrEmpty] + public AzureBackupContainerContextObject Item { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + WriteDebug(String.Format("Cmdlet called for ResourceGroupName: {0}, ResourceName: {1}, Location: {2}", Item.ResourceGroupName, Item.ResourceName, Item.Location)); + InitializeAzureBackupCmdlet(Item.ResourceGroupName, Item.ResourceName); + } + } +} + diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupPolicyCmdletBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupPolicyCmdletBase.cs new file mode 100644 index 000000000000..46823713a2ff --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupPolicyCmdletBase.cs @@ -0,0 +1,49 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Common.Authentication.Models; +using System.Threading; +using Hyak.Common; +using Microsoft.Azure.Commands.AzureBackup.Properties; +using System.Net; +using Microsoft.Azure.Management.BackupServices.Models; +using Microsoft.Azure.Commands.AzureBackup.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + public abstract class AzureBackupPolicyCmdletBase : AzureBackupCmdletBase + { + // ToDO: + // Correct Help message and other attributes related to paameters + [Parameter(Position = 0, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.AzureBackupPolicy, ValueFromPipeline = true)] + [ValidateNotNullOrEmpty] + public AzureBackupProtectionPolicy ProtectionPolicy { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + WriteDebug(String.Format("Cmdlet called for ResourceGroupName: {0}, ResourceName: {1}, Location: {2}", + ProtectionPolicy.ResourceGroupName, ProtectionPolicy.ResourceName, ProtectionPolicy.Location)); + + InitializeAzureBackupCmdlet(ProtectionPolicy.ResourceGroupName, ProtectionPolicy.ResourceName); + } + } +} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs new file mode 100644 index 000000000000..6f567814cc6d --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs @@ -0,0 +1,53 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using System.Linq; +using Microsoft.Azure.Management.BackupServices.Models; +using MBS = Microsoft.Azure.Management.BackupServices; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + // ToDo: + // Correct the Commandlet + // Correct the OperationResponse + // Get Tracking API from Piyush and Get JobResponse + // Get JobResponse Object from Aditya + + /// + /// Get list of containers + /// + [Cmdlet(VerbsData.Backup, "AzureBackupItem"), OutputType(typeof(Guid))] + public class TriggerAzureBackup : AzureBackupDSCmdletBase + { + public override void ExecuteCmdlet() + { + ExecutionBlock(() => + { + base.ExecuteCmdlet(); + + WriteDebug("Making client call"); + Guid operationId = AzureBackupClient.TriggerBackup(Item.ContainerUniqueName, Item.Type, Item.DataSourceId); + + WriteDebug("Triggered backup. Converting response"); + + var operationStatus = TrackOperation(operationId); + WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.Jobs).FirstOrDefault()); + }); + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs new file mode 100644 index 000000000000..c7d6bddb8400 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs @@ -0,0 +1,131 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.AzureBackup.Helpers; +using Microsoft.Azure.Commands.AzureBackup.Library; +using Microsoft.Azure.Commands.AzureBackup.Models; +using Microsoft.Azure.Management.BackupServices.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; +using System.Text; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + /// + /// Get list of containers + /// + [Cmdlet(VerbsCommon.Get, "AzureBackupContainer"), OutputType(typeof(AzureBackupContainer), typeof(List))] + public class GetAzureBackupContainer : AzureBackupVaultCmdletBase + { + [Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ManagedResourceGroupName)] + [ValidateNotNullOrEmpty] + public string ManagedResourceGroupName { get; set; } + + [Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ManagedResourceName)] + [ValidateNotNullOrEmpty] + public string ManagedResourceName { get; set; } + + [Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerRegistrationStatus)] + [ValidateNotNullOrEmpty] + public AzureBackupContainerStatusInput Status { get; set; } + + [Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerType)] + [ValidateNotNullOrEmpty] + public AzureBackupContainerTypeInput Type { get; set; } + + public override void ExecuteCmdlet() + { + ExecutionBlock(() => + { + base.ExecuteCmdlet(); + + string queryFilterString = string.Empty; + queryFilterString = ConstructQueryFilterString(); + var containerList = AzureBackupClient.ListContainers(queryFilterString); + + WriteDebug(string.Format("Fetched {0} containers", containerList.Count())); + + List containerInfos = containerList.ToList(); + + // When resource group name is specified, remove all containers whose resource group name + // doesn't match the given resource group name + if (!string.IsNullOrEmpty(ManagedResourceGroupName)) + { + containerInfos.RemoveAll(containerInfo => + { + return containerInfo.ParentContainerName != ManagedResourceGroupName; + }); + WriteDebug(string.Format("Count of containers after resource group filter = {0}", containerInfos.Count)); + } + + // TODO: Container friendly name is not captures in Container response + // BUG: Friendly name was previously assigned to ResourceName (vault name) + List containers = containerInfos.ConvertAll(containerInfo => + { + return new AzureBackupContainer(Vault, containerInfo); + }); + + // When container resource name and container resource group name are specified, this parameter set + // identifies a container uniquely. Thus, we return just one container instead of a list. + if (!string.IsNullOrEmpty(ManagedResourceName) & !string.IsNullOrEmpty(ManagedResourceGroupName)) + { + if (containers.Any()) + { + WriteObject(containers.First()); + } + } + else + { + WriteObject(containers); + } + }); + } + + private string ConstructQueryFilterString() + { + var containerQueryObject = new ListContainerQueryParameter(); + + switch (Type) + { + case AzureBackupContainerTypeInput.AzureVirtualMachine: + containerQueryObject.ContainerTypeField = AzureBackupContainerType.IaasVMContainer.ToString(); + break; + default: + break; + } + + switch (Status) + { + case AzureBackupContainerStatusInput.Registered: + containerQueryObject.ContainerStatusField = AzureBackupContainerRegistrationStatus.Registered.ToString(); + break; + case AzureBackupContainerStatusInput.Registering: + containerQueryObject.ContainerStatusField = AzureBackupContainerRegistrationStatus.Registering.ToString(); + break; + default: + break; + } + + if (!string.IsNullOrEmpty(ManagedResourceName)) + { + containerQueryObject.ContainerFriendlyNameField = ManagedResourceName; + } + + return ContainerHelpers.GetQueryFilter(containerQueryObject); + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs new file mode 100644 index 000000000000..b4edbe2df201 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs @@ -0,0 +1,194 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Web; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Linq; +using System.Management.Automation; +using System.Text; +using System.Threading.Tasks; +using Microsoft.Azure.Management.BackupServices.Models; +using MBS = Microsoft.Azure.Management.BackupServices; +using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; +using Microsoft.Azure.Commands.AzureBackup.Properties; +using Microsoft.Azure.Commands.AzureBackup.Models; +using Microsoft.Azure.Commands.AzureBackup.Helpers; +using Microsoft.Azure.Management.BackupServices; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + /// + /// Get list of containers + /// + [Cmdlet(VerbsLifecycle.Register, "AzureBackupContainer", DefaultParameterSetName = V1VMParameterSet), OutputType(typeof(string))] + public class RegisterAzureBackupContainer : AzureBackupVaultCmdletBase + { + internal const string V1VMParameterSet = "V1VM"; + internal const string V2VMParameterSet = "V2VM"; + + [Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true, ParameterSetName = V1VMParameterSet, HelpMessage = AzureBackupCmdletHelpMessage.VMName)] + [Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true, ParameterSetName = V2VMParameterSet, HelpMessage = AzureBackupCmdletHelpMessage.VMName)] + public string Name { get; set; } + + [Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true, ParameterSetName = V1VMParameterSet, HelpMessage = AzureBackupCmdletHelpMessage.ServiceName)] + public string ServiceName { get; set; } + + [Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true, ParameterSetName = V2VMParameterSet, HelpMessage = AzureBackupCmdletHelpMessage.RGName)] + public string ResourceGroupName { get; set; } + + + public override void ExecuteCmdlet() + { + ExecutionBlock(() => + { + base.ExecuteCmdlet(); + + string vmName = String.Empty; + string rgName = String.Empty; + string ServiceOrRG = String.Empty; + + if(this.ParameterSetName == V1VMParameterSet) + { + vmName = Name; + rgName = ServiceName; + WriteDebug(String.Format("Registering ARM-V1 VM, VMName: {0}, CloudServiceName: {1}", vmName, rgName)); + ServiceOrRG = "CloudServiceName"; + } + else if(this.ParameterSetName == V2VMParameterSet) + { + vmName = Name; + rgName = ResourceGroupName; + WriteDebug(String.Format("Registering ARM-V2 VM, VMName: {0}, ResourceGroupName: {1}", vmName, rgName)); + ServiceOrRG = "ResourceGroupName"; + } + + else + { + throw new PSArgumentException("Please make sure you have pass right set of parameters"); //TODO: PM scrub needed + } + + Guid jobId = Guid.Empty; + bool isDiscoveryNeed = false; + + ContainerInfo container = null; + isDiscoveryNeed = IsDiscoveryNeeded(vmName, rgName, out container); + if(isDiscoveryNeed) + { + WriteDebug(String.Format("VM {0} is not yet discovered. Triggering Discovery", vmName)); + RefreshContainer(); + isDiscoveryNeed = IsDiscoveryNeeded(vmName, rgName, out container); + if ((isDiscoveryNeed == true) || (container == null)) + { + //Container is not discovered. Throw exception + string errMsg = String.Format("Failed to discover VM {0} under {1} {2}. Please make sure names are correct and VM is not deleted", vmName, ServiceOrRG, rgName); + WriteDebug(errMsg); + ThrowTerminatingError(new ErrorRecord(new Exception(Resources.AzureVMNotFound), string.Empty, ErrorCategory.InvalidArgument, null)); + } + } + + //Container is discovered. Register the container + WriteDebug(String.Format("Going to register VM {0}", vmName)); + List containerNameList = new List(); + containerNameList.Add(container.Name); + RegisterContainerRequestInput registrationRequest = new RegisterContainerRequestInput(containerNameList, AzureBackupContainerType.IaasVMContainer.ToString()); + var operationId = AzureBackupClient.RegisterContainer(registrationRequest); + + var operationStatus = GetOperationStatus(operationId); + WriteObject(GetCreatedJobs(Vault, operationStatus.Jobs).FirstOrDefault()); + }); + } + + private void RefreshContainer() + { + bool isRetryNeeded = true; + int retryCount = 1; + bool isDiscoverySuccessful = false; + string errorMessage = string.Empty; + while (isRetryNeeded && retryCount <= 3) + { + var operationId = AzureBackupClient.RefreshContainers(); + + //Now wait for the operation to Complete + isRetryNeeded = WaitForDiscoveryToComplete(operationId, out isDiscoverySuccessful, out errorMessage); + retryCount++; + } + + if (!isDiscoverySuccessful) + { + ThrowTerminatingError(new ErrorRecord(new Exception(errorMessage), string.Empty, ErrorCategory.InvalidArgument, null)); + } + } + + private bool WaitForDiscoveryToComplete(Guid operationId, out bool isDiscoverySuccessful, out string errorMessage) + { + bool isRetryNeeded = false; + var status = TrackOperation(operationId); + errorMessage = String.Empty; + + isDiscoverySuccessful = true; + //If operation fails check if retry is needed or not + if (status.OperationResult != AzureBackupOperationResult.Succeeded.ToString()) + { + isDiscoverySuccessful = false; + errorMessage = status.Message; + WriteDebug(String.Format("Discovery operation failed with ErrorCode: {0}", status.ErrorCode)); + if ((status.ErrorCode == AzureBackupOperationErrorCode.DiscoveryInProgress.ToString() || + (status.ErrorCode == AzureBackupOperationErrorCode.BMSUserErrorObjectLocked.ToString()))) + { + //Need to retry for this errors + isRetryNeeded = true; + WriteDebug(String.Format("Going to retry Discovery if retry count is not exceeded")); + } + } + return isRetryNeeded; + } + + private bool IsDiscoveryNeeded(string vmName, string rgName, out ContainerInfo container) + { + bool isDiscoveryNeed = false; + //First check if container is discoverd or not + ListContainerQueryParameter queryParams = new ListContainerQueryParameter(); + queryParams.ContainerTypeField = AzureBackupContainerType.IaasVMContainer.ToString(); + queryParams.ContainerStatusField = String.Empty; + queryParams.ContainerFriendlyNameField = vmName; + string queryString = ContainerHelpers.GetQueryFilter(queryParams); + + var containers = AzureBackupClient.ListContainers(queryString); + WriteDebug(String.Format("Container count returned from service: {0}.", containers.Count())); + if (containers.Count() == 0) + { + //Container is not discover + WriteDebug("Container is not discovered"); + container = null; + isDiscoveryNeed = true; + } + + else + { + //We can have multiple container with same friendly name. + //Look for resourceGroup name in the container unoque name + container = containers.Where(c => c.ParentContainerFriendlyName.ToLower().Equals(rgName.ToLower())).FirstOrDefault(); + if (container == null) + { + //Container is not in list of registered container + WriteDebug(String.Format("Desired Container is not found. Returning with isDiscoveryNeed = true")); + isDiscoveryNeed = true; + } + } + return isDiscoveryNeed; + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs new file mode 100644 index 000000000000..7025084e97a2 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs @@ -0,0 +1,79 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Management.BackupServices; +using Microsoft.Azure.Management.BackupServices.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets.DataSource +{ + /// + /// Disable Azure Backup protection + /// + [Cmdlet(VerbsLifecycle.Disable, "AzureBackupProtection"), OutputType(typeof(string))] + public class DisableAzureBackupProtection : AzureBackupDSCmdletBase + { + [Parameter(Position = 1, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.RemoveProtectionOption)] + public SwitchParameter RemoveRecoveryPoints + { + get { return DeleteBackupData; } + set { DeleteBackupData = value; } + } + private bool DeleteBackupData; + + [Parameter(Position = 2, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.Reason)] + public string Reason { get; set; } + + [Parameter(Position = 3, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.Comments)] + public string Comments { get; set; } + + public override void ExecuteCmdlet() + { + ExecutionBlock(() => + { + base.ExecuteCmdlet(); + + WriteDebug("Making client call"); + RemoveProtectionRequestInput input = new RemoveProtectionRequestInput() + { + RemoveProtectionOption = this.DeleteBackupData ? RemoveProtectionOptions.DeleteBackupData.ToString() : RemoveProtectionOptions.RetainBackupData.ToString(), + Reason = this.Reason != null ? this.Reason : String.Empty, + Comments = this.Comments != null ? this.Comments : String.Empty, + }; + + WriteDebug("RemoveProtectionOption is = " + input.RemoveProtectionOption); + var operationId = AzureBackupClient.DisableProtection(Item.ContainerUniqueName, Item.Type, Item.DataSourceId, input); + + WriteDebug("Received disable azure backup protection response"); + var operationStatus = GetOperationStatus(operationId); + this.WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.Jobs).FirstOrDefault()); + }); + } + + public enum RemoveProtectionOptions + { + [EnumMember] + DeleteBackupData, + + [EnumMember] + RetainBackupData + }; + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs new file mode 100644 index 000000000000..8ab6eaeca410 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs @@ -0,0 +1,79 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using System.Linq; +using Microsoft.Azure.Management.BackupServices.Models; +using MBS = Microsoft.Azure.Management.BackupServices; +using System.Runtime.Serialization; +using Microsoft.Azure.Management.BackupServices; +using Microsoft.Azure.Commands.AzureBackup.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + /// + /// Enable Azure Backup protection + /// + [Cmdlet(VerbsLifecycle.Enable, "AzureBackupProtection"), OutputType(typeof(string))] + public class EnableAzureBackupProtection : AzureBackupItemCmdletBase + { + [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.PolicyName)] + [ValidateNotNullOrEmpty] + public AzureBackupProtectionPolicy Policy { get; set; } + + public override void ExecuteCmdlet() + { + ExecutionBlock(() => + { + base.ExecuteCmdlet(); + + WriteDebug("Making client call"); + SetProtectionRequestInput input = new SetProtectionRequestInput(); + input.PolicyId = Policy.InstanceId; + if (Item.GetType() == typeof(AzureBackupItem)) + { + input.ProtectableObjectType = (Item as AzureBackupItem).Type; + input.ProtectableObjects.Add((Item as AzureBackupItem).Name); + } + else if (Item.GetType() == typeof(AzureBackupContainer)) + { + WriteDebug("Input is container Type = " + Item.GetType()); + if ((Item as AzureBackupContainer).ContainerType == AzureBackupContainerType.IaasVMContainer.ToString()) + { + WriteDebug("container Type = " + (Item as AzureBackupContainer).ContainerType); + input.ProtectableObjectType = DataSourceType.VM.ToString(); + input.ProtectableObjects.Add((Item as AzureBackupContainer).ContainerUniqueName); + } + else + { + throw new Exception("Uknown item type"); + } + } + else + { + throw new Exception("Uknown item type"); + } + + var operationId = AzureBackupClient.EnableProtection(input); + WriteDebug("Received enable azure backup protection response"); + + var operationStatus = GetOperationStatus(operationId); + this.WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.Jobs).FirstOrDefault()); + }); + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs new file mode 100644 index 000000000000..8c964328bf15 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs @@ -0,0 +1,121 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using System.Linq; +using Microsoft.Azure.Management.BackupServices.Models; +using System.Runtime.Serialization; +using System.Collections.Specialized; +using Microsoft.Azure.Common.OData; +using Microsoft.Azure.Commands.AzureBackup.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + /// + /// Get list of azure backup items + /// + [Cmdlet(VerbsCommon.Get, "AzureBackupItem"), OutputType(typeof(AzureBackupItem), typeof(List))] + public class GetAzureBackupItem : AzureBackupContainerCmdletBase + { + [Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ProtectionStatus)] + [ValidateSet("Protected","Protecting","NotProtected")] + public string ProtectionStatus { get; set; } + + [Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.Status)] + [ValidateSet("IRPending", "ProtectionStopped", "ProtectionError", "Protected")] + public string Status { get; set; } + + [Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.Type)] + [ValidateSet("VM")] + public string Type { get; set; } + + public override void ExecuteCmdlet() + { + ExecutionBlock(() => + { + base.ExecuteCmdlet(); + + List azureBackupDatasourceObjects = null; + List azureBackupPOObjects = null; + + WriteDebug("Making client call"); + DataSourceQueryParameter DSQueryParam = new DataSourceQueryParameter() + { + ProtectionStatus = this.ProtectionStatus, + Status = this.Status, + Type = this.Type + }; + + POQueryParameter POQueryParam = new POQueryParameter() + { + Status = this.ProtectionStatus, + Type = this.Type + }; + + var azureBackupDatasourceListResponse = AzureBackupClient.ListDataSources(DSQueryParam); + azureBackupDatasourceObjects = azureBackupDatasourceListResponse.Where(x => x.ContainerName.Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); + + if (this.Status == null) + { + var azureBackupPOListResponse = AzureBackupClient.ListProtectableObjects(POQueryParam); + azureBackupPOObjects = azureBackupPOListResponse.Where(x => x.ContainerName.Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); + } + + WriteDebug("Received azure backup item response"); + WriteAzureBackupItem(azureBackupDatasourceObjects, azureBackupPOObjects, Container); + }); + } + + public void WriteAzureBackupItem(DataSourceInfo sourceItem, AzureBackupContainer azureBackupItem) + { + this.WriteObject(new AzureBackupItem(sourceItem, azureBackupItem)); + } + + public void WriteAzureBackupItem(List sourceDataSourceList, List sourcePOList, AzureBackupContainer azureBackupContainer) + { + List targetList = new List(); + + foreach (var item in sourceDataSourceList) + { + targetList.Add(new AzureBackupItem(item, azureBackupContainer)); + } + + if (sourcePOList != null) + { + foreach (var item in sourcePOList) + { + //If user has stopped protection for some datasoure then we will have duplicate items(po and ds). + //So in this case removing poitems from the list. + if (targetList.FindIndex(element => element.Name == item.Name) < 0) + { + targetList.Add(new AzureBackupItem(item, azureBackupContainer)); + } + } + } + + if (targetList.Count() == 1) + { + this.WriteObject(targetList.First(), true); + } + else + { + this.WriteObject(targetList, true); + } + } + + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/AzureBackupJobHelper.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/AzureBackupJobHelper.cs new file mode 100644 index 000000000000..f014ad459864 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/AzureBackupJobHelper.cs @@ -0,0 +1,88 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using System.Linq; +using Mgmt = Microsoft.Azure.Management.BackupServices.Models; + + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + public enum JobStatus + { + Invalid = 0, + + InProgress, + + Completed, + + Failed, + + CompletedWithWarnings, + + Cancelled, + + Cancelling + } + + public enum JobOperationType + { + Invalid = 0, + + Register, + + ConfigureBackup, + + Backup, + + Restore, + + UnProtect, + + DeleteBackupData, + + Unregister + } + + public static class AzureBackupJobHelper + { + public static bool IsValidStatus(string inputStatus) + { + JobStatus status; + if(!Enum.TryParse(inputStatus, out status) || status == JobStatus.Invalid) + { + return false; + } + return true; + } + + public static bool IsValidOperationType(string inputOperationType) + { + JobOperationType operationType; + if(!Enum.TryParse(inputOperationType, out operationType) || operationType == JobOperationType.Invalid) + { + return false; + } + return true; + } + + public static bool IsJobRunning(string status) + { + return ((status.CompareTo("InProgress") == 0) || (status.CompareTo("Cancelling") == 0)); + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJob.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJob.cs new file mode 100644 index 000000000000..edabda56a508 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJob.cs @@ -0,0 +1,161 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using System.Linq; +using System.Web; +using Microsoft.Azure.Management.BackupServices; +using Mgmt = Microsoft.Azure.Management.BackupServices.Models; +using Microsoft.Azure.Commands.AzureBackup.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + /// + /// 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. + /// + [Cmdlet(VerbsCommon.Get, "AzureBackupJob", DefaultParameterSetName = "FiltersSet"), OutputType(typeof(List), typeof(Mgmt.Job))] + public class GetAzureBackupJob : AzureBackupCmdletBase + { + [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.Vault, ParameterSetName = "FiltersSet", ValueFromPipeline = true)] + [ValidateNotNull] + public AzurePSBackupVault Vault { get; set; } + + [Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterJobIdHelpMessage, ParameterSetName = "FiltersSet")] + [ValidateNotNullOrEmpty] + public string JobId { get; set; } + + [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterJobHelpMessage, ParameterSetName = "JobsListFilter")] + [ValidateNotNull] + public AzureBackupJob Job { get; set; } + + [Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterStartTimeHelpMessage, ParameterSetName = "FiltersSet")] + [ValidateNotNull] + public DateTime? From { get; set; } + + [Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterEndTimeHelpMessage, ParameterSetName = "FiltersSet")] + [ValidateNotNull] + public DateTime? To { get; set; } + + [Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterStatusHelpMessage, ParameterSetName = "FiltersSet")] + [ValidateSet("Cancelled", "Cancelling", "Completed", "CompletedWithWarnings", "Failed", "InProgress")] + public string Status { get; set; } + + [Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterTypeHelpMessage, ParameterSetName = "FiltersSet")] + [ValidateSet("VM")] + public string Type { get; set; } + + [Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.JobFilterOperationHelpMessage, ParameterSetName = "FiltersSet")] + [ValidateSet("Backup", "ConfigureBackup", "DeleteBackupData", "Register", "Restore", "UnProtect", "Unregister")] + public string Operation { get; set; } + + public override void ExecuteCmdlet() + { + ExecutionBlock(() => + { + if (Job != null) + { + Vault = new AzurePSBackupVault(Job.ResourceGroupName, Job.ResourceName, Job.Location); + } + + InitializeAzureBackupCmdlet(Vault); + + if (Job != null) + { + JobId = Job.InstanceId; + } + + // validations + if (!From.HasValue) + { + WriteDebug("Setting StartTime to min value."); + From = new DateTime(); + From = DateTime.MinValue; + } + + if (To.HasValue && To.Value <= From.Value) + { + throw new Exception("StartTime should be greater than EndTime."); + } + else + { + if (From != DateTime.MinValue) + { + WriteDebug("End time not set. Setting it to current time."); + To = DateTime.Now; + } + else + { + WriteDebug("Setting EndTime to min value."); + To = new DateTime(); + To = DateTime.MinValue; + } + } + + From = TimeZoneInfo.ConvertTimeToUtc(From.Value); + To = TimeZoneInfo.ConvertTimeToUtc(To.Value); + + // if user hasn't specified any filters, then default filter fetches + // all jobs that were created in last 24 hours. + if (From == DateTime.MinValue && To == DateTime.MinValue && + Operation == string.Empty && Status == string.Empty && + Type == string.Empty && JobId == string.Empty) + { + From = DateTime.UtcNow.AddDays(-1); + To = DateTime.UtcNow; + } + + WriteDebug("StartTime filter is: " + System.Uri.EscapeDataString(From.Value.ToString("yyyy-MM-dd hh:mm:ss tt"))); + WriteDebug("EndTime filter is: " + System.Uri.EscapeDataString(To.Value.ToString("yyyy-MM-dd hh:mm:ss tt"))); + WriteDebug("Operation filter is: " + Operation); + WriteDebug("Status filter is: " + Status); + WriteDebug("Type filter is: " + Type); + WriteDebug("JobID filter is: " + JobId); + + JobQueryParameter queryParams = new JobQueryParameter() + { + StartTime = From.Value.ToString("yyyy-MM-dd hh:mm:ss tt"), + EndTime = To.Value.ToString("yyyy-MM-dd hh:mm:ss tt"), + Operation = Operation, + Status = Status, + Type = Type, + JobId = JobId + }; + + var jobsList = AzureBackupClient.ListJobs(queryParams); + List retrievedJobs = new List(); + + foreach (Mgmt.Job serviceJob in jobsList) + { + // TODO: Initialize vault from Job object when vault is made optional + retrievedJobs.Add(new AzureBackupJob(Vault, serviceJob)); + } + + WriteDebug("Successfully retrieved all jobs. Number of jobs retrieved: " + retrievedJobs.Count()); + + if (retrievedJobs.Count == 1) + { + WriteObject(retrievedJobs.First()); + } + else + { + WriteObject(retrievedJobs); + } + }); + } + } +} + diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJobDetails.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJobDetails.cs new file mode 100644 index 000000000000..12b88e1bf33c --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJobDetails.cs @@ -0,0 +1,68 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using System.Linq; +using Mgmt = Microsoft.Azure.Management.BackupServices.Models; +using Microsoft.Azure.Commands.AzureBackup.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + /// + /// Get full details of a job + /// + [Cmdlet(VerbsCommon.Get, "AzureBackupJobDetails", DefaultParameterSetName = "IdFiltersSet"), OutputType(typeof(Mgmt.JobProperties))] + public class GetAzureBackupJobDetils : AzureBackupCmdletBase + { + [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.Vault, ParameterSetName = "IdFiltersSet")] + [ValidateNotNull] + public AzurePSBackupVault Vault { get; set; } + + [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.JobDetailsFilterJobIdHelpMessage, ParameterSetName = "IdFiltersSet")] + [ValidateNotNullOrEmpty] + public string JobID { get; set; } + + [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.JobDetailsFilterJobHelpMessage, ParameterSetName = "JobsFiltersSet")] + [ValidateNotNull] + public AzureBackupJob Job { get; set; } + + public override void ExecuteCmdlet() + { + if (Job != null) + { + Vault = new AzurePSBackupVault(Job.ResourceGroupName, Job.ResourceName, Job.Location); + } + InitializeAzureBackupCmdlet(Vault); + + ExecutionBlock(() => + { + if (Job != null) + { + JobID = Job.InstanceId; + } + + WriteDebug("JobID filter is: " + JobID); + + Mgmt.JobProperties serviceJobProperties = AzureBackupClient.GetJobDetails(JobID).Job; + AzureBackupJobDetails jobDetails = new AzureBackupJobDetails(Vault, serviceJobProperties); + + WriteDebug("Retrieved JobDetails from service."); + WriteObject(jobDetails); + }); + } + } +} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs new file mode 100644 index 000000000000..11deb9fe87a4 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs @@ -0,0 +1,76 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using System.Linq; +using Microsoft.Azure.Management.BackupServices; +using System.Threading.Tasks; +using Mgmt = Microsoft.Azure.Management.BackupServices.Models; +using Microsoft.Azure.Commands.AzureBackup.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + /// + /// Stop a running cancellable job + /// + [Cmdlet("Stop", "AzureBackupJob"), OutputType(typeof(Mgmt.Job))] + public class StopAzureBackupJob : AzureBackupCmdletBase + { + [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.Vault, ParameterSetName = "IdFiltersSet")] + [ValidateNotNull] + public AzurePSBackupVault Vault { get; set; } + + [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.StopJobFilterJobIdHelpMessage, ParameterSetName = "IdFiltersSet")] + [ValidateNotNullOrEmpty] + public string JobID { get; set; } + + [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.StopJobFilterJobHelpMessage, ParameterSetName = "JobFiltersSet", ValueFromPipeline = true)] + [ValidateNotNull] + public AzureBackupJob Job { get; set; } + + public override void ExecuteCmdlet() + { + if (Job != null) + { + Vault = new AzurePSBackupVault(Job.ResourceGroupName, Job.ResourceName, Job.Location); + } + + InitializeAzureBackupCmdlet(Vault); + + ExecutionBlock(() => + { + if (Job != null) + { + JobID = Job.InstanceId; + } + + WriteDebug("JobID is: " + JobID); + Guid cancelTaskId = AzureBackupClient.TriggerCancelJob(JobID); + OperationResultResponse opResponse = TrackOperation(cancelTaskId); + + if (opResponse.OperationResult == AzureBackupOperationResult.Succeeded.ToString()) + { + WriteDebug("Triggered cancellation of job with JobID: " + JobID); + } + else + { + throw new Exception("Stop Job failed with ErrorCode: " + opResponse.ErrorCode); + } + }); + } + } +} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/WaitAzureBackupJob.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/WaitAzureBackupJob.cs new file mode 100644 index 000000000000..ac1f24099490 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/WaitAzureBackupJob.cs @@ -0,0 +1,155 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using System.Linq; +using Mgmt = Microsoft.Azure.Management.BackupServices.Models; +using Microsoft.Azure.Commands.AzureBackup.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + [Cmdlet("Wait", "AzureBackupJob"), OutputType(typeof(Mgmt.Job))] + public class WaitAzureBackupJob : AzureBackupCmdletBase + { + [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.WaitJobFilterJobHelpMessage, ValueFromPipeline = true)] + [ValidateNotNullOrEmpty] + public object Job { get; set; } + + [Parameter(Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.WaitJobFilterTimeoutHelpMessage)] + [ValidateRange(1, Int64.MaxValue)] + public long? TimeOut { get; set; } + + public override void ExecuteCmdlet() + { + List specifiedJobs = new List(); + AzurePSBackupVault Vault = null; + + if (Job != null) + { + if ((Job is PSObject) && (((PSObject)Job).ImmediateBaseObject is List)) + { + foreach (AzureBackupJob jobToWait in (((PSObject)Job).ImmediateBaseObject as List)) + { + Vault = new AzurePSBackupVault(jobToWait.ResourceGroupName, jobToWait.ResourceName, jobToWait.Location); + specifiedJobs.Add(jobToWait.InstanceId); + } + } + else if (Job is List) + { + WriteDebug("Type of input paramter is List second case"); + foreach (AzureBackupJob jobToWait in (Job as List)) + { + Vault = new AzurePSBackupVault(jobToWait.ResourceGroupName, jobToWait.ResourceName, jobToWait.Location); + specifiedJobs.Add(jobToWait.InstanceId); + } + } + else if ((Job is PSObject) && (((PSObject)Job).ImmediateBaseObject is AzureBackupJob)) + { + AzureBackupJob azureJob = ((Job as PSObject).ImmediateBaseObject as AzureBackupJob); + Vault = new AzurePSBackupVault(azureJob.ResourceGroupName, azureJob.ResourceName, azureJob.Location); + specifiedJobs.Add(azureJob.InstanceId); + } + else if (Job is AzureBackupJob) + { + Vault = new AzurePSBackupVault((Job as AzureBackupJob).ResourceGroupName, (Job as AzureBackupJob).ResourceName, (Job as AzureBackupJob).Location); + specifiedJobs.Add((Job as AzureBackupJob).InstanceId); + } + else if ((Job is PSObject) && (((PSObject)Job).ImmediateBaseObject is AzureBackupJobDetails)) + { + AzureBackupJob azureJob = ((Job as PSObject).ImmediateBaseObject as AzureBackupJobDetails); + Vault = new AzurePSBackupVault(azureJob.ResourceGroupName, azureJob.ResourceName, azureJob.Location); + specifiedJobs.Add(azureJob.InstanceId); + } + else if (Job is AzureBackupJobDetails) + { + Vault = new AzurePSBackupVault((Job as AzureBackupJobDetails).ResourceGroupName, (Job as AzureBackupJobDetails).ResourceName, (Job as AzureBackupJobDetails).Location); + specifiedJobs.Add((Job as AzureBackupJobDetails).InstanceId); + } + } + + WriteDebug("Number of jobs to wait on: " + specifiedJobs.Count); + + if (specifiedJobs.Count == 0) + { + WriteDebug("No jobs to wait on. Quitting."); + return; + } + + InitializeAzureBackupCmdlet(Vault); + + ExecutionBlock(() => + { + if (!TimeOut.HasValue) + { + TimeOut = new long(); + TimeOut = Int64.MaxValue; + } + + List pendingJobs = new List(specifiedJobs); + DateTime waitingStartTime = DateTime.UtcNow; + + while (true) + { + WriteDebug("In loop querying jobs"); + + if (DateTime.UtcNow.Subtract(waitingStartTime).TotalSeconds >= TimeOut) + { + WriteDebug("Exiting due to timeout."); + break; + } + + bool areJobsRunning = false; + + for (int i = 0; i < pendingJobs.Count; i++) + { + Mgmt.Job retrievedJob = AzureBackupClient.GetJobDetails(pendingJobs[i]).Job; + if (AzureBackupJobHelper.IsJobRunning(retrievedJob.Status)) + areJobsRunning = true; + else + { + pendingJobs.RemoveAt(i); + i--; + } + } + + if (!areJobsRunning) + { + WriteDebug("Exiting because all jobs have finished running."); + break; + } + + System.Threading.Thread.Sleep(30 * 1000); + } + + IList finalJobs = new List(); + foreach(string jobId in specifiedJobs) + { + finalJobs.Add(new AzureBackupJob(Vault, AzureBackupClient.GetJobDetails(jobId).Job)); + } + + if (finalJobs.Count == 1) + { + WriteObject(finalJobs.First()); + } + else + { + WriteObject(finalJobs); + } + }); + } + } +} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/RemoveAzureBackupProtectionPolicy.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/RemoveAzureBackupProtectionPolicy.cs new file mode 100644 index 000000000000..8b907ed2381e --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/RemoveAzureBackupProtectionPolicy.cs @@ -0,0 +1,53 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using System.Linq; +using Microsoft.Azure.Management.BackupServices.Models; +using Microsoft.Azure.Commands.AzureBackup.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + /// + /// Remove a protection policy + /// + [Cmdlet(VerbsCommon.Remove, "AzureBackupProtectionPolicy")] + public class RemoveAzureBackupProtectionPolicy : AzureBackupPolicyCmdletBase + { + public override void ExecuteCmdlet() + { + ExecutionBlock(() => + { + base.ExecuteCmdlet(); + + WriteDebug("Making client call"); + + var policyInfo = AzureBackupClient.GetProtectionPolicyByName(ProtectionPolicy.Name); + if (policyInfo != null) + { + AzureBackupClient.DeleteProtectionPolicy(policyInfo.InstanceId); + WriteVerbose("Successfully deleted policy"); + } + else + { + WriteVerbose("Policy Not Found"); + } + }); + } + } +} + diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs new file mode 100644 index 000000000000..e9b48b9c8ac4 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs @@ -0,0 +1,90 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using System.Linq; +using Microsoft.Azure.Management.BackupServices.Models; +using Microsoft.Azure.Commands.AzureBackup.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + /// + /// Get list of containers + /// + [Cmdlet(VerbsCommon.Get, "AzureBackupRecoveryPoint"), OutputType(typeof(AzureBackupRecoveryPoint), typeof(List))] + public class GetAzureBackupRecoveryPoint : AzureBackupDSCmdletBase + { + [Parameter(Position = 1, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.RecoveryPointId)] + [ValidateNotNullOrEmpty] + public string Id { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + ExecutionBlock(() => + { + WriteDebug("Making client call"); + + var recoveryPointListResponse = AzureBackupClient.ListRecoveryPoints(Item.ContainerUniqueName, Item.Type, Item.DataSourceId); + + WriteDebug("Received recovery point response"); + + IEnumerable recoveryPointObjects = null; + if (Id != null) + { + RecoveryPointInfo recoveryPointObject = null; + recoveryPointObjects = recoveryPointListResponse.Where(x => x.InstanceId.Equals(Id, System.StringComparison.InvariantCultureIgnoreCase)); + if (recoveryPointObjects != null && recoveryPointObjects.Any()) + { + WriteDebug("Converting response"); + recoveryPointObject = recoveryPointObjects.FirstOrDefault(); + WriteAzureBackupRecoveryPoint(recoveryPointObject, Item); + } + else + { + WriteDebug(string.Format("{0}{1}", "No recovery point exist with Id := ", Id)); + } + } + else + { + WriteDebug("Converting response"); + recoveryPointObjects = recoveryPointListResponse.OrderByDescending(x => x.RecoveryPointTime); + WriteAzureBackupRecoveryPoint(recoveryPointObjects, Item); + } + }); + } + + public void WriteAzureBackupRecoveryPoint(RecoveryPointInfo sourceRecoverPoint, AzureBackupItem azureBackupItem) + { + this.WriteObject(new AzureBackupRecoveryPoint(sourceRecoverPoint, azureBackupItem)); + } + + public void WriteAzureBackupRecoveryPoint(IEnumerable sourceRecoverPointList, AzureBackupItem azureBackupItem) + { + List targetList = new List(); + + foreach (var sourceRecoverPoint in sourceRecoverPointList) + { + targetList.Add(new AzureBackupRecoveryPoint(sourceRecoverPoint, azureBackupItem)); + } + + this.WriteObject(targetList, true); + } + } +} + diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj index c576f42a3a92..5b74a39c9903 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj @@ -116,21 +116,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ContainerHelpers.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ContainerHelpers.cs new file mode 100644 index 000000000000..a898af793140 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ContainerHelpers.cs @@ -0,0 +1,67 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Common.Authentication.Models; +using System.Threading; +using Hyak.Common; +using Microsoft.Azure.Commands.AzureBackup.Properties; +using System.Net; +using Microsoft.Azure.Management.BackupServices.Models; +using Microsoft.Azure.Commands.AzureBackup.Cmdlets; +using System.Linq; +using Microsoft.Azure.Commands.AzureBackup.Models; +using CmdletModel = Microsoft.Azure.Commands.AzureBackup.Models; +using System.Collections.Specialized; +using System.Web; + +namespace Microsoft.Azure.Commands.AzureBackup.Helpers +{ + internal class ContainerHelpers + { + internal static string GetQueryFilter(ListContainerQueryParameter queryParams) + { + NameValueCollection collection = new NameValueCollection(); + if (!String.IsNullOrEmpty(queryParams.ContainerTypeField)) + { + collection.Add("ContainerType", queryParams.ContainerTypeField); + } + + if (!String.IsNullOrEmpty(queryParams.ContainerStatusField)) + { + collection.Add("ContainerStatus", queryParams.ContainerStatusField); + } + + if (!String.IsNullOrEmpty(queryParams.ContainerFriendlyNameField)) + { + collection.Add("FriendlyName", queryParams.ContainerFriendlyNameField); + } + + if (collection == null || collection.Count == 0) + { + return String.Empty; + } + + var httpValueCollection = HttpUtility.ParseQueryString(String.Empty); + httpValueCollection.Add(collection); + + return "&" + httpValueCollection.ToString(); + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs index f427757a46b8..43aad9bbfb02 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs @@ -43,4 +43,85 @@ public AzureBackupVaultContextObject(string resourceGroupName, string resourceNa public AzureBackupVaultContextObject(AzurePSBackupVault vault) : this(vault.ResourceGroupName, vault.Name, vault.Region) { } } + + /// + /// This class encapsulates all the properties of the container object + /// that are needed by higher level objects (data source, recovery point etc). + /// + public class AzureBackupContainerContextObject : AzureBackupVaultContextObject + { + /// + /// Type of the Azure Backup container + /// + public string ContainerType { get; set; } + + /// + /// Unique name of the Azure Backup Container + /// + public string ContainerUniqueName { get; set; } + + public AzureBackupContainerContextObject() + : base() + { + } + + public AzureBackupContainerContextObject(AzureBackupContainerContextObject azureBackupContainerContextObject) + : base(azureBackupContainerContextObject.ResourceGroupName, azureBackupContainerContextObject.ResourceName, azureBackupContainerContextObject.Location) + { + ContainerType = azureBackupContainerContextObject.ContainerType; + ContainerUniqueName = azureBackupContainerContextObject.ContainerUniqueName; + } + public AzureBackupContainerContextObject(AzureBackupContainer azureBackupContainer) + : base(azureBackupContainer.ResourceGroupName, azureBackupContainer.ResourceName, azureBackupContainer.Location) + { + ContainerType = azureBackupContainer.ContainerType; + ContainerUniqueName = azureBackupContainer.ContainerUniqueName; + } + + public AzureBackupContainerContextObject(AzurePSBackupVault vault, ContainerInfo containerInfo) + : base(vault.ResourceGroupName, vault.Name, vault.Region) + { + ContainerType = containerInfo.ContainerType; + ContainerUniqueName = containerInfo.Name; + } + } + + public class AzureBackupItemContextObject : AzureBackupContainerContextObject + { + /// + /// DataSourceId of Azure Backup Item + /// + public string DataSourceId { get; set; } + + /// + /// DataSourceId of Azure Backup Item + /// + public string Type { get; set; } + + public AzureBackupItemContextObject() + : base() + { + } + + public AzureBackupItemContextObject(AzureBackupItemContextObject azureBackupItemContextObject) + : base(azureBackupItemContextObject) + { + DataSourceId = azureBackupItemContextObject.DataSourceId; + Type = azureBackupItemContextObject.Type; + } + + public AzureBackupItemContextObject(DataSourceInfo item, AzureBackupContainer azureBackupContainer) + : base(azureBackupContainer) + { + DataSourceId = item.InstanceId; + Type = item.Type; + } + + public AzureBackupItemContextObject(ProtectableObjectInfo item, AzureBackupContainer azureBackupContainer) + : base(azureBackupContainer) + { + DataSourceId = "-1"; + Type = item.Type; + } + } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupContainer.cs new file mode 100644 index 000000000000..1aa5cb29615c --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupContainer.cs @@ -0,0 +1,60 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Management.BackupServices.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Commands.AzureBackup.Models +{ + /// + /// Represents Azure Backup Container + /// + public class AzureBackupContainer : AzureBackupContainerContextObject + { + /// + /// Resource group name of the resource (ex: resource group name of the VM) being managed by Azure Backup service. + /// + public string ManagedResourceGroupName { get; set; } + + /// + /// Resource name of the resource (ex: resource name of the VM) being managed by the Azure Backup service. + /// + public string ManagedResourceName { get; set; } + + /// + /// Status of health of the Azure Backup container + /// + public string HealthStatus { get; set; } + + /// + /// Status of registration of the container + /// + public string RegistrationStatus { get; set; } + + public AzureBackupContainer() : base() { } + + public AzureBackupContainer(AzurePSBackupVault vault, ContainerInfo containerInfo) + : base(vault, containerInfo) + { + ManagedResourceGroupName = containerInfo.ParentContainerFriendlyName; + ManagedResourceName = containerInfo.FriendlyName; + HealthStatus = containerInfo.HealthStatus; + RegistrationStatus = containerInfo.RegistrationStatus; + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs new file mode 100644 index 000000000000..8dd3912938d1 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs @@ -0,0 +1,82 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.Azure.Management.BackupServices.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.Models +{ + /// + /// Represents Azure Backup Item + /// + public class AzureBackupItem : AzureBackupItemContextObject + { + /// + /// Status for the Azure Backup Item + /// + public string DataSourceStatus { get; set; } + + /// + /// Protection Status for the Azure Backup Item + /// + public string ProtectionStatus { get; set; } + + /// + /// Protectable Object Name for the Azure Backup Item + /// + public string Name { get; set; } + + /// + /// Protection Policy Name for the Azure Backup Item + /// + public string ProtectionPolicyName { get; set; } + + /// + /// Protection Policy Id for the Azure Backup Item + /// + public string ProtectionPolicyId { get; set; } + + /// + /// Recovery Points Count for the Azure Backup Item + /// + public int RecoveryPointsCount { get; set; } + + public AzureBackupItem() + : base() + { + } + + public AzureBackupItem(DataSourceInfo datasource, AzureBackupContainer azureBackupContainer) + : base(datasource, azureBackupContainer) + { + DataSourceStatus = datasource.Status; + ProtectionStatus = datasource.ProtectionStatus; + Name = datasource.Name; + ProtectionPolicyName = datasource.ProtectionPolicyName; + ProtectionPolicyId = datasource.ProtectionPolicyId; + RecoveryPointsCount = datasource.RecoveryPointsCount; + } + + public AzureBackupItem(ProtectableObjectInfo pPOItem, AzureBackupContainer azureBackupContainer) + : base(pPOItem, azureBackupContainer) + { + ProtectionStatus = pPOItem.ProtectionStatus; + Name = pPOItem.Name; + } + } +} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupRecoveryPoint.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupRecoveryPoint.cs new file mode 100644 index 000000000000..1ad78baf3177 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupRecoveryPoint.cs @@ -0,0 +1,70 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Management.BackupServices.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Commands.AzureBackup.Models +{ + public class AzureBackupRecoveryPointContextObject : AzureBackupItemContextObject + { + /// + /// RecoveryPointId of Azure Backup Item + /// + public string RecoveryPointId { get; set; } + + public AzureBackupRecoveryPointContextObject() + : base() + { + } + + public AzureBackupRecoveryPointContextObject(RecoveryPointInfo recoveryPointInfo, AzureBackupItem azureBackupItem) + : base(azureBackupItem) + { + RecoveryPointId = recoveryPointInfo.InstanceId; + } + } + + /// + /// Represents Azure Backup Container + /// + public class AzureBackupRecoveryPoint : AzureBackupRecoveryPointContextObject + { + /// + /// Last Recovery Point for the Azure Backup Item + /// + public DateTime RecoveryPointTime { get; set; } + + /// + /// DataSourceId of Azure Backup Item + /// + public string RecoveryPointType { get; set; } + + public AzureBackupRecoveryPoint() + : base() + { + } + + public AzureBackupRecoveryPoint(RecoveryPointInfo recoveryPointInfo, AzureBackupItem azureBackupItem) + : base(recoveryPointInfo, azureBackupItem) + { + RecoveryPointTime = recoveryPointInfo.RecoveryPointTime; + RecoveryPointType = recoveryPointInfo.RecoveryPointType; + } + } +} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/JobObjects.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/JobObjects.cs new file mode 100644 index 000000000000..993447cacf5b --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/JobObjects.cs @@ -0,0 +1,148 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using System.Linq; +using System.Web; +using Microsoft.Azure.Management.BackupServices; +using Microsoft.Azure.Management.BackupServices; +using Mgmt = Microsoft.Azure.Management.BackupServices.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.Models +{ + public class AzureBackupJob : AzureBackupVaultContextObject + { + public string InstanceId { get; private set; } + + public string WorkloadType { get; set; } + + public string Operation { get; set; } + + public string Status { get; set; } + + public string WorkloadName { get; set; } + + public TimeSpan Duration { get; set; } + + public DateTime StartTime { get; set; } + + public DateTime? EndTime { get; set; } + + public bool IsCancellable { get; private set; } + + public bool IsRetriable { get; private set; } + + public List ErrorDetails { get; set; } + + public AzureBackupJob(AzurePSBackupVault vault, Mgmt.Job serviceJob) + : base(vault) + { + this.InstanceId = serviceJob.InstanceId; + this.WorkloadType = serviceJob.Type; + this.WorkloadName = serviceJob.EntityFriendlyName; + this.Operation = serviceJob.Operation; + this.Status = serviceJob.Status; + this.Duration = serviceJob.Duration; + this.StartTime = serviceJob.StartTimestamp; + this.EndTime = serviceJob.EndTimestamp; + this.ErrorDetails = new List(); + + if (serviceJob.ErrorDetails != null) + { + foreach (Mgmt.ErrorInfo error in serviceJob.ErrorDetails) + { + this.ErrorDetails.Add(new ErrorInfo(error)); + } + } + + this.IsRetriable = this.IsCancellable = false; + + if (serviceJob.ActionsInfo != null) + { + for (int i = 0; i < serviceJob.ActionsInfo.Count; i++) + { + if (serviceJob.ActionsInfo[i] == Mgmt.JobSupportedAction.Cancellable) + this.IsCancellable = true; + else if (serviceJob.ActionsInfo[i] == Mgmt.JobSupportedAction.Retriable) + this.IsRetriable = true; + } + } + } + } + + public class ErrorInfo + { + public int ErrorCode { get; set; } + + public string ErrorMessage { get; set; } + + // Not including ErrorTitle because we are not filling anything in it. + + public List Recommendations { get; set; } + + public ErrorInfo(Mgmt.ErrorInfo serviceErrorInfo) + { + this.ErrorCode = serviceErrorInfo.ErrorCode; + this.ErrorMessage = serviceErrorInfo.ErrorString; + this.Recommendations = new List(); + foreach(string recommendation in serviceErrorInfo.Recommendations) + { + this.Recommendations.Add(recommendation); + } + } + } + + public class AzureBackupJobDetails : AzureBackupJob + { + public Dictionary Properties { get; set; } + + public List SubTasks { get; set; } + + public AzureBackupJobDetails(AzurePSBackupVault vault, Mgmt.JobProperties serviceJobProperties) + : base(vault, serviceJobProperties) + { + if (serviceJobProperties.PropertyBag != null) + this.Properties = new Dictionary(serviceJobProperties.PropertyBag); + else + this.Properties = new Dictionary(); + + this.SubTasks = new List(); + if(serviceJobProperties.TasksList != null) + { + foreach (Mgmt.JobTaskDetails serviceSubTask in serviceJobProperties.TasksList) + { + this.SubTasks.Add(new AzureBackupJobSubTask(serviceSubTask)); + } + } + } + } + + public class AzureBackupJobSubTask + { + public string Name { get; set; } + + public string Status { get; set; } + + // Not adding other fields because service is not filling them today. + + public AzureBackupJobSubTask(Mgmt.JobTaskDetails serviceTask) + { + this.Name = serviceTask.TaskId; + this.Status = serviceTask.Status; + } + } +} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ListContainerQueryParameter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ListContainerQueryParameter.cs new file mode 100644 index 000000000000..08de6d174ffe --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ListContainerQueryParameter.cs @@ -0,0 +1,41 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Management.BackupServices.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Commands.AzureBackup.Models +{ + internal class ListContainerQueryParameter : ManagementBaseObject + { + /// + ///Containers information for registration + /// + public string ContainerTypeField { get; set; } + + /// + ///Containers status information + /// + public string ContainerStatusField { get; set; } + + /// + ///Containers status information + /// + public string ContainerFriendlyNameField { get; set; } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs new file mode 100644 index 000000000000..3553ccd653b2 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs @@ -0,0 +1,89 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Management.BackupServices.Models; +using System; +using System.Collections.Generic; + +namespace Microsoft.Azure.Commands.AzureBackup.Models +{ + /// + /// Represents ProtectionPolicy object + /// + public class AzureBackupProtectionPolicy : AzureBackupVaultContextObject + { + /// + /// InstanceId of the azurebackup object + /// + public string InstanceId { get; set; } + + /// + /// Name of the azurebackup object + /// + public string Name { get; set; } + + public string WorkloadType { get; set; } + + public string BackupType { get; set; } + + public string ScheduleType { get; set; } + + public List ScheduleRunDays { get; set; } + + public DateTime ScheduleRunTimes { get; set; } + + public string RetentionType { get; set; } + + public int RetentionDuration { get; set; } + + public AzureBackupProtectionPolicy() + { + } + + public AzureBackupProtectionPolicy(AzurePSBackupVault vault, ProtectionPolicyInfo sourcePolicy) + : base(vault) + { + InstanceId = sourcePolicy.InstanceId; + Name = sourcePolicy.Name; + WorkloadType = sourcePolicy.WorkloadType; + + BackupType = sourcePolicy.Schedule.BackupType; + ScheduleType = sourcePolicy.Schedule.ScheduleRun; + ScheduleRunTimes = ConvertScheduleRunTimes(sourcePolicy.Schedule.ScheduleRunTimes); + ScheduleRunDays = ConvertScheduleRunDays(sourcePolicy.Schedule.ScheduleRunDays); + + RetentionType = sourcePolicy.Schedule.RetentionPolicy.RetentionType.ToString(); + RetentionDuration = sourcePolicy.Schedule.RetentionPolicy.RetentionDuration; + } + + private List ConvertScheduleRunDays(IList weekDaysList) + { + List scheduelRunDays = new List(); + + foreach(object item in weekDaysList) + { + scheduelRunDays.Add(item.ToString()); + } + + return scheduelRunDays; + } + + private DateTime ConvertScheduleRunTimes(IList scheduleRunTimeList) + { + IEnumerator scheduleEnumerator = scheduleRunTimeList.GetEnumerator(); + scheduleEnumerator.MoveNext(); + return scheduleEnumerator.Current; + } + } +} From 5b2b85a0f7a08642a15364e4c9ca1916f2046d84 Mon Sep 17 00:00:00 2001 From: dragonfly91 Date: Tue, 7 Jul 2015 16:23:38 +0530 Subject: [PATCH 05/58] Adding other cmdlets part 2 --- locker/PSOperationContext.cs | 25 +++++ .../Commands.AzureBackup.csproj | 9 +- .../Models/AzureBackupBaseObjects.cs | 1 + .../Models/AzureBackupEnums.cs | 99 ++++++++++++++++++ .../Commands.AzureBackup/Models/JobObjects.cs | 1 - ...ure.Management.BackupServicesManagment.dll | Bin 0 -> 152576 bytes 6 files changed, 130 insertions(+), 5 deletions(-) create mode 100644 locker/PSOperationContext.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.WindowsAzure.Management.BackupServicesManagment.dll diff --git a/locker/PSOperationContext.cs b/locker/PSOperationContext.cs new file mode 100644 index 000000000000..ea0b67f93da7 --- /dev/null +++ b/locker/PSOperationContext.cs @@ -0,0 +1,25 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System.Net; + +namespace Microsoft.Azure.Commands.Compute.Models +{ + public class PSOperationContext + { + public string RequestId { get; set; } + + public HttpStatusCode StatusCode { get; set; } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj index 5b74a39c9903..5b0f077dd94c 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj @@ -56,10 +56,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll - - False - Resources\Microsoft.Azure.Management.BackupServicesManagement.dll - ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.14.201151115\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll @@ -78,6 +74,10 @@ ..\..\..\packages\Microsoft.WindowsAzure.Management.4.1.1\lib\net40\Microsoft.WindowsAzure.Management.dll + + False + Resources\Microsoft.WindowsAzure.Management.BackupServicesManagment.dll + False Cmdlets\VaultCredentials\Microsoft.WindowsAzure.Management.Common.dll @@ -191,6 +191,7 @@ + diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs index 43aad9bbfb02..eacc3110e4fa 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs @@ -12,6 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Management.BackupServices.Models; namespace Microsoft.Azure.Commands.AzureBackup.Models { public class AzureBackupVaultContextObject diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs index 79cc0f9b20c0..f1e05e460c57 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs @@ -19,4 +19,103 @@ public enum AzureBackupVaultStorageType GeoRedundant = 1, LocallyRedundant, } + + public enum AzureBackupContainerTypeInput + { + AzureVirtualMachine = 1, + } + + public enum AzureBackupContainerStatusInput + { + Registering = 1, + Registered, + } + + public enum AzureBackupContainerType + { + Invalid = 0, + + Unknown, + + // used by fabric adapter to populate discovered VMs + IaasVMContainer, + + // used by fabric adapter to populate discovered services + // VMs are child containers of services they belong to + IaasVMServiceContainer + } + + public enum DataSourceType + { + Invalid = 0, + + VM + } + + public enum AzureBackupContainerRegistrationStatus + { + Invalid = 0, + + Unknown, + + NotRegistered, + + Registered, + + Registering, + } + + internal enum AzureBackupOperationStatus + { + Invalid = 0, + + InProgress, + + Completed + } + + internal enum AzureBackupOperationResult + { + Invalid = 0, + + Cancelled, + + Succeeded, + + Failed, + + PartialSuccess + } + + public enum AzureBackupOperationErrorCode + { + BMSUserErrorObjectLocked = 390026, + DiscoveryInProgress = 410002, + } + + public enum ScheduleType + { + Invalid = 0, + Daily = 1, + Weekly = 2 + } + + public enum RetentionType + { + Invalid = 0, + Days = 1, + Weeks = 2 + } + + public enum WorkloadType + { + Invalid = 0, + VM = 1 + } + + public enum BackupType + { + Invalid = 0, + Full = 1 + } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/JobObjects.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/JobObjects.cs index 993447cacf5b..321f14cf6db3 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/JobObjects.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/JobObjects.cs @@ -19,7 +19,6 @@ using System.Linq; using System.Web; using Microsoft.Azure.Management.BackupServices; -using Microsoft.Azure.Management.BackupServices; using Mgmt = Microsoft.Azure.Management.BackupServices.Models; namespace Microsoft.Azure.Commands.AzureBackup.Models diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.WindowsAzure.Management.BackupServicesManagment.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.WindowsAzure.Management.BackupServicesManagment.dll new file mode 100644 index 0000000000000000000000000000000000000000..3d16ad367de06d36c1539691f208cdf4931229f4 GIT binary patch literal 152576 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 literal 0 HcmV?d00001 From 3c2c409a9906159bdc794c94e5ebafa2c371e35e Mon Sep 17 00:00:00 2001 From: dragonfly91 Date: Tue, 7 Jul 2015 16:56:22 +0530 Subject: [PATCH 06/58] Adding other cmdlets part 3 --- .../AzureBackupCmdletBase.cs | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs index 68e8ea0d1955..c56d64dec66f 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs @@ -14,14 +14,18 @@ using Hyak.Common; using Microsoft.Azure.Commands.AzureBackup.ClientAdapter; +using Microsoft.Azure.Commands.AzureBackup.Models; using Microsoft.Azure.Commands.AzureBackup.Properties; using Microsoft.Azure.Common.Authentication; using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Management.BackupServices; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Scheduler; using System; +using System.Collections.Generic; using System.Management.Automation; using System.Net; +using System.Threading; using CmdletModel = Microsoft.Azure.Commands.AzureBackup.Models; namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets @@ -135,6 +139,55 @@ private void HandleException(Exception exception) WriteError(errorRecord); } } + + /// + /// Get status of long running operation + /// + /// + /// + internal OperationResultResponse GetOperationStatus(Guid operationId) + { + return AzureBackupClient.GetOperationStatus(operationId.ToString()); + } + + private const int defaultOperationStatusRetryTimeInMilliSec = 10 * 1000; // 10 sec + + /// + /// Track completion of long running operation + /// + /// + /// In Millisec + /// + internal OperationResultResponse TrackOperation(Guid operationId, int checkFrequency = defaultOperationStatusRetryTimeInMilliSec) + { + OperationResultResponse response = null; + + while (true) + { + response = GetOperationStatus(operationId); + + if (response.OperationStatus == AzureBackupOperationStatus.Completed.ToString()) + { + break; + } + + Thread.Sleep(checkFrequency); + } + + return response; + } + + internal IList GetCreatedJobs(AzurePSBackupVault vault, IList jobIds) + { + IList jobs = new List(); + + foreach (string jobId in jobIds) + { + jobs.Add(new AzureBackupJob(vault, AzureBackupClient.GetJobDetails(jobId).Job)); + } + + return jobs; + } } } From 1411f8734b855daab9048eb75893e2a3f2911baa Mon Sep 17 00:00:00 2001 From: dragonfly91 Date: Wed, 8 Jul 2015 11:54:39 +0530 Subject: [PATCH 07/58] Updating the hydra dll to latest --- .../Commands.AzureBackup.csproj | 9 ++++----- ...re.Management.BackupServicesManagement.dll | Bin 56832 -> 176128 bytes 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj index 5b0f077dd94c..5b74a39c9903 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj @@ -56,6 +56,10 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + False + Resources\Microsoft.Azure.Management.BackupServicesManagement.dll + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.14.201151115\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll @@ -74,10 +78,6 @@ ..\..\..\packages\Microsoft.WindowsAzure.Management.4.1.1\lib\net40\Microsoft.WindowsAzure.Management.dll - - False - Resources\Microsoft.WindowsAzure.Management.BackupServicesManagment.dll - False Cmdlets\VaultCredentials\Microsoft.WindowsAzure.Management.Common.dll @@ -191,7 +191,6 @@ - diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll index 19ae95856d579c69a01aefd4a23ab3c84768c4f0..ca702f6452f2309af8c01c55a5de0f56c7a50196 100644 GIT binary patch literal 176128 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 literal 56832 zcmeHw37lM2mG`YzOLteVRn>bso$4&4l1_IzNhfJy0$E7{+0y|6!KBk&BuzS9ovLm~ zsFYtKpyHr{qN0KWf*XShxQrqy$|BCVprfK};xdf8qKu;s1KSgl<*DAkKDuC<77nS-n?)+OR=}RXkP+T+Zo*MOuim!Ei z+PCRz9sLJ~Gx4!>>OgwnaC~rJbTl;{-=B=9Cr0DLqw%#{cg7E=hLYXY)!~_@>TTNdDqV?dwiw(u07sZ0H*Y>U&b`BrDPD?sRe_1wzWIAhYP;35P^7E0tQEk5TFo z>J@*K%~C;CejOU!Z?r5WuPll6XnjF~h_bR2INYg1b8S4jNIY)&c&MIu-1710F7dc& z{AtSa=LpSJ%C6JU1oLPJd1#D0FcVKbgo>O%im`$@ zj)qke$Z@o+L@k7{Qs_yiQW#H5o&4{Rue1>99Hp#=+@*wp92|$Uap#}qPt=Ga{{{oW ze!c^B$~e>n6IcU~{l94>w5?p>$Qbxr%J>(J26c8Nv;iRB?r%MN~%&kz0wiFJ0(%5zld|XD99y3WUCr}=m||C1MHIZL%SY&LLM0m4YcH;AyiBQt$1h%71K24(GV)8!A{|+ zhfpz1a~=&L4~@|+HX%VEP-+qapOtb#~;@6Pkn`rcOOf&!Z<)L~ki~t-7Rm4f&O`hF~Qg zE}EB^B5Y?yUOR+dvYpZ5c3OP4hkDvL`zV~8B>U$TH>zTX-349?d3%f82bZly5D!sD>uGX_4DJVVD)m3(0 zQR&Wt(iEmzSUYoe^}~fEs3nw7a-B<(z&s4+=A$92KG(xrmH;+lsqeV566kd})*fxA z?+_N63?@`K9Fm^s9;Ps5!YY)e^p^C>#!zBQdSYWfCzvj@qA^xhw+mAZr2h?tp#&yW z7|Ki6TJVpduYhG`c}qutNW>|JV6)^&U4{yV7`Rinrzzi zg8T;T8aRptEVf8HOL3$RmBhZOB=)+J*pjqbw}p~qW>6ywsi!Q{^oLPn3Nt7S10*7a z*#WQKvWGR{^!HIvrXNS52@{wU;RNhoE0|=iin0ENQVEtVlBV1=1)^}%?iAD%o;F`1 z5gCIHRzR{weY5Fc_PP?t$AN4t;;gqNY)Zj?U1?ZZnyS%^uBi5K{D2+$F_IK4%$P}i zu2%%M=k+>xhBB$Wlex3L@7F;0{R!@5-*ZfUgM@Q9)6JT66-*PDA>kB^mg?1Lc0xjs z6mm8?1=WYszo0;seh38F^NX5*wX!l3UPaw%g5zi|kU+g8cD0XHAAYQEjuffIplD3N zoeIaMMW-c}G82!+6Me{Zt+N_)?5-7w=g#E)I0h~djav!nRAa2=$*;rbwX!UX#jR+^ z3k{(6MLINjgK(p^WvER>1m%=xT*1u>vjXO4wbI zhfcDQf$OJ-#9+?=)(Exi%`gfrSCuU|i&IcsI5xc#7ScH{GCj2tV6}?+6RU_1AhVj8 zV0k1E33^&kpk2cf?gn3eYFeblo|Li3bXyVSAX*C|^@J_*dFWrc=?0Wd^*1%X34`NH ztplMR7GoV8qQqIiX4WG~A&hX$ZX*$ABS{aS!o)cQH%WPY?sTxZdtcLTs6T&}bk_FW z1XSOLeMs&%lOu1tz^pZkxy+NztXWx;7&IndIM1NB0MVG*iZnJOIwP@-nVHd!6C*oXDKig{T9!J^F@e6vk|p>awgQmaw98UueK$GbJ)t*K0JF zNW2=v(S$CnPwWL0>$D=BIjjQEMQQ!9EU^!yl!UIjksH`>?o&bWiGYSP;-5;u8Z@3+Hx>1|z8b zKnV$2Bjvn^zVl2rJT2@omoz4o%FIR0F|74eQzXP41yQ_k%1W9VViRSNvU$~!vf?_f zMinXp%M8WJBcVt+_uP<*l*w|cc`G6n;H@a)?b@m`7}iiM94U{4Q_wURD`aiejFpi} zFjf{bHmFEtB1yTbBH>6?3Z@dG97gP0u-NDtsw35?p}J%Z)w+fnNL`b<7?nBvT-`N) zZKM|bwI%s$HGduW>rw~2{2z4qBasOBBPIDGnm-EuXzHMspBsj5KNg9BKUR`Irupl^ zU!RJ2`MG*){)R{c_#2A(k0GRJNDYH4)+L)tU!*H_3BYlz=)UeJ?RyqCz7M4E+9HK~Gv)d7S}Zx&&dC0G@;P>S8IGpa;030P0KvQw4KWi0z~?5vGwvk8vW z8j!~VkpM$kbWi$(G6`Kl=7h5FezySbn}PoJwKHi!0tv0`S*QY|L^mZE2^L1M>x)V~ z5v-0b&jtxr{d0KB60obf#EvdQ(U6WVNs}L4vUNLh)X^ndv@trC+~8oWtZro;FzLH6 z>k4AYO~7MW=FJmJ3N}lg60s!vEV1OIRGx5*G+g(k0XLQuR*lvAEMT!Y+*s1X;fW=^ zST{cOV%=EMi!DiOWvR(RNpvi^86{ShXqAp+YR8C}B~C2Kb|jW08DdG^Y&zIzI7b9bmF?umlH`SLod}=j|2jm5K?n8OU+>W$;ta0Kys-YL z&T!v5sl98A;_}uDy5)L)vkwUvSs0whOLrEvA-wQ(7Q=0a7vX4FhZmL6N*!LTMR=h* zTbY9wZg;j)9>q#$_d-M~%d%Ld6|FMSMU|#DovqZ-MWu-@s;x+MPIuS4?77`wnHyaY z($NJX9;k?^L>GGHT~+~|6m*x}tGBYc4dE~JjBBDbI*zD~*6KLoxQ-+0tVmrB)Qlr^ z&ueptJnWv=T72v*Jx`)tD@#%xM%2N*x)935ZI8a0FhXj}vXWS>6^)oMBBHA`Dyr3C zL~ULe5w#-G90D_Ry0oHLme_~JCJPr{tK1?&V~0N zbbBi@T`=RhfcZ!Kg?^=;$90|uFNH|10FGBP@|Y9!M>u2i{1LeKs>%2xTo~w&aEqls zvR>}N99NU5f47IlWS3!I?Tt6tQdozH8Gd zo~eHoBi+Z)zLZA-2lEObCOqvbvQEfJuL)*drML9{UY%9*;z@S@M+dNGPayB$HBkHg(c) z>y-vvk3?8C*2=O+1uQm)>ydakJRXS`>v|bptm~0@u_bA(EHzmuiS|hLqr}QG&GSfz z@OmWFjd&z%%!gj?e^SZN~*ivZt<-x-R&<2*=-ia+O6m`AHOcAn7Z7&73y(|pPz)SJ=m;J*QpxY4sLNBEw+M&Ia>Cx$Vr=2sb$c)?w z8)}v@vm(=TqXc!=r(20CyX#*Ku%&bhU~;%AD6FetAwg@TU$7JV%7|5!XG^ERU35Q8yCJ&l#=)66K2Sh0vfVz8|t9j)$OoMzVBu39WIn=U%>L>I7xiij= z14=J!q;ui`0(UxZkuqQMi_s@e=LA^^Mgu#6!=cTYJ3vYf4oeo?|bm3ScR}# z@M;BOqmC1}eHO(DEhbLjF3mWBZX)9ZI%zz&kSzjE>Oc#|doRjtX>~z!q(cjuXZmjFr``904Yc zQ|H2yOH3$wfxLO*1i@y>QzA~Fpb{rcO6762NkfNN8gSzTVbxfz&jJ>k!;KR>9G*DA zi*9{yx5YoR+gHaM3Sa}{fdy(qoapoptrJ2^P&eLywL+SCeZ^~z0m^+J<$V; zsVrCVZuD?D%B-xL+EKw=Sc&~^4BL_DfnMl3uAS1k~JIaWF(@=8*=1EZObS}w9bhhjJ0`#0(B0mH-NeeWFc!0-^(K0#*W{+# zF&#a`O!UxTMH+ItqX*cw9X)va%l;vH&}|6+E_BoTu0&(B zQAZC=(WboUq1lQw=dNHw%`#?Iq$zh5LEZHxd9`169q+@S>!j7u1N;gdJv8g+q1lce zq`E9?i8Wc#785uJqlf<`3?4O^ zEoj+Kb)4nZ)F~>5(StUGNwtCH95TF;P9n-iFn)s4W>#auYQgJsCq;hZb@admOri%t z?MH8g1g(*h(F5=K4kZoaj|zXfFnuAGczK*&SvIe#;1vkg->AwG&{(+2%2Ivhd{+y; zyWxJ+c7CfX=2aEE1i_Zx#FjEcV2NRReZ+2=N5k-ZgGGWeZU}0}IfPfg zLa701yCQwH!&>sy4ayDHGR?}j#w4PUkOPvtW?;LtrDq%I9G8|rEDV>n!uDI}($Y%k z(y~SRsbV#bOPfb3Q_n+6*z3|((xnwsk_m-(Kw!4c1A0$EI00E;*K=3FiG^*c2eHyz zk83ylH|%)wM?8PnQ-MzNnY)cQ#p*8Lc(nqtQTwf2xc!L}s2kfWpSSNt*%afqa(AZR zN=J--E1d@Vt=v?^Z{^&9-wJ~Z=VS|j-%6q3w-VHTYXpM8ZzUpuxvw9y%lY=PO8MO< z{MKeG`#O}zrbMQkqTgBt-o8(v$9;D(xr50Ek)Y3(erkRVD#ZMUHNpxBa18NMde=qv zQ*#~=wNZA`*uLjKz|5@d)xcb{89K^$H{S@f##mWh@f(0ie;hmo56a&RJlqD}Jnp7o zv*an^Zc;XJHz%d?cxYWHqR^GjZa^y94Jt39uto6~r5m2--{kc8 zi*|2a&DCI4(9gfG1F4mDQ`--OK|B5;dnW!O$>1;YX4Ao9!Z{+)Ew+>IFOpOIMHU%< z(Uyix#$O~#`-{xk<5J)+N>P38t)y`5{V(ztbrnqW{6&psGkN|Z(UbU#ZjtsE#lT-h z-7bP!a18l(Y{U4AuJ&s|VP$o5r11KSJZ%+!kuO#Ep%!_Un$z2gOv}BC_v5ce8l5IT z*rWH*{Nxy1F)Pc$*fh(2TN=lzLf()gH)_-VA`WHgO=51pjg>i?JY|2;yBN@W&@-96 zas0*7-PZo1r`uc5J>xI(1a=$17*Alg>uxuR;5>4D4<*&z#*u4`>lC|v3@f#jWg$;e zXBdBRh9)=Np052xoTOIq9n_f?PFi)xOZS6iuD?h~`-|68ge+6rUxaPj{-U?P>>p;n zZbSGB{l!_)S=wJbEqYp>zc|~9%+9@=4K}+?rb>ibLR@2J0CEd?um8DBWJ^DA30ax$oZh*e9%#E$W-AqG;KBun7 zJG+Oawa7euPEB!mPTg#~Yq7{YdfUX8gJ>H7h>XL@;v(7iSFyT z<2F=?edPVTWeM1ZoGOYtNMpwx3ouKq?9IT~A%~7cZULr5B=SCo(8}tj{vMe0`(fGz zk;n&theOJnClV2CmOL*NiA+l6`uaK2FcOgl+=Fk;%Kq5q-ELFqZcbK(8_Y-*I)eEi z>M_C0hnUSW%?oCTC=4wa%#hO#W=K;am=O{k%uw5t1T#YA4Q7ZaY*B(4(S#?MA)zOj zVKG(VD!&FRiw!3@!p1T$`t4rXMIc!QZ+*#?$z z2EVTMbugowBgM-HGwd#dnY(yD{$8XEW*WH)xWNny^Me^7Z^)6mL@@IYtjy8mDF-v& z6^5>@UJTe9CzvVS?K0@W%6hu}vcZh*_VnDxDXH!@f|(|}+s8t57+IJf%m}&ZcBx=S zcf52zSmp*Zgmf@-2Svy-EfLIk`^)|zn9*$r|1R{~d-(m*!OY!ks9DC0KXv>BLEUu( zGtG9_budHPmkDO1x-4tS4`!rZqoc`#nUApbygkJoah4_a(Y7%N1Q^VGR2V#JDhOu0 znmR@0FqqMXFsU|lF!M?}se_r1QCc0$h~V|PJ4Jrt3xXLz?MH8g1U)7tgBjk7+&Md# zVd394n4z5i6U^{^1NhMeFVUF5;(vmf|E^$0%=wiDGql*eV8&e|>|mz!QcOB0m?2Oc z%y0>@y*)-KvZRd3np7Cf$hzzaW(XGrGqTReYFiM@cnUnhj2+8N#TvK?al|n0({Se> zTy!<3T*opu72w|*(6P*#O7Y_z`VD>^%Zz&PQi$X|!140LGV}xTVwt_5Yd5hB-3`Vv zH_JVcqoc`KhCYfsOW{(CXDNTjHBCGU1U2j?f*OK4sA++K2x^G%1U3AvK)LQyqzTXL zK8a#JUpvJ|DK}LhhT+e!`c^V|6_X`MI=Pd48g*evxo_Zvg|7fTiV#D898s6@oWcG+ zjvQpv=m;sU76ZMJMeyf!K~b*&!K%A>M2{7;rd8 z1nijY4-=sjwd3@x&)s@Yw|r+`^nEe zsMZda+|kj&l9q%N-e8Hpd|V27V-?W~_a~5CjjTvT?w@%-{wbu<3OOo4uvGQrjv!YV zmf_{aXxRMBAgrkya%4tj%TTMbe;|p4)ZMSkeVw50K3;vp<|W-fi2<>)B-NoHKA54O zYen>Pt%&^|l+>1GC45CLYTkp2>S~Ri>hyChydj5qH^qE2CT2xqxi7QvNd}!|iG7fs zk`Q1h_^>c|RAsi{WmU!6Iz`>AMJV{v${0u8)+_2Ge(D&h&wYi$W+pHzwcPc&e-iPD z*O4GsZ+WaGsQu`ykf1eEG7{uHKN2KQ+)&8je&Sm2;l~uzO<8Ij&CzfK)K+DC#HFp0 zY>r1vp!%t?a@(`v;Xd_9f0zx^9~QmZ{%{^8?bAz1*y|1lc(yOP7K4if64!BjpVB{s zbqgvIcq)K#cit0vD5%sun2{$c@_z?=61X|&?(H5tIxm0U1&&uMppE*Rp3AmBfrk^` zbNaaPZMi$px8-`ub9(MF^ldo-;nH3YuAHpS|Sqf0Hu6|1I7-Y zwyj#J4mqdCHzmIT0zT_GMW^;-RahLaLnr&LVe)z=uSLS0Hv28qWt>{`P03i9pH<+Y)M+LOpO@Nf)3gJ`91WRfTf3Xo*MNC z6>?|?`TNv%mT8`YOoZ1#riR5qX0=`inS>q(nZ;DDJ5V(cRzEFx3}sfM__F2uDR zWVRy?GRfc|^JddwGK6zPU{0`|dHBwV9euxL@(U!Kw%S3~RWQx_jHE`hnLOW^=t+EIx2VYV{SIsIg>s-5 zSMS>O)eVut>-v`dfF#!}{y6j*-j6?mG#a-O?cyom^KxgDb1`CJ{s$z5ydg*K5+9I! zf|b?hp5#sYzE3f0WqI?We?YWgjqgi@?fY_(lVyw#(VY)S()T4*I#TW|I$Z07sKEE7 z0C~Qz2$t3QVZPY+6_sO0nbh}v8f>n8l=gjZqIKLr!??xveZ9*ookqPJvNgx|Ej^^# z_w@{^$M@xXT;lukTZ-Euw0uHQ59y2?Y}6jo85X~{%SS&gPaeXSYGqj%n;}1q#WuvB z#tOL^(iz(MHE(;x_%%{m#+#8b!_4-tX)@?^j-X`Vm{t+g06RXPM*u5}^0{ zV`1><%IwC=?to8#Si!5VQ&bKgglKD+R2vuJV9|O-ozx$M{0XJaq%rZd;PttG75RzR z?l0G7aeoE1AA=<%XpNL~e|gV$e`y`}TI{YAy02Z8c&m%FZy{}F52V1EA{AIpk2Ivp zWOb1D!AkrBKucDkU!DozJ^a*qGJ(ta)j{cZ|H+8Arh@XzgIEaPUQF#YoH)2OpZ_cQ z>c8Q%U;W1mU8&86bF0HS={FnErja(xk2aoTI5Q6Cq#tbrr~T2!ayGEYZJ?p1 zB15GmG-=M}a{Q7A>n}LPcHOCLM`usd)ZYc2qmv&{{Sj0y-ZupS)??I-UIFGIn<2;5>jPvM2FwUcbknNzasZZjGX)f1fY-M zgOwNIJ`;Qy2oMT~{5kT40y#2E$*F7!g^7LaD%kGz%m0Mf?92a%@G zdS?Pvb*63y2)PsgfV&AzrL9I=M#~=v)&zt(6}JU)x&zt(`;yb`x{Ari!^bC z%_wzaIZ(6M52#1_L3;Fq4Cn_r9Qkkki{uaT-)hh@QGP8wW`kCzEqzJZpGE6d_IHy0 z9%|}uK-aS|?+-&eTVY-F!69ZnW$oldE@_N1^Qa zH~TO?m?{nP6Jvi|g2Up1gk&dH*cwe$pBrG z!x0^G@0E%UnY6A&CRf)OpnTzDJzCfEyt;lKty|guLdvJCMY`^y+!%Y2o3xOd#E!ri z{7~lZLR~|YPX3EmovDu-U4Noj*CL0bYnW2LxQ?#7z4E>w^1djk@u|853TU8 z3fHB*-96oldKN7>otU5+LHZobYQ}5u?;~P_Zp3V!v2#2rgt3O-6wn8fGf8453eg1^M zMs1e#0;FMe#Q$r2Z}{y}`hH*<)o+7O2Schkg9)*8Uo4bsgntuDc!dTkBZ5 zyNA?tJWAxH^o@V|$u^-iQA_0fj+H8iUG8d%%cCH-9k>kKwBUEcU~uvH`v zsW&!0ZcSHrB5haSX=J}@nubsVWecn3Cd$lGXrqamInqR(T+>91uZ>(~ZKSVhqx^&M zMfInt_r>2452<_Or1W)&v>l|MBl$H*PgDCOe`&|l7$t2jOnvGWK&ut4l8_Jfa}6NW z1FJjft5g2~s2Y|P7s_u7B_UG&tNH^L{|c25XtwVU_zHGd%@b%FpcYlBdITB~s7fso z=xRXK3RWo4Z35M*R|)hPp{#?gvxUc`EUMNB^ecg4>MVh3EY{KvkBXFS0!>r<1nLy1 zLnQ@TCD3$yr<;^}1)6~wP3Uq!E%3<31bTV)z` zFN-npj$r2DU(W?}a}%L8>a7C3vzgHO`1dU1PHg!EcT@0QXB zCHc-%`dJ_LZHD{F}>0k$zAxzb$($@~!1>MtWg6X>@wM&Kg4S?eEcX6yGfv-Ph_`u%3M{#(hvD6L0Z*!pQL zY`w3At*>sO9=5fR>p%$s1cJ$-7&;k{qfiHC|plJlaA@elB&sAZbM_C5gAP zmHDmI!|GN_a&9XnIoL``(ybZPd_rj6*-A-nZ*?WPr#~!tHZV=KdPoJd1d%T zD`j{=YKu-`yHlr7hF(e63+CJ@lw^1cCCN>pByX8QN!~T(I@J6@q51q2O7hJqt|UL4 zLP?&TQd$yi!^QF}Z=*b0+bGGPq@!(==PF5W5X=YLD9=4@l;`Vhl;`O-%JcI!%JWB| zshvuBrcZU{SvZyQte)zX=i(|`GtX3yBJb7A*i=e##Z*f2PD$T4m6Ci$@()j?43A6x zS+o^W{&vozE=kw6Q?~QlDcdFOlx@5{jrw2P&f4D9PTB5gcV)Y`ow9wk-7DLXYFoBI z4Y}%TjsfG9@Xzg(uzDIxJ0zVqjS{Yr{ElgqFe&-$G)nlUX_W92lK%5FO8A3mlSp&Y-%%K$J76?lchP48m_x_; za)#8m4MaI%{|2I*W$KRxqMT(4DEvKBK{?A+n}H~2x#FoEdRsv`E7VGXUf29s@DQLI z94G~-54)~XEIWps`C$ioBm9pzqHbMwE&Qwp9Oy;_3;i=$_JI1&;0NSvjL<{D)uB7( zAF$NWxuGwrIJ5YBD7YVxFbQ-h^a%Vm{r6Dt>d+71x7pC!LcfwYgYZMaJ3`OHZ?ntp z4^{e>sGmqhuPc8hG|jh6J#V0Y56uJ=LUg31J_Mhx-hui6ZPJkNEmuPZBHwZ~>QEk1 zE7WlZn(teo9x;@k4lMJXseWpp+OjhN{m!90q*mf(XlcECMp*}-W&`z<^#Ph`po3*Q ze5=%Q17*rC1ay{$WQ(uiGT2cN^Kp_bSwe_5(>NQk;u)G6) z@H_(@E$;)g#6!7Wt@Ti@S9?5^>(xO6y$`i)P$vxZan!OwU1Oj}QMOUtW}si8Y@@o< zKur}L>TLC}fx0XD0Dap)=b`Kz^-BYdpzIv=M+04rvQ4T^4DWU2*Q0EcYBLb^vRU;S zh?4H4T%-(P*0e$JHs7nhkDLHp9%K?dci}vQ&r8;R`+dC?o=}k z^b=6-R6Pa?Rd%R;wZTABD*FKK(2%sZOYJjddqKHN9W~H6D0ivXdMM9T*P61sDnIW# zSAEDp|6F-Lpu0Vk=c)S~=ziaM>W_x5#r1{$sU1)$eDl!w%X>RMCw{;EIwE>s^f&?l>21a!BDa*z6)Kv$r> zu(d}$BG5Ax-><5-E>bJy)a4l;*RzY%BdaLOGd`|o`_&&eYl!RF#p+HTn4pa7*(Itc zsUfasqw4u18sd6(M1AkLhPa+hsQcciA+Bdf)d&v$6e6@=RJB{j)%OgvI@D>MRK3^e zvOiZXw-C1(=-kkH>y7HS2J%%ex8AJ!-=rz`qwKBf4g&?N&$Zs6>fWr&4uuA+cdH=- zwO5Z>?^X91=<3kr)-9^}Et+yh^&70))Nup7E%Y|)L+TL&EvPiD`tiIQ}Tm95P_lF*~KBayt+Wnz#r0$TqNA-wyf9RX2yTX5u`hZhW4U3RY;+TxadPTefypvyj|;3_(NpI31i6fixihj+svt;(h9RsksoZ>4TG&YOcQ*UbbQ(a%Nk1A`QTw=Beo; zNPQxMT}pi5FU0={yq47L&#QrWzu@hfpDCgY)R4CxX+EXa>U`jB4fhG97xPLr|KCTy z#v|u$PhPk9|N2;rh~~A$(v|{ZOFBq|7gnv`x|$Nxv`Y&lLBjpDFH- zb5wP#Lv8oXiT&2U-M2LMoPW1(2QV{*a;7>M!{Z*`<*`WMi0}2WX@QOE%_v=^Zi&qb z%oCbuu6Rclt+9&5d6<$8-RZ(v;Gr-3SXe%-oPAH*KmJexmwcjSYWMM+wg2)liDWf`3)}w zz5;*Y9f1mUvH@``dhHMX(D#oGHNl^up86nUYiL9IOv8-evyf*_&}X$a&JX^{7jIk= z-0tgXToJ6Wwl=N{_NzPV_uwq~3-x0-Kc-Ye>e>2dp|{ z=*NZrxX@n-O@29erFv`QvwTX&T+U{G?v@F!(qaJ*c_NvuQD?`0%Yg12PyTvi;6>Hgz{4asOr*TtRuez>j z7t(h&?Jqm&yQcZofs?-5TV5TwO-6+Bytm>uspmGS=QgR~HsQTZcyANlVT<;5hj1OS zmNeWO{)AZ69m0Eu@ZKT3cL?tt!h45lm-FIY;XS5W8*i$*SGevKu6u>+Ug5e|xb79M z2OJ4MRNaD+y|el{-(~SnAw3cQZ1vUFN8%4wKOpryAoV;T^*kW;JRtQvAoW})nz_qY z-SM-UuVMtBuNhGB4y*RV*3yo$+ILy!byU}W#!7W8sQos^dVB2?GMYaT%3liRIl(+H zm;kJLduNWmuJdgTDT{oVe zwnTnx5##qy3BJZZL((;p4oZ53q_;|Xzob8w)E^LfN!Lg^DCrfF-YV(+lKxmyRr_(Y zg4F-}P+amz{m+%HL>j6aPu-kUUcVp~{;jkJSHc<$aPz>VKi?X~`q?57wwU z_98CnN=f%gdP35hCB0A5rzOP)$w)8hN=f%gdP35hCB0A5rzMR?Z}me$NpF_)X-VTT z!Ap9xq)$uwl=UO)->hF+zqQ)^3;lim75>%!9scwD7y9@4lm1KmDgU_tn16lfP}z-T z=ae5Wzo6p%6-UG02;Wz^tLoOOebwKsez4~0n!(z1?aA7A*M6<`nc9}RMBS>o@wzwF z-G?8c`mmQ&;9M?(^S3B=mKdOV*;y*_FWyyQcd5qCQiGAN#X(RVp3g_Hc8h8 z*CGF!GS>O}vLy1imgSH>EtqZPHzD6<-GcND<)qQ+tHR80kn{pc4@>$QNj2A1l7Ew= zH-tZl8r~=Amju&O$r_eRdbOmT)>lCDnD0rXzw$kc^uem2rPNQVS}d(!3x0ACmmfOz zAyu+_kXp=}?qwa8aN;})=Z@fYLJfV37PV__^>Kodb~VLYZF zA43X{9J{{{bW@RUga_aQHGYEu37fK*EyA!f6rHezgvmU6P)s z)&p~{r01grpV}?yg*Yp-)CEX=>eZ;*!s!RoeW)9eo1}wkJ23l^`f&cS6Zxd12T`|A z4I{PiZ2LUq4@-Ikb>nCEl4fv1<5S~EEp-{{ZdP&Me5BKT3otS>k#A9_A>XPJ$hWGw z$WKw-lFkFBP4!5+5SXcIiKM;2w5w&vx8qxL^D%nMB|QU}80t93|40Aaz`Fxq3;ZPT zhd_VuK=AV52ZDD5KOVd%7z?$9IzyLLygmHo@TFBJtAA5-cI}0=x7L2X_QBfU)Q0gb z$g}H`b?`#!?yCEAUElhxn16meueLnTZIO&>U>n*riaZSP1hHEOWc3jhN z#W4#ya81WG1J_Jkvv8e;Yc{SH)#A^nI|3PXMKGhj8GKe+kE z2iFj;BjwMkT@`;)ufg>?TyLug`ZD24-;KC#!*y4<#rN6DO5ZneeIM5|l`Xz)RnvSq zTvy?GYgMQ3!s_|HH{iM!*G<)@`@U7Z#&=)Mc3+})r*B>DcHf=2e+KvGaSzsQ_nlX_ z)3*=zTXDam4qaZpIW;sfk~~9g9v)1mGO3HlyH{O4kxq7R9vB@skUX3m9q(Q}FnDNU zY-cik>F{7O<0%*#8BrT2D_t`(4CYg>SG`O{FI~Lu=y-B8Gn^XDsEy|iOpJ_g9ZRMM z#swiA((F=n>N0ghJIRrZDy(5mIyo?&+?w7sHiY}Of%L%P|C219~eeAcOIJXv}@{h3UxF6$HtN# zBCP>YtDz@>5mpHv${N}=Hj)|`V#6<4WHjZBozt7bAuWJCqklLvm`aZf?^ipIWyX_- z)yB2Ms5LXNe)y(V?|Fkb&R=B%xB-vYID|0T)6Vskar1+&9ZBXcu>6qiNSE$)N26$??6b#)i+uz`|hFuJo{=SUK}MC-!Fs)5Bx5<~1X!i6Lqf zb8C12V@BRWcvEWhz>bO0QM?7|w6k$^m<;{Hhm)y^ag_nvDUh-DQe-=l4W_-T`+2 z_wF|%w|CGpQhP^UeppJ<d&Btnm||iU zW?0fFTojol-Teo#q7A`by88z*hcb#O470FQtr-{{Opc7m!rGrYlpIx1wr43^l{q## zsMaP&upH|A`sBEivDKEhV(C&YhHh^4F`HC+sSET{<5^{Fw7s;LwN9h=j=3u+t;Mru z(e^!{C(9BuoTJI3_0Hd8XsgV&Z9o%ZV*C$7l>ES`Ok^O-J^`JFmTivYDE-bK{Vn^#wS}rpMN$D})_WF?HB#21s@f zxHqHMdwcn(4vp?@6gdh|-U^LRA$^^T3>`EXED}gCu?SGU@$4-I+QLtuL2kC*05vSj^x0|;e37@na6D- z_YP+=6Unr2Y}8rOne5)ogx;1!`zFtFYzeYm?HxZjad`h2-gh6DD*9cJWF8P6K#~hK zO>$&-=&W=~i+QdCk->#DS$|5Z6*Te=3G#Vk;3&%(0te&j$wAqjH@&nw8aR7n#x>+U0H#@<(Y;BC7x;vO7^CUeL>b!!bM~yCD6{Y;hCrTuA|iVa{i^%{&Ga? zCx(aA-jwaWn}y2tWAsYpg}r&RQp%7z8=V9q`5Tqlqv%IZ>Pssw;*u2XN2+Km0;XUW zQkM>lOe9s>bXUyO2HdUN>mS%o!$EhC*2_Ms!j3LAjJcu4V5zWRuxNiCPmQSw2~%W~ z@ffY`iF?**X+v6rwn{kdBPj$EbWuHS@KMLHBy}6d7w!if zk2Fl_ECy7UrP7C1jpMgG`zJ6*4a?f$fdivh=7$F}7{dJ%2M*A)cgZvkHE|{tH3V;d zY{rAc}`2))Mh3YMR-U@w+CuEfGc=W}y%{9tNm^~CT9!d*C0%g-3! zyLZ0^0rc+0&NrM<%QFX46C*?YY3$l(EZ(~pgu|nknhtFoB5I*pK9L?_ZjsDoR)$bI zeasEpS=g(V>j@~Ni^WqmGh}lzlR<#3mUCtr99fpAIBIwx3lXOs9muq;-lShdkqBb&Es0e@yfSh}HbaSzb zH632igDJ>!3v_mf7O5}wZjq< z45W|kTZn&4e26Cz9?Uve4B|8SsUk(k!YYk;gMI9M>oS7_V{&|BNV(CjNnzns8`q6u z8Awwi^zrP}@TgRI3!oRDoZ z=K}_%cWpU+lG6yicH1Fkw|yeTO3dW2QIyrrv)ImaMY(L_#ol1ja6-4V0)?FfM~xXz zow72xV=Q*Uom(=_0CAya>^Y24zW^M`Zn@}2n**%a19R*8y|Y$ zKt`RDJSKB!+rV%d<7ev{dmVI*N{sFSYt2ri(^vo`4_3JgzbXzAy_LaAcsi9-Tq$4$ zmm(%YXUb^>=Q!(ZiI=Ds3U3K(&sMe*^7=n!%?uA>^>kf}$_tR^u z$jhEP8GE$X9W|rP-kHc(h|V?+%rWVk<5oJIAibv(>yE-=cET2%Js5zoE_(yrFg%2# zI(P4s&a#fA*%sX*t>E#2v~7l%2g^N2DcoWgEH2*iuniUNc?*_0o8E%HlG`1AK<(Y{ z77P^aZVUF?D0iD!Fj%-7EWom_*Z&22%{Lps0<87kRd!)d0nDY_vnnstqpZ8DmScvA zrr76&*qRHr`GrtJVV@U54`!oZi0+rz;uk^{o;`jcRB+H;w76|8bkyMXc_H+G4aV$- zLIo}8J}=DM^cI%h^%fRydy5LRv8X^BiwgFrMS5O9E20|MSnMKP3SGqPj7*K zdKcweQ!h-$IZ>ny^+Ev!Hq?v$7urxS6k%+r7o9I*L%mQ!Y6wqL&Ke%UN-gq22_CcR zMgI%Tsuv2-DA%ldp^AL7>V-PASuNHYFjHwUI&bU4qo&2sfsHn5T3n!p#ZZHHk}Za1 zloQ$XsSS=i=nYXg)WA=j6xSfO(hh%80soe z=whhLqtM0BRDnVlLsf+eT>_=$D|89^pcT4A>&hr}3Djh3&ZAH`Zw}fhbV-52mcWd> z3S0sk%7dYmqO$==6pG7(p|m_0nkzb!aYkY(G*&PYeb89pNc2HpW+eKcs1hU52d#KUqR-KW zGZKAJMsbwb2Zb1{>0loeGx^DjGYoyuSczfigT@Mnp^xU4Hw=AHnjVHesLLIOJ}Ar9 zx5r%i^lB|poGm33=T-CR&{`f0jpe}$#g*D&mUG+VWFrH^cvg=cO}gfs)T~LRowFVZ zl-(dloi&`!jBib^O@uGI1~2KVlzYdtb>Y|Y3(CIhkZ1L!mM z^SnYo=sIhF&&ssZZs*UM7#)P)PycZXpOY~v**SPH$(JRx%WsRp5~&;KVq4`X2A!c7 zhqzzZoKvEV+BJGvdSFbjCT@}Fv_M!Gk@kZqB$xDpa##xV#zHPf1%()N6hh&}9s)UF zCxsjse6I8?So4-tB)jeyj&g+gkGTeJX@b^+#35i!IsnxjIzm~Z2#hJ|>SYysW^ z>%v{9ct@-yjW??@_;SaDN~=NSx8Mz|!?>#%g(d4jLAo)QrfCqkq#D9CiZ`x?!8^k5 ziq!5$E(7c?ln*Pl{vb-n!I@FZ@P68Sv@igU0d)X0Y>nLAXg?+Ob>qFQVc>=UUk09T z(VXst7B+8iTBmmg96%Fq`C}muh}(R zjJkCjNxUh?wg&JyqDzrZpm*bL@6q;vw80*X3qRVPT?*TcH|Yu_?<`GMQpP!hXj}K` zFy6FF;+K9CNQv2i`+$r*X?I|FFv5Lz6= z&o)5Sfa1=6;Za&7q z9+%0fR0A!}+ww;Cq$!`no`b5RG=3+f&{nI;C=aY8wh2;@+SAvDVylGiFDjJ4ZY>VU zjzI6T@rEg9_2f1=KhHv4d&Jwfk(r_o&VAbW3Z*J%iq6KEe;Io%SZ^z-(GiS0R@ewv zwWFws{Tzj5sReeAS7Wpb$J3pC9(}xu^U0pyuGG|~JNC9VSfgvx>cC&l+l{rOR0}0n zuP*NzRGQDzqe{M2+>iBm1OD-9cXsBl2EGC-+Kk?E1sVaTnLiybHy_nBt`U0I@UHpJ z4!GF0e!Z#=$!f|yh%2tWV-#rh!oP&88>4*+yO3zIu>E1NPJ74lXmaX&Sp|!Gs8{dO zy;rjiK#M8t3$#4 zucjtCE80;O_e-w)&NKJ^ugG`8%YvvjI;S!oGz8H(4l!~*pO&gF9&Ctq`J!>u(iWW; zSx^%XI0z5egK~h?ale$#EcepRtTCW2?2m3>X|1VgTTOHmVaS|drxPMsg1t(F;+8L( zV9%Oa)GS5KENU);!WR3Y&E;`?x{w(yw4f3O1-|9vTP}Rd$+z4Jg`t@+wHikGN|vvb z@|93#m^3T>p~&gLM@}am*#xqnT}#@vLc5l9Yk}(}u2*oq#PtH#M_ixa`iSd8eJfbs z3aM`e>ys>oI~1)VbrtEVs#GuFM^hfJCMm2`TfR*6c1|AMqtr5V6rDGfYWxkp~nGd#! zWEP-uX6o5N{0r*7$VJsccTpL>?i}ric7%I;+R)lnAWY*g^I4*{-L?hBRItp7R#~hk z!KAso45rCZ#`q88M&xoZhM8H31mlI=S|+_r`iNV>Tvfn_DJcz1zTCT|LaA}6k64xhA(#tGeIh1x1m z>52FIP|oU+tHDnqEL`EThUkgAteUnm7<5dd;Dn>JHB}-KI{G94js78|CHjXxgT~m$RGA0xg&}q1#IL4CPy9^eeb&_f ztd{#vBC$^Yi%p(Hr`e;EK9~&!`DRVrl2zu!n=nF=1<);4s1t7r$JyvDkiaUJ3~-c+ z0})e1$x}+S!ThO>rv$H3w{b&#ppjtnwjQL_#*wj`N z*~hM0n6)qp3K>0Ffh%HKh+t4H45x~mY(RIQ$ToD2YAqKnn#>PbA{w{~-8wlHie=|v zY%mQNiq^!e6StOigN+sii^Ttsk%NGhqZt)M6HJyPVFQI%^khp-jfJJ;nxO_b>dZt#-Q&sROyD6b;0>QweytUtm&2)ot&q4na+ZvALkUX z2j2!(7~5kQhcYfBuvx4jk$tisbOBpe=8x}{|q(bJtk``V8pAT5m!San2}*jnBlTETTdshA|krd zo<Tyi;I8*d!D{b7Xv~gEyIBifI_-GHm#fM$S?dSyN8 z%6gP8+KQSB${Ng&MpjsG1^mq8V$!$`RmpIikO%YuUg$CEBtO;w%G*G?zsbGZ4#zM2z% zS2oY+jB}um){ToxN8#oxwMycYSn#U%g~OJ@!(CAe4I)?E=t}eO5P@_VU*Y= z-Z^u0?M`l{)3n{fYAPuBk!{TZr6LQYbXRMSPdqK^l4R|wEwUhTa(DFPuJSOHO{N%h z%^YdEOpdWa98NmR#lbr{;1eekcSNdX@X}61vFW?umHFTs9MG1$$C13pD|3%6M-SV? zHo`W0;Lft@9%<>CC{|Pf?Yd?jAy{?4UDr0Ju5I4Bw%K)UV_ldptZSR8Yn#+{ zV-(}gy0&e^_rklktm}8)`JQK92Va4I>|wD__1DxpMdpznUsI2gC+?KQL0gV*Auu{q z$iT6~Upv2@-)}XZho^3MjOVpM#A*tvG+BVV{- z(UgyUa?7k-7e(1E>5MpMw8=vGU>rR_KxcQ zR(g-;C&YUu`ziCD)c#BM;Kj<`#a;6L*q&2f=-h_7$A>@VtVb!$YwnDRq`9%WU`yTALrkTv%t?^qyNueNe%E{MBvv6)QS9JTDQWp(PBL5 zHsCrR6wlGH&EIntd|iCuVyD`RbRAAMcj5~dTXFWd7xyhV!`v#Ap9}ovh5YX|=nC-c zO8&3{%X~4Q+}0w+zfORYQoO*5Q%*h!+9*$Ea0ZIMnTlNfDCN_w49Y!EMTO$dKtE(f ztcUYaeNK9yL`^+H(}RBN|9Ww*3LW4}B>Yl}-7=p=6+b6rGjUu!SRh>5bLFHp1DWLs zt(13z#=aE(JqiA+80?LHqQa+XBkqZ9$!9gI)a5wCO{4B^l$UyX?0ufNQ)J+CNuE|` zCgI>oG3N~aaXQGe36uv!5VNO(x16s3^Y{Oq G2L3npSSrB) From ffc31bd522ebda9a1fd924ba5417621a26e44b0b Mon Sep 17 00:00:00 2001 From: dragonfly91 Date: Wed, 8 Jul 2015 16:43:52 +0530 Subject: [PATCH 08/58] Removed ContainerInfo and depending only on CSMContainerResponse --- .../ContainerAdapter.cs | 4 ++-- .../Container/GetAzureBackupContainer.cs | 5 +++-- .../Commands.AzureBackup.csproj | 1 - .../Models/AzureBackupBaseObjects.cs | 4 ++-- .../Models/AzureBackupContainer.cs | 11 ++++++----- ...re.Management.BackupServicesManagement.dll | Bin 176128 -> 169984 bytes ...ure.Management.BackupServicesManagment.dll | Bin 152576 -> 0 bytes 7 files changed, 13 insertions(+), 12 deletions(-) delete mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.WindowsAzure.Management.BackupServicesManagment.dll diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs index ac13b989177e..f774776273be 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs @@ -37,10 +37,10 @@ public partial class AzureBackupClientAdapter /// /// /// - public IEnumerable ListContainers(string filter) + public IEnumerable ListContainers(string filter) { var listResponse = AzureBackupClient.Container.ListAsync(filter, GetCustomRequestHeaders(), CmdletCancellationToken).Result; - return listResponse.Objects; + return listResponse.CSMContainerListResponse.Value; } /// /// /// - public IEnumerable ListContainers(string filter) + public IEnumerable ListContainers(string filter) { - var listResponse = AzureBackupClient.Container.ListAsync(filter, GetCustomRequestHeaders(), CmdletCancellationToken).Result; - return listResponse.Objects; + CSMContainerListOperationResponse listResponse = AzureBackupClient.Container.ListAsync(filter, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return listResponse.CSMContainerListResponse.Value; } /// diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs index c7d6bddb8400..1e3f19c646af 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs @@ -59,7 +59,7 @@ public override void ExecuteCmdlet() WriteDebug(string.Format("Fetched {0} containers", containerList.Count())); - List containerInfos = containerList.ToList(); + List containerInfos = containerList.ToList(); // When resource group name is specified, remove all containers whose resource group name // doesn't match the given resource group name @@ -67,7 +67,8 @@ public override void ExecuteCmdlet() { containerInfos.RemoveAll(containerInfo => { - return containerInfo.ParentContainerName != ManagedResourceGroupName; + string rgName = ContainerHelpers.GetRGNameFromId(containerInfo.Properties.ParentContainerId); + return rgName != ManagedResourceGroupName; }); WriteDebug(string.Format("Count of containers after resource group filter = {0}", containerInfos.Count)); } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs index 453d8db14429..d6eb398160dd 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs @@ -83,7 +83,7 @@ public override void ExecuteCmdlet() Guid jobId = Guid.Empty; bool isDiscoveryNeed = false; - ContainerInfo container = null; + CSMContainerResponse container = null; isDiscoveryNeed = IsDiscoveryNeeded(vmName, rgName, out container); if(isDiscoveryNeed) { @@ -153,7 +153,7 @@ private bool WaitForDiscoveryToComplete(Guid operationId, out bool isDiscoverySu return isRetryNeeded; } - private bool IsDiscoveryNeeded(string vmName, string rgName, out ContainerInfo container) + private bool IsDiscoveryNeeded(string vmName, string rgName, out CSMContainerResponse container) { bool isDiscoveryNeed = false; //First check if container is discoverd or not @@ -176,7 +176,7 @@ private bool IsDiscoveryNeeded(string vmName, string rgName, out ContainerInfo c else { //We can have multiple container with same friendly name. - container = containers.Where(c => ContainerHelpers.GetRGNameFromId(c.ParentContainerId).Equals(rgName.ToLower())).FirstOrDefault(); //TODO need to change. + container = containers.Where(c => ContainerHelpers.GetRGNameFromId(c.Properties.ParentContainerId).Equals(rgName.ToLower())).FirstOrDefault(); //TODO need to change. if (container == null) { //Container is not in list of registered container diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs index c2dadc1e9e0b..625d9d8f8002 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs @@ -39,8 +39,7 @@ public override void ExecuteCmdlet() base.ExecuteCmdlet(); string containerUniqueName = Container.ContainerUniqueName; - UnregisterContainerRequestInput unregRequest = new UnregisterContainerRequestInput(containerUniqueName, AzureBackupContainerType.IaasVMContainer.ToString()); - var operationId = AzureBackupClient.UnRegisterContainer(unregRequest); + var operationId = AzureBackupClient.UnRegisterContainer(containerUniqueName); WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Container.ResourceGroupName, Container.ResourceName, Container.Location), GetOperationStatus(operationId).Jobs).FirstOrDefault()); }); diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs index eacc3110e4fa..fcade48e15ec 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs @@ -79,10 +79,10 @@ public AzureBackupContainerContextObject(AzureBackupContainer azureBackupContain ContainerUniqueName = azureBackupContainer.ContainerUniqueName; } - public AzureBackupContainerContextObject(AzurePSBackupVault vault, ContainerInfo containerInfo) + public AzureBackupContainerContextObject(AzurePSBackupVault vault, CSMContainerResponse containerInfo) : base(vault.ResourceGroupName, vault.Name, vault.Region) { - ContainerType = containerInfo.ContainerType; + ContainerType = containerInfo.Properties.ContainerType; ContainerUniqueName = containerInfo.Name; } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupContainer.cs index 1aa5cb29615c..79848244f292 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupContainer.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupContainer.cs @@ -12,6 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.AzureBackup.Helpers; using Microsoft.Azure.Management.BackupServices.Models; using System; using System.Collections.Generic; @@ -48,13 +49,13 @@ public class AzureBackupContainer : AzureBackupContainerContextObject public AzureBackupContainer() : base() { } - public AzureBackupContainer(AzurePSBackupVault vault, ContainerInfo containerInfo) + public AzureBackupContainer(AzurePSBackupVault vault, CSMContainerResponse containerInfo) : base(vault, containerInfo) { - ManagedResourceGroupName = containerInfo.ParentContainerFriendlyName; - ManagedResourceName = containerInfo.FriendlyName; - HealthStatus = containerInfo.HealthStatus; - RegistrationStatus = containerInfo.RegistrationStatus; + ManagedResourceGroupName = ContainerHelpers.GetRGNameFromId(containerInfo.Properties.ParentContainerId); + ManagedResourceName = containerInfo.Properties.FriendlyName; + HealthStatus = containerInfo.Properties.HealthStatus; + RegistrationStatus = containerInfo.Properties.Status; } } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll index ca702f6452f2309af8c01c55a5de0f56c7a50196..bd5cc17881288189ace89707df5af55c236c6b42 100644 GIT binary patch literal 167424 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�p*tjtp4T(TG%2a6a%EhV+`U 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 literal 176128 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 From 38429621a8559ff252e56b11932f288cccaf40e8 Mon Sep 17 00:00:00 2001 From: panbha Date: Wed, 15 Jul 2015 16:09:53 +0530 Subject: [PATCH 11/58] backupRestorechanges --- .../AzureBackUpRestoreBase.cs | 47 +++++++++++ .../Cmdlets/Restore/TriggerRestore.cs | 77 +++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackUpRestoreBase.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackUpRestoreBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackUpRestoreBase.cs new file mode 100644 index 000000000000..cc71cc456c38 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackUpRestoreBase.cs @@ -0,0 +1,47 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Common.Authentication.Models; +using System.Threading; +using Hyak.Common; +using Microsoft.Azure.Commands.AzureBackup.Properties; +using System.Net; +using Microsoft.Azure.Commands.AzureBackup.Models; +using Microsoft.Azure.Commands.AzureBackup.Cmdlets; + +namespace Microsoft.Azure.Commands.AzureBackup +{ + public abstract class AzureBackupRestoreBase : AzureBackupCmdletBase + { + // ToDO: + // Correct Help message and other attributes related to paameters + [Parameter(Position = 0, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.AzureBackUpRecoveryPoint, ValueFromPipeline = true)] + [ValidateNotNullOrEmpty] + public AzureBackupRecoveryPoint RecoveryPoint { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + WriteDebug(String.Format("Cmdlet called for ResourceGroupName: {0}, ResourceName: {1}", RecoveryPoint.ResourceGroupName, RecoveryPoint.ResourceName)); + InitializeAzureBackupCmdlet(RecoveryPoint.ResourceGroupName, RecoveryPoint.ResourceName); + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs new file mode 100644 index 000000000000..2164c64cb75c --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs @@ -0,0 +1,77 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using System.Linq; +using Microsoft.Azure.Management.BackupServices.Models; +using MBS = Microsoft.Azure.Management.BackupServices; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + /// + /// Trigger Restore Job + /// + [Cmdlet(VerbsData.Restore, "AzureBackupItem"), OutputType(typeof(Guid))] + public class RestoreAzureBackup : AzureBackupRestoreBase + { + [Parameter(Position = 1, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.StorageAccountName)] + [ValidateNotNullOrEmpty] + public string StorageAccountName { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + ExecutionBlock(() => + { + WriteVerbose("Making client call"); + Guid jobId = Guid.NewGuid(); + WriteDebug("Triggered Restore. Converting response"); + /* + AzureIaaSVMRecoveryInputsCSMObject azureIaaSVMRecoveryInputsCSMObject = new AzureIaaSVMRecoveryInputsCSMObject() + { + CloudServiceName = string.Empty, + VmName = string.Empty, + CreateNewCloudService = false, + ContinueProtection = false, + InputStorageAccountName = StorageAccountName, + AffinityGroup = "", + Region = RecoveryPoint.Location, + }; + + JavaScriptSerializer serializer = new JavaScriptSerializer(); + string azureIaaSVMRecoveryInputsCSMObjectString = serializer.Serialize(azureIaaSVMRecoveryInputsCSMObject); + + CSMRestoreRequest csmRestoreRequest = new CSMRestoreRequest() + { + Properties = new CSMRestoreRequestProperties() + { + TypeOfRecovery = RecoveryType.RestoreDisks.ToString(), + RecoveryDSTypeSpecificInputs = azureIaaSVMRecoveryInputsCSMObjectString, + }, + }; + + Guid operationId = AzureBackupClient.TriggerRestore(RecoveryPoint.ContainerUniqueName, RecoveryPoint.ItemName, RecoveryPoint.RecoveryPointName, csmRestoreRequest); + WriteDebug("Triggered Restore. Converting response"); + + var operationStatus = TrackOperation(operationId); + WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(RecoveryPoint.ResourceGroupName, RecoveryPoint.ResourceName, RecoveryPoint.Location), operationStatus.Jobs).FirstOrDefault()); + * */ + }); + } + } +} From fbaeb57051175ef73138094dab7c34d0c5c1be25 Mon Sep 17 00:00:00 2001 From: panbha Date: Wed, 15 Jul 2015 16:12:37 +0530 Subject: [PATCH 12/58] backupandrestorepart2 --- .../AzureBackupClientAdapter/ItemAdapter.cs | 8 ++-- .../AzureBackupCmdletHelpMessage.cs | 2 + .../Cmdlets/Backup/TriggerBackUp.cs | 4 +- .../GetAzureBackupRecoveryPoint.cs | 37 ++++++++++--------- .../Commands.AzureBackup.csproj | 2 + 5 files changed, 31 insertions(+), 22 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs index 193114bb179b..ba8bc3ce3453 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs @@ -87,8 +87,9 @@ public Guid EnableProtection(SetProtectionRequestInput request) /// public Guid TriggerBackup(string containerName, string dsType, string dsId) { + return Guid.NewGuid(); var response = AzureBackupClient.BackUp.TriggerBackUpAsync(GetCustomRequestHeaders(), containerName, dsType, dsId, CmdletCancellationToken).Result; - return response.OperationId; + //return response.OperationId; } /// @@ -100,8 +101,9 @@ public Guid TriggerBackup(string containerName, string dsType, string dsId) /// public IEnumerable ListRecoveryPoints(string containerName, string dsType, string dsId) { - var response = AzureBackupClient.RecoveryPoint.ListAsync(GetCustomRequestHeaders(), containerName, dsType, dsId, CmdletCancellationToken).Result; - return (response != null) ? response.RecoveryPoints.Objects : null; + return null; + //var response = AzureBackupClient.RecoveryPoint.ListAsync(GetCustomRequestHeaders(), containerName, dsType, dsId, CmdletCancellationToken).Result; + //return (response != null) ? response.RecoveryPoints.Objects : null; } } } \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs index 51c47ac99b89..6ca27732b3b3 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs @@ -57,6 +57,8 @@ internal static class AzureBackupCmdletHelpMessage public const string ProtectionStatus = "Protection Status of the azure backup item."; public const string AzureBackUpItem = "Azure BackUp Item."; public const string RecoveryPointId = "Recovery Point Id."; + public const string StorageAccountName = "Storage Account Name."; + public const string AzureBackUpRecoveryPoint = "Recovery Point."; public const string Type = "Type of Azure Backup Item."; public const string Status = "Status of Azure Backup Item"; public const string AzureBackupContainer = "Azure Backup Container for Azure Backup Item."; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs index 6f567814cc6d..ff58d901123a 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs @@ -45,8 +45,8 @@ public override void ExecuteCmdlet() WriteDebug("Triggered backup. Converting response"); - var operationStatus = TrackOperation(operationId); - WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.Jobs).FirstOrDefault()); + //var operationStatus = TrackOperation(operationId); + //WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.Jobs).FirstOrDefault()); }); } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs index e9b48b9c8ac4..86a3c8f93997 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs @@ -42,30 +42,33 @@ public override void ExecuteCmdlet() var recoveryPointListResponse = AzureBackupClient.ListRecoveryPoints(Item.ContainerUniqueName, Item.Type, Item.DataSourceId); - WriteDebug("Received recovery point response"); - - IEnumerable recoveryPointObjects = null; - if (Id != null) + if (recoveryPointListResponse != null) { - RecoveryPointInfo recoveryPointObject = null; - recoveryPointObjects = recoveryPointListResponse.Where(x => x.InstanceId.Equals(Id, System.StringComparison.InvariantCultureIgnoreCase)); - if (recoveryPointObjects != null && recoveryPointObjects.Any()) + WriteDebug("Received recovery point response"); + + IEnumerable recoveryPointObjects = null; + if (Id != null) { - WriteDebug("Converting response"); - recoveryPointObject = recoveryPointObjects.FirstOrDefault(); - WriteAzureBackupRecoveryPoint(recoveryPointObject, Item); + RecoveryPointInfo recoveryPointObject = null; + recoveryPointObjects = recoveryPointListResponse.Where(x => x.InstanceId.Equals(Id, System.StringComparison.InvariantCultureIgnoreCase)); + if (recoveryPointObjects != null && recoveryPointObjects.Any()) + { + WriteDebug("Converting response"); + recoveryPointObject = recoveryPointObjects.FirstOrDefault(); + WriteAzureBackupRecoveryPoint(recoveryPointObject, Item); + } + else + { + WriteDebug(string.Format("{0}{1}", "No recovery point exist with Id := ", Id)); + } } else { - WriteDebug(string.Format("{0}{1}", "No recovery point exist with Id := ", Id)); + WriteDebug("Converting response"); + recoveryPointObjects = recoveryPointListResponse.OrderByDescending(x => x.RecoveryPointTime); + WriteAzureBackupRecoveryPoint(recoveryPointObjects, Item); } } - else - { - WriteDebug("Converting response"); - recoveryPointObjects = recoveryPointListResponse.OrderByDescending(x => x.RecoveryPointTime); - WriteAzureBackupRecoveryPoint(recoveryPointObjects, Item); - } }); } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj index 04d60e2c8c3b..e71ea90a2892 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj @@ -126,6 +126,7 @@ + @@ -145,6 +146,7 @@ + From 9af2f3a2554007dc0eeb50e45849e3250cfaba18 Mon Sep 17 00:00:00 2001 From: panbha Date: Thu, 16 Jul 2015 12:09:38 +0530 Subject: [PATCH 13/58] backupandrestorepowerhsell --- .../ScenarioTests/AzureBackupRecoveryPoint.cs | 2 +- .../AzureBackupClientAdapter/ItemAdapter.cs | 33 +++++++++++------- .../Cmdlets/Backup/TriggerBackUp.cs | 2 +- .../Item/Enable-AzureBackupProtection .cs | 2 +- .../Cmdlets/Item/GetAzureBackupItem.cs | 2 +- .../GetAzureBackupRecoveryPoint.cs | 18 +++++----- .../Cmdlets/Restore/TriggerRestore.cs | 5 +-- .../Commands.AzureBackup.csproj | 1 + .../Models/AzureBackupBaseObjects.cs | 16 +++------ .../Models/AzureBackupItem.cs | 15 +++++--- .../Models/AzureBackupRecoveryPoint.cs | 12 +++---- ...re.Management.BackupServicesManagement.dll | Bin 169984 -> 179200 bytes 12 files changed, 59 insertions(+), 49 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupRecoveryPoint.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupRecoveryPoint.cs index 1ad78baf3177..40312a333e9c 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupRecoveryPoint.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupRecoveryPoint.cs @@ -36,7 +36,7 @@ public AzureBackupRecoveryPointContextObject() public AzureBackupRecoveryPointContextObject(RecoveryPointInfo recoveryPointInfo, AzureBackupItem azureBackupItem) : base(azureBackupItem) { - RecoveryPointId = recoveryPointInfo.InstanceId; + RecoveryPointName = recoveryPointInfo.InstanceId; } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs index ba8bc3ce3453..01ae2e555d8e 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs @@ -82,28 +82,37 @@ public Guid EnableProtection(SetProtectionRequestInput request) /// Trigger backup on a DS /// /// - /// - /// + /// /// - public Guid TriggerBackup(string containerName, string dsType, string dsId) + public Guid TriggerBackup(string containerName, string itemName) { - return Guid.NewGuid(); - var response = AzureBackupClient.BackUp.TriggerBackUpAsync(GetCustomRequestHeaders(), containerName, dsType, dsId, CmdletCancellationToken).Result; - //return response.OperationId; + var response = AzureBackupClient.BackUp.TriggerBackUpAsync(GetCustomRequestHeaders(), containerName, itemName, CmdletCancellationToken).Result; + return response.OperationId; } /// /// Lists recovery points for specified item /// /// - /// - /// + /// /// - public IEnumerable ListRecoveryPoints(string containerName, string dsType, string dsId) + public IEnumerable ListRecoveryPoints(string containerName, string itemName) { - return null; - //var response = AzureBackupClient.RecoveryPoint.ListAsync(GetCustomRequestHeaders(), containerName, dsType, dsId, CmdletCancellationToken).Result; - //return (response != null) ? response.RecoveryPoints.Objects : null; + var response = AzureBackupClient.RecoveryPoint.ListAsync(GetCustomRequestHeaders(), containerName, itemName, CmdletCancellationToken).Result; + return (response != null) ? response.CSMRecoveryPointListResponse.Value : null; + } + + /// + /// Lists recovery points for specified item + /// + /// + /// + /// + /// + public Guid TriggerRestore(string containerName, string itemName, string recoveryPointName, CSMRestoreRequest csmRestoreRequest) + { + var response = AzureBackupClient.Restore.TriggerResotreAsync(GetCustomRequestHeaders(), containerName, itemName, recoveryPointName, csmRestoreRequest, CmdletCancellationToken).Result; + return response.OperationId; } } } \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs index ff58d901123a..7909e2625a98 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs @@ -41,7 +41,7 @@ public override void ExecuteCmdlet() base.ExecuteCmdlet(); WriteDebug("Making client call"); - Guid operationId = AzureBackupClient.TriggerBackup(Item.ContainerUniqueName, Item.Type, Item.DataSourceId); + Guid operationId = AzureBackupClient.TriggerBackup(Item.ContainerUniqueName, Item.ItemName); WriteDebug("Triggered backup. Converting response"); diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs index 8ab6eaeca410..9ecd1c77f0c2 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs @@ -47,7 +47,7 @@ public override void ExecuteCmdlet() if (Item.GetType() == typeof(AzureBackupItem)) { input.ProtectableObjectType = (Item as AzureBackupItem).Type; - input.ProtectableObjects.Add((Item as AzureBackupItem).Name); + input.ProtectableObjects.Add((Item as AzureBackupItem).ItemName); } else if (Item.GetType() == typeof(AzureBackupContainer)) { diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs index 8c964328bf15..8730597297e3 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs @@ -100,7 +100,7 @@ public void WriteAzureBackupItem(List sourceDataSourceList, List { //If user has stopped protection for some datasoure then we will have duplicate items(po and ds). //So in this case removing poitems from the list. - if (targetList.FindIndex(element => element.Name == item.Name) < 0) + if (targetList.FindIndex(element => element.ItemName == item.Name) < 0) { targetList.Add(new AzureBackupItem(item, azureBackupContainer)); } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs index 86a3c8f93997..5152bae3408d 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs @@ -40,21 +40,21 @@ public override void ExecuteCmdlet() { WriteDebug("Making client call"); - var recoveryPointListResponse = AzureBackupClient.ListRecoveryPoints(Item.ContainerUniqueName, Item.Type, Item.DataSourceId); + var recoveryPointListResponse = AzureBackupClient.ListRecoveryPoints(Item.ContainerUniqueName, Item.ItemName); if (recoveryPointListResponse != null) { WriteDebug("Received recovery point response"); - IEnumerable recoveryPointObjects = null; + IEnumerable recoveryPointObjects = null; if (Id != null) { - RecoveryPointInfo recoveryPointObject = null; - recoveryPointObjects = recoveryPointListResponse.Where(x => x.InstanceId.Equals(Id, System.StringComparison.InvariantCultureIgnoreCase)); - if (recoveryPointObjects != null && recoveryPointObjects.Any()) + CSMRecoveryPointResponse recoveryPointObject = null; + recoveryPointObjects = recoveryPointListResponse.Where(x => x.Name.Equals(Id, System.StringComparison.InvariantCultureIgnoreCase)); + if (recoveryPointObjects != null && recoveryPointObjects.Any()) { WriteDebug("Converting response"); - recoveryPointObject = recoveryPointObjects.FirstOrDefault(); + recoveryPointObject = recoveryPointObjects.FirstOrDefault(); WriteAzureBackupRecoveryPoint(recoveryPointObject, Item); } else @@ -65,19 +65,19 @@ public override void ExecuteCmdlet() else { WriteDebug("Converting response"); - recoveryPointObjects = recoveryPointListResponse.OrderByDescending(x => x.RecoveryPointTime); + recoveryPointObjects = recoveryPointListResponse.OrderByDescending(x => x.Properties.RecoveryPointTime); WriteAzureBackupRecoveryPoint(recoveryPointObjects, Item); } } }); } - public void WriteAzureBackupRecoveryPoint(RecoveryPointInfo sourceRecoverPoint, AzureBackupItem azureBackupItem) + public void WriteAzureBackupRecoveryPoint(CSMRecoveryPointResponse sourceRecoverPoint, AzureBackupItem azureBackupItem) { this.WriteObject(new AzureBackupRecoveryPoint(sourceRecoverPoint, azureBackupItem)); } - public void WriteAzureBackupRecoveryPoint(IEnumerable sourceRecoverPointList, AzureBackupItem azureBackupItem) + public void WriteAzureBackupRecoveryPoint(IEnumerable sourceRecoverPointList, AzureBackupItem azureBackupItem) { List targetList = new List(); diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs index 2164c64cb75c..943e33a73dd6 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs @@ -19,6 +19,7 @@ using System.Linq; using Microsoft.Azure.Management.BackupServices.Models; using MBS = Microsoft.Azure.Management.BackupServices; +using System.Web.Script.Serialization; namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets { @@ -41,7 +42,7 @@ public override void ExecuteCmdlet() WriteVerbose("Making client call"); Guid jobId = Guid.NewGuid(); WriteDebug("Triggered Restore. Converting response"); - /* + AzureIaaSVMRecoveryInputsCSMObject azureIaaSVMRecoveryInputsCSMObject = new AzureIaaSVMRecoveryInputsCSMObject() { CloudServiceName = string.Empty, @@ -70,7 +71,7 @@ public override void ExecuteCmdlet() var operationStatus = TrackOperation(operationId); WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(RecoveryPoint.ResourceGroupName, RecoveryPoint.ResourceName, RecoveryPoint.Location), operationStatus.Jobs).FirstOrDefault()); - * */ + }); } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj index e71ea90a2892..84726ccad3d2 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj @@ -108,6 +108,7 @@ + diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs index fcade48e15ec..a5d12f940b89 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs @@ -92,12 +92,7 @@ public class AzureBackupItemContextObject : AzureBackupContainerContextObject /// /// DataSourceId of Azure Backup Item /// - public string DataSourceId { get; set; } - - /// - /// DataSourceId of Azure Backup Item - /// - public string Type { get; set; } + public string ItemName { get; set; } public AzureBackupItemContextObject() : base() @@ -107,22 +102,19 @@ public AzureBackupItemContextObject() public AzureBackupItemContextObject(AzureBackupItemContextObject azureBackupItemContextObject) : base(azureBackupItemContextObject) { - DataSourceId = azureBackupItemContextObject.DataSourceId; - Type = azureBackupItemContextObject.Type; + ItemName = azureBackupItemContextObject.ItemName; } public AzureBackupItemContextObject(DataSourceInfo item, AzureBackupContainer azureBackupContainer) : base(azureBackupContainer) { - DataSourceId = item.InstanceId; - Type = item.Type; + ItemName = item.Name; } public AzureBackupItemContextObject(ProtectableObjectInfo item, AzureBackupContainer azureBackupContainer) : base(azureBackupContainer) { - DataSourceId = "-1"; - Type = item.Type; + ItemName = item.Name; } } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs index 8dd3912938d1..9eba448a9e8d 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs @@ -37,9 +37,14 @@ public class AzureBackupItem : AzureBackupItemContextObject public string ProtectionStatus { get; set; } /// - /// Protectable Object Name for the Azure Backup Item + /// DataSourceId of Azure Backup Item /// - public string Name { get; set; } + public string DataSourceId { get; set; } + + /// + /// DataSourceId of Azure Backup Item + /// + public string Type { get; set; } /// /// Protection Policy Name for the Azure Backup Item @@ -66,17 +71,19 @@ public AzureBackupItem(DataSourceInfo datasource, AzureBackupContainer azureBack { DataSourceStatus = datasource.Status; ProtectionStatus = datasource.ProtectionStatus; - Name = datasource.Name; ProtectionPolicyName = datasource.ProtectionPolicyName; ProtectionPolicyId = datasource.ProtectionPolicyId; RecoveryPointsCount = datasource.RecoveryPointsCount; + DataSourceId = datasource.InstanceId; + Type = datasource.Type; } public AzureBackupItem(ProtectableObjectInfo pPOItem, AzureBackupContainer azureBackupContainer) : base(pPOItem, azureBackupContainer) { ProtectionStatus = pPOItem.ProtectionStatus; - Name = pPOItem.Name; + DataSourceId = pPOItem.InstanceId; + Type = pPOItem.Type; } } } \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupRecoveryPoint.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupRecoveryPoint.cs index 1ad78baf3177..9c416723f740 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupRecoveryPoint.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupRecoveryPoint.cs @@ -26,17 +26,17 @@ public class AzureBackupRecoveryPointContextObject : AzureBackupItemContextObjec /// /// RecoveryPointId of Azure Backup Item /// - public string RecoveryPointId { get; set; } + public string RecoveryPointName { get; set; } public AzureBackupRecoveryPointContextObject() : base() { } - public AzureBackupRecoveryPointContextObject(RecoveryPointInfo recoveryPointInfo, AzureBackupItem azureBackupItem) + public AzureBackupRecoveryPointContextObject(CSMRecoveryPointResponse recoveryPointInfo, AzureBackupItem azureBackupItem) : base(azureBackupItem) { - RecoveryPointId = recoveryPointInfo.InstanceId; + RecoveryPointName = recoveryPointInfo.Name; } } @@ -60,11 +60,11 @@ public AzureBackupRecoveryPoint() { } - public AzureBackupRecoveryPoint(RecoveryPointInfo recoveryPointInfo, AzureBackupItem azureBackupItem) + public AzureBackupRecoveryPoint(CSMRecoveryPointResponse recoveryPointInfo, AzureBackupItem azureBackupItem) : base(recoveryPointInfo, azureBackupItem) { - RecoveryPointTime = recoveryPointInfo.RecoveryPointTime; - RecoveryPointType = recoveryPointInfo.RecoveryPointType; + RecoveryPointTime = recoveryPointInfo.Properties.RecoveryPointTime; + RecoveryPointType = recoveryPointInfo.Properties.RecoveryPointType; } } } \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll index 5593ca08448f5065a66b5dd3c457751143833e04..eeb89112071085e1932402b4de113ba2540799f9 100644 GIT binary patch literal 179200 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 literal 169984 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 From 7692b1ffe4488fde2b0920d190d986e4aad9c600 Mon Sep 17 00:00:00 2001 From: panbha Date: Thu, 16 Jul 2015 12:24:49 +0530 Subject: [PATCH 14/58] commnetingcode --- .../ScenarioTests/AzureBackupRecoveryPoint.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupRecoveryPoint.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupRecoveryPoint.cs index 40312a333e9c..4c314fac12d2 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupRecoveryPoint.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupRecoveryPoint.cs @@ -21,6 +21,7 @@ namespace Microsoft.Azure.Commands.AzureBackup.Models { + /* public class AzureBackupRecoveryPointContextObject : AzureBackupItemContextObject { ///

@@ -67,4 +68,5 @@ public AzureBackupRecoveryPoint(RecoveryPointInfo recoveryPointInfo, AzureBackup RecoveryPointType = recoveryPointInfo.RecoveryPointType; } } + */ } \ No newline at end of file From ed281a085f9d1e76ccb4765c63ce378ab1feb8ad Mon Sep 17 00:00:00 2001 From: panbha Date: Thu, 16 Jul 2015 13:48:23 +0530 Subject: [PATCH 15/58] backup --- .../Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs index 7909e2625a98..f24fd495b5ab 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs @@ -45,8 +45,8 @@ public override void ExecuteCmdlet() WriteDebug("Triggered backup. Converting response"); - //var operationStatus = TrackOperation(operationId); - //WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.Jobs).FirstOrDefault()); + var operationStatus = TrackOperation(operationId); + WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.Jobs).FirstOrDefault()); }); } } From 99e6ae24226aa22bc068a636638c75cffba0bfbd Mon Sep 17 00:00:00 2001 From: panbha Date: Sat, 18 Jul 2015 21:20:44 +0530 Subject: [PATCH 16/58] recoverypoint5 --- .../AzureBackupClientAdapter/ItemAdapter.cs | 12 ++++++ .../GetAzureBackupRecoveryPoint.cs | 40 +++++++++--------- ...re.Management.BackupServicesManagement.dll | Bin 179200 -> 183808 bytes 3 files changed, 32 insertions(+), 20 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs index 01ae2e555d8e..781eeb26ae52 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs @@ -102,6 +102,18 @@ public IEnumerable ListRecoveryPoints(string container return (response != null) ? response.CSMRecoveryPointListResponse.Value : null; } + /// + /// Lists recovery points for specified item + /// + /// + /// + /// + public CSMRecoveryPointResponse GetRecoveryPoint(string containerName, string itemName, string recoveryPointName) + { + var response = AzureBackupClient.RecoveryPoint.GetAsync(GetCustomRequestHeaders(), containerName, itemName, recoveryPointName, CmdletCancellationToken).Result; + return (response != null) ? response.Value : null; + } + /// /// Lists recovery points for specified item /// diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs index 5152bae3408d..e6b8071777c3 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs @@ -40,34 +40,34 @@ public override void ExecuteCmdlet() { WriteDebug("Making client call"); - var recoveryPointListResponse = AzureBackupClient.ListRecoveryPoints(Item.ContainerUniqueName, Item.ItemName); - - if (recoveryPointListResponse != null) + if (Id != null) { - WriteDebug("Received recovery point response"); - - IEnumerable recoveryPointObjects = null; - if (Id != null) + CSMRecoveryPointResponse recoveryPointObject = AzureBackupClient.GetRecoveryPoint(Item.ContainerUniqueName, Item.ItemName, Id); + if (recoveryPointObject != null) + { + WriteAzureBackupRecoveryPoint(recoveryPointObject, Item); + } + else + { + WriteDebug(string.Format("{0}{1}", "No recovery point exist with Id := ", Id)); + } + } + else + { + IEnumerable recoveryPointListResponse = AzureBackupClient.ListRecoveryPoints(Item.ContainerUniqueName, Item.ItemName); + if (recoveryPointListResponse != null && + recoveryPointListResponse.Count() > 0) { - CSMRecoveryPointResponse recoveryPointObject = null; - recoveryPointObjects = recoveryPointListResponse.Where(x => x.Name.Equals(Id, System.StringComparison.InvariantCultureIgnoreCase)); - if (recoveryPointObjects != null && recoveryPointObjects.Any()) + IEnumerable recoveryPointObjects = recoveryPointListResponse.OrderByDescending(x => x.Properties.RecoveryPointTime); + if (recoveryPointObjects.Count() > 1) { - WriteDebug("Converting response"); - recoveryPointObject = recoveryPointObjects.FirstOrDefault(); - WriteAzureBackupRecoveryPoint(recoveryPointObject, Item); + WriteAzureBackupRecoveryPoint(recoveryPointObjects, Item); } else { - WriteDebug(string.Format("{0}{1}", "No recovery point exist with Id := ", Id)); + WriteAzureBackupRecoveryPoint(recoveryPointObjects.FirstOrDefault(), Item); } } - else - { - WriteDebug("Converting response"); - recoveryPointObjects = recoveryPointListResponse.OrderByDescending(x => x.Properties.RecoveryPointTime); - WriteAzureBackupRecoveryPoint(recoveryPointObjects, Item); - } } }); } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll index eeb89112071085e1932402b4de113ba2540799f9..799f514df1550034c8a5bcdcca467161983539b6 100644 GIT binary patch literal 183808 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 (@&J^BXRSQAY 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 literal 179200 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 @@ -49,8 +50,9 @@ public IEnumerable ListDataSources(DataSourceQueryParameter quer /// public IEnumerable ListProtectableObjects(POQueryParameter query) { - var response = AzureBackupClient.ProtectableObject.ListAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; - return (response != null) ? response.ProtectableObject.Objects : null; + return null; + //var response = AzureBackupClient.ProtectableObject.ListAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + //return (response != null) ? response.ProtectableObject.Objects : null; } /// @@ -63,8 +65,9 @@ public IEnumerable ListProtectableObjects(POQueryParamete /// public Guid DisableProtection(string containerName, string dsType, string dsId, RemoveProtectionRequestInput request) { - var response = AzureBackupClient.DataSource.DisableProtectionAsync(GetCustomRequestHeaders(), containerName, dsType, dsId, request, CmdletCancellationToken).Result; - return response.OperationId; + return Guid.Empty; + //var response = AzureBackupClient.DataSource.DisableProtectionAsync(GetCustomRequestHeaders(), containerName, dsType, dsId, request, CmdletCancellationToken).Result; + //return response.OperationId; } /// @@ -74,8 +77,9 @@ public Guid DisableProtection(string containerName, string dsType, string dsId, /// public Guid EnableProtection(SetProtectionRequestInput request) { - var response = AzureBackupClient.DataSource.EnableProtectionAsync(GetCustomRequestHeaders(), request, CmdletCancellationToken).Result; - return response.OperationId; + return Guid.Empty; + //var response = AzureBackupClient.DataSource.EnableProtectionAsync(GetCustomRequestHeaders(), request, CmdletCancellationToken).Result; + //return response.OperationId; } /// diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs index 6d4c63dc7aa3..e0bd799fbf77 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs @@ -33,7 +33,8 @@ public partial class AzureBackupClientAdapter { public OperationResultResponse GetOperationStatus(string operationId) { - return AzureBackupClient.OperationStatus.GetAsync(operationId, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return null;// + //return AzureBackupClient.OperationStatus.GetAsync(operationId, GetCustomRequestHeaders(), CmdletCancellationToken).Result; } } } \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs index f24fd495b5ab..ef81c10d353e 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs @@ -43,10 +43,10 @@ public override void ExecuteCmdlet() WriteDebug("Making client call"); Guid operationId = AzureBackupClient.TriggerBackup(Item.ContainerUniqueName, Item.ItemName); - WriteDebug("Triggered backup. Converting response"); + WriteDebug(string.Format("Triggered backup. Converting response {0}", operationId)); - var operationStatus = TrackOperation(operationId); - WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.Jobs).FirstOrDefault()); + //var operationStatus = TrackOperation(operationId); + //WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.Jobs).FirstOrDefault()); }); } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs index 943e33a73dd6..98b2bc691de6 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs @@ -67,10 +67,10 @@ public override void ExecuteCmdlet() }; Guid operationId = AzureBackupClient.TriggerRestore(RecoveryPoint.ContainerUniqueName, RecoveryPoint.ItemName, RecoveryPoint.RecoveryPointName, csmRestoreRequest); - WriteDebug("Triggered Restore. Converting response"); + WriteDebug(string.Format("Triggered Restore. Converting response {0}", operationId)); - var operationStatus = TrackOperation(operationId); - WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(RecoveryPoint.ResourceGroupName, RecoveryPoint.ResourceName, RecoveryPoint.Location), operationStatus.Jobs).FirstOrDefault()); + //var operationStatus = TrackOperation(operationId); + //WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(RecoveryPoint.ResourceGroupName, RecoveryPoint.ResourceName, RecoveryPoint.Location), operationStatus.Jobs).FirstOrDefault()); }); } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll index 799f514df1550034c8a5bcdcca467161983539b6..90bae4eabb28984d69ee2576ca8a3fa2ca6c3afe 100644 GIT binary patch literal 191488 zcmd443A`Oel|SC;m%J@6OW*sp>@R!gy}SfMNG@SZ*ipb81w{}+0fnpgf(xBi5foHh za2-cbSF*>fXLt{P_QUe(#fX-#T?p z)u~g})!%cvy86s>Ul#R6Q8X9-|NQ4D`Y6u)+bzfaAD)Bkg{y8`7=38y&eb2CbH<&k zAAZTD?Ww1lgs<(pQM`KoocU4oA8{1*EA>--&~ggDr>JeTSbig$dh^epqYID^ zI{*5j-OnQ{|CMK#Bnf|)pxlS?2g-f06wQSB+uaw9AbD8a7cDpB1OA+fqCvwni1cYD zz2(Y_pK&G9pZfunMV_?P>FwD-zFP$q(z^J`O)yf|2s(=m ze%8fz0<-Pk8);YkQMWjn7k%f>Inl$n&xz&;_0SKe#OXj34WqEW9A(UnrlY8S*c{Od z=_HCXl80xa{^@0h&5N!b5>=ClkvRJ!GV1e^d8_U_=VTNjO<0CA|1-_DCHOy%|1(P( zlMrp(4D}nY;o;>xycmZWNTwJ)!#P?pHy+LB@RTtze*c_$f6_mD88}edaDAXQkS-uA zdD;u{Yq-A!1)maUe}Xp6MW96eEffjLeTH(XQ0^}%XqMD+FDR{ZklCMN)X@&DXCsxz z%#AaiTGxP(q9Mad%_!4^;{DAPJk*dg>J*)goKRfFmDa&pmgIR``@#yeT3f;z)YBpC zmAj)#wslt}6$Y^lam|AvDyWsbRwv8|y>wa`onSXkvN(

@_Z;s3xR&DXS_>t)N44w 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≻j`FMf>W;$DOYWEILxx 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� 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 (@&J^BXRSQAY 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 From 17091900330ad51022f53ab7a4776fac7695f5dd Mon Sep 17 00:00:00 2001 From: pikumarmsft Date: Wed, 22 Jul 2015 11:37:21 +0530 Subject: [PATCH 20/58] csm changes for azure backup item --- .../AzureBackupClientAdapter/ItemAdapter.cs | 20 ++++++------ .../OperationStatusAdapter.cs | 4 +-- .../AzureBackupCmdletBase.cs | 8 ++--- .../Item/Disable-AzureBackupProtection .cs | 14 ++------- .../Item/Enable-AzureBackupProtection .cs | 16 +++++----- .../Cmdlets/Item/GetAzureBackupItem.cs | 20 ++++++------ .../Models/AzureBackupBaseObjects.cs | 6 ++-- .../Models/AzureBackupEnums.cs | 31 +++++++++++++++++++ .../Models/AzureBackupItem.cs | 16 +++++----- 9 files changed, 77 insertions(+), 58 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs index 193114bb179b..85a12c257e16 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs @@ -36,10 +36,10 @@ public partial class AzureBackupClientAdapter ///

/// /// - public IEnumerable ListDataSources(DataSourceQueryParameter query) + public IList ListDataSources(CSMProtectedItemQueryObject query) { - var response = AzureBackupClient.DataSource.ListAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; - return (response != null) ? response.DataSources.Objects : null; + var response = AzureBackupClient.DataSource.ListCSMAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return (response != null) ? response.CSMProtectedItemListResponse.Value : null; } /// @@ -47,10 +47,10 @@ public IEnumerable ListDataSources(DataSourceQueryParameter quer /// /// /// - public IEnumerable ListProtectableObjects(POQueryParameter query) + public IList ListProtectableObjects(CSMItemQueryObject query) { - var response = AzureBackupClient.ProtectableObject.ListAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; - return (response != null) ? response.ProtectableObject.Objects : null; + var response = AzureBackupClient.ProtectableObject.ListCSMAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return (response != null) ? response.CSMItemListResponse.Value : null; } /// @@ -61,9 +61,9 @@ public IEnumerable ListProtectableObjects(POQueryParamete /// /// /// - public Guid DisableProtection(string containerName, string dsType, string dsId, RemoveProtectionRequestInput request) + public Guid DisableProtection(string containerName, string itemName) { - var response = AzureBackupClient.DataSource.DisableProtectionAsync(GetCustomRequestHeaders(), containerName, dsType, dsId, request, CmdletCancellationToken).Result; + var response = AzureBackupClient.DataSource.DisableProtectionCSMAsync(GetCustomRequestHeaders(), containerName, itemName, CmdletCancellationToken).Result; return response.OperationId; } @@ -72,9 +72,9 @@ public Guid DisableProtection(string containerName, string dsType, string dsId, /// /// /// - public Guid EnableProtection(SetProtectionRequestInput request) + public Guid EnableProtection(string containerName, string itemName, CSMSetProtectionRequest request) { - var response = AzureBackupClient.DataSource.EnableProtectionAsync(GetCustomRequestHeaders(), request, CmdletCancellationToken).Result; + var response = AzureBackupClient.DataSource.EnableProtectionCSMAsync(GetCustomRequestHeaders(), containerName, itemName, request, CmdletCancellationToken).Result; return response.OperationId; } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs index 6d4c63dc7aa3..89f39d34e689 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs @@ -31,9 +31,9 @@ namespace Microsoft.Azure.Commands.AzureBackup.ClientAdapter { public partial class AzureBackupClientAdapter { - public OperationResultResponse GetOperationStatus(string operationId) + public CSMOperationResult GetOperationStatus(string operationId) { - return AzureBackupClient.OperationStatus.GetAsync(operationId, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return AzureBackupClient.OperationStatus.CSMGetAsync(operationId, GetCustomRequestHeaders(), CmdletCancellationToken).Result; } } } \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs index c56d64dec66f..d5bcd22ddc2e 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs @@ -145,7 +145,7 @@ private void HandleException(Exception exception) ///
/// /// - internal OperationResultResponse GetOperationStatus(Guid operationId) + internal CSMOperationResult GetOperationStatus(Guid operationId) { return AzureBackupClient.GetOperationStatus(operationId.ToString()); } @@ -158,15 +158,15 @@ internal OperationResultResponse GetOperationStatus(Guid operationId) /// /// In Millisec /// - internal OperationResultResponse TrackOperation(Guid operationId, int checkFrequency = defaultOperationStatusRetryTimeInMilliSec) + internal CSMOperationResult TrackOperation(Guid operationId, int checkFrequency = defaultOperationStatusRetryTimeInMilliSec) { - OperationResultResponse response = null; + CSMOperationResult response = null; while (true) { response = GetOperationStatus(operationId); - if (response.OperationStatus == AzureBackupOperationStatus.Completed.ToString()) + if (response.Status == CSMAzureBackupOperationStatus.Succeeded.ToString()) { break; } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs index 7025084e97a2..5a6ce733748d 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs @@ -12,6 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.AzureBackup.Models; using Microsoft.Azure.Management.BackupServices; using Microsoft.Azure.Management.BackupServices.Models; using System; @@ -59,21 +60,12 @@ public override void ExecuteCmdlet() }; WriteDebug("RemoveProtectionOption is = " + input.RemoveProtectionOption); - var operationId = AzureBackupClient.DisableProtection(Item.ContainerUniqueName, Item.Type, Item.DataSourceId, input); + var operationId = AzureBackupClient.DisableProtection(Item.ContainerUniqueName, Item.Name); WriteDebug("Received disable azure backup protection response"); var operationStatus = GetOperationStatus(operationId); - this.WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.Jobs).FirstOrDefault()); + this.WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.JobList).FirstOrDefault()); }); } - - public enum RemoveProtectionOptions - { - [EnumMember] - DeleteBackupData, - - [EnumMember] - RetainBackupData - }; } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs index 8ab6eaeca410..8eb97f5725c0 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs @@ -42,21 +42,19 @@ public override void ExecuteCmdlet() base.ExecuteCmdlet(); WriteDebug("Making client call"); - SetProtectionRequestInput input = new SetProtectionRequestInput(); - input.PolicyId = Policy.InstanceId; + string itemName = string.Empty; + CSMSetProtectionRequest input = new CSMSetProtectionRequest(); + input.Properties.PolicyId = Policy.InstanceId; if (Item.GetType() == typeof(AzureBackupItem)) { - input.ProtectableObjectType = (Item as AzureBackupItem).Type; - input.ProtectableObjects.Add((Item as AzureBackupItem).Name); + itemName = (Item as AzureBackupItem).Name; } else if (Item.GetType() == typeof(AzureBackupContainer)) { WriteDebug("Input is container Type = " + Item.GetType()); if ((Item as AzureBackupContainer).ContainerType == AzureBackupContainerType.IaasVMContainer.ToString()) { - WriteDebug("container Type = " + (Item as AzureBackupContainer).ContainerType); - input.ProtectableObjectType = DataSourceType.VM.ToString(); - input.ProtectableObjects.Add((Item as AzureBackupContainer).ContainerUniqueName); + itemName = (Item as AzureBackupContainer).ContainerUniqueName; } else { @@ -68,11 +66,11 @@ public override void ExecuteCmdlet() throw new Exception("Uknown item type"); } - var operationId = AzureBackupClient.EnableProtection(input); + var operationId = AzureBackupClient.EnableProtection(Item.ContainerUniqueName,itemName, input); WriteDebug("Received enable azure backup protection response"); var operationStatus = GetOperationStatus(operationId); - this.WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.Jobs).FirstOrDefault()); + this.WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.JobList).FirstOrDefault()); }); } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs index 8c964328bf15..08f957c8d0f4 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs @@ -49,30 +49,30 @@ public override void ExecuteCmdlet() { base.ExecuteCmdlet(); - List azureBackupDatasourceObjects = null; - List azureBackupPOObjects = null; + List azureBackupDatasourceObjects = null; + List azureBackupPOObjects = null; WriteDebug("Making client call"); - DataSourceQueryParameter DSQueryParam = new DataSourceQueryParameter() + CSMProtectedItemQueryObject DSQueryParam = new CSMProtectedItemQueryObject() { - ProtectionStatus = this.ProtectionStatus, - Status = this.Status, + ProtectionStatus = this.Status, + Status = this.ProtectionStatus, Type = this.Type }; - POQueryParameter POQueryParam = new POQueryParameter() + CSMItemQueryObject POQueryParam = new CSMItemQueryObject() { Status = this.ProtectionStatus, Type = this.Type }; var azureBackupDatasourceListResponse = AzureBackupClient.ListDataSources(DSQueryParam); - azureBackupDatasourceObjects = azureBackupDatasourceListResponse.Where(x => x.ContainerName.Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); + azureBackupDatasourceObjects = azureBackupDatasourceListResponse.Where(x => x.Properties.ContainerId.Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); if (this.Status == null) { var azureBackupPOListResponse = AzureBackupClient.ListProtectableObjects(POQueryParam); - azureBackupPOObjects = azureBackupPOListResponse.Where(x => x.ContainerName.Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); + azureBackupPOObjects = azureBackupPOListResponse.Where(x => x.Properties.ContainerId.Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); } WriteDebug("Received azure backup item response"); @@ -80,12 +80,12 @@ public override void ExecuteCmdlet() }); } - public void WriteAzureBackupItem(DataSourceInfo sourceItem, AzureBackupContainer azureBackupItem) + public void WriteAzureBackupItem(CSMProtectedItemResponse sourceItem, AzureBackupContainer azureBackupItem) { this.WriteObject(new AzureBackupItem(sourceItem, azureBackupItem)); } - public void WriteAzureBackupItem(List sourceDataSourceList, List sourcePOList, AzureBackupContainer azureBackupContainer) + public void WriteAzureBackupItem(List sourceDataSourceList, List sourcePOList, AzureBackupContainer azureBackupContainer) { List targetList = new List(); diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs index fcade48e15ec..89d9d0636bd8 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs @@ -111,17 +111,15 @@ public AzureBackupItemContextObject(AzureBackupItemContextObject azureBackupItem Type = azureBackupItemContextObject.Type; } - public AzureBackupItemContextObject(DataSourceInfo item, AzureBackupContainer azureBackupContainer) + public AzureBackupItemContextObject(CSMProtectedItemResponse item, AzureBackupContainer azureBackupContainer) : base(azureBackupContainer) { - DataSourceId = item.InstanceId; Type = item.Type; } - public AzureBackupItemContextObject(ProtectableObjectInfo item, AzureBackupContainer azureBackupContainer) + public AzureBackupItemContextObject(CSMItemResponse item, AzureBackupContainer azureBackupContainer) : base(azureBackupContainer) { - DataSourceId = "-1"; Type = item.Type; } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs index f1e05e460c57..aab853bc7da0 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs @@ -12,6 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using System.Runtime.Serialization; namespace Microsoft.Azure.Commands.AzureBackup.Models { public enum AzureBackupVaultStorageType @@ -118,4 +119,34 @@ public enum BackupType Invalid = 0, Full = 1 } + + public enum CSMAzureBackupOperationStatus + { + + Invalid = 0, + + + InProgress, + + + Cancelled, + + + Succeeded, + + + Failed, + + + PartialSuccess + } + + public enum RemoveProtectionOptions + { + [EnumMember] + DeleteBackupData, + + [EnumMember] + RetainBackupData + }; } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs index 8dd3912938d1..2bd0e8e318af 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs @@ -61,21 +61,21 @@ public AzureBackupItem() { } - public AzureBackupItem(DataSourceInfo datasource, AzureBackupContainer azureBackupContainer) + public AzureBackupItem(CSMProtectedItemResponse datasource, AzureBackupContainer azureBackupContainer) : base(datasource, azureBackupContainer) { - DataSourceStatus = datasource.Status; - ProtectionStatus = datasource.ProtectionStatus; + DataSourceStatus = datasource.Properties.ProtectionStatus; + ProtectionStatus = datasource.Properties.Status; Name = datasource.Name; - ProtectionPolicyName = datasource.ProtectionPolicyName; - ProtectionPolicyId = datasource.ProtectionPolicyId; - RecoveryPointsCount = datasource.RecoveryPointsCount; + ProtectionPolicyName = datasource.Properties.ProtectionPolicyId; + ProtectionPolicyId = datasource.Properties.ProtectionPolicyId; + RecoveryPointsCount = datasource.Properties.RecoveryPointsCount; } - public AzureBackupItem(ProtectableObjectInfo pPOItem, AzureBackupContainer azureBackupContainer) + public AzureBackupItem(CSMItemResponse pPOItem, AzureBackupContainer azureBackupContainer) : base(pPOItem, azureBackupContainer) { - ProtectionStatus = pPOItem.ProtectionStatus; + ProtectionStatus = pPOItem.Properties.Status; Name = pPOItem.Name; } } From d3ef6cfd73b9da3c4a1bb2ff4866aad16a75f22a Mon Sep 17 00:00:00 2001 From: panbha Date: Wed, 22 Jul 2015 16:38:03 +0530 Subject: [PATCH 21/58] recoverypointId --- .../AzureBackupClientAdapter/ItemAdapter.cs | 2 +- ...re.Management.BackupServicesManagement.dll | Bin 191488 -> 191488 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs index 92c291fee473..45f3853e8a80 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs @@ -115,7 +115,7 @@ public IEnumerable ListRecoveryPoints(string container public CSMRecoveryPointResponse GetRecoveryPoint(string containerName, string itemName, string recoveryPointName) { var response = AzureBackupClient.RecoveryPoint.GetAsync(GetCustomRequestHeaders(), containerName, itemName, recoveryPointName, CmdletCancellationToken).Result; - return (response != null) ? response.Value : null; + return (response != null) ? response.CSMRecoveryPointResponse : null; } ///
diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll index 90bae4eabb28984d69ee2576ca8a3fa2ca6c3afe..4524ce4c7dc9d89eb0613091236d10582d455435 100644 GIT binary patch delta 19671 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 bOjVDIqGq=f;)YI~@6&8JEza@!1pEI5cizfK delta 19503 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 From 86540c64cd4aec58e1d173bfedd3b81e1a29a505 Mon Sep 17 00:00:00 2001 From: pikumarmsft Date: Wed, 22 Jul 2015 18:14:21 +0530 Subject: [PATCH 22/58] csm changes --- .../AzureBackupClientAdapter/ItemAdapter.cs | 35 ++++++------------ .../OperationStatusAdapter.cs | 5 --- .../Container/RegisterAzureBackupContainer.cs | 12 +++--- .../UnregisterAzureBackupContainer.cs | 2 +- .../Item/Disable-AzureBackupProtection .cs | 23 ++++++++---- .../Item/Enable-AzureBackupProtection .cs | 7 +--- .../Cmdlets/Jobs/StopAzureBackukpJob.cs | 6 +-- .../SetAzureBackupProtectionPolicy.cs | 2 +- .../Commands.AzureBackup.csproj | 31 +++++++++++++--- .../Models/AzureBackupBaseObjects.cs | 4 +- .../Models/AzureBackupItem.cs | 4 +- ...re.Management.BackupServicesManagement.dll | Bin 191488 -> 172032 bytes 12 files changed, 67 insertions(+), 64 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs index c74134426e72..f8c1c2b6f1b3 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs @@ -38,14 +38,8 @@ public partial class AzureBackupClientAdapter /// public IList ListDataSources(CSMProtectedItemQueryObject query) { -<<<<<<< HEAD var response = AzureBackupClient.DataSource.ListCSMAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; return (response != null) ? response.CSMProtectedItemListResponse.Value : null; -======= - return null; - //var response = AzureBackupClient.DataSource.ListAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; - //return (response != null) ? response.DataSources.Objects : null; ->>>>>>> csm-master } /// @@ -55,14 +49,8 @@ public IList ListDataSources(CSMProtectedItemQueryObje /// public IList ListProtectableObjects(CSMItemQueryObject query) { -<<<<<<< HEAD var response = AzureBackupClient.ProtectableObject.ListCSMAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; return (response != null) ? response.CSMItemListResponse.Value : null; -======= - return null; - //var response = AzureBackupClient.ProtectableObject.ListAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; - //return (response != null) ? response.ProtectableObject.Objects : null; ->>>>>>> csm-master } /// @@ -75,14 +63,8 @@ public IList ListProtectableObjects(CSMItemQueryObject query) /// public Guid DisableProtection(string containerName, string itemName) { -<<<<<<< HEAD var response = AzureBackupClient.DataSource.DisableProtectionCSMAsync(GetCustomRequestHeaders(), containerName, itemName, CmdletCancellationToken).Result; return response.OperationId; -======= - return Guid.Empty; - //var response = AzureBackupClient.DataSource.DisableProtectionAsync(GetCustomRequestHeaders(), containerName, dsType, dsId, request, CmdletCancellationToken).Result; - //return response.OperationId; ->>>>>>> csm-master } /// @@ -92,14 +74,19 @@ public Guid DisableProtection(string containerName, string itemName) /// public Guid EnableProtection(string containerName, string itemName, CSMSetProtectionRequest request) { -<<<<<<< HEAD var response = AzureBackupClient.DataSource.EnableProtectionCSMAsync(GetCustomRequestHeaders(), containerName, itemName, request, CmdletCancellationToken).Result; return response.OperationId; -======= - return Guid.Empty; - //var response = AzureBackupClient.DataSource.EnableProtectionAsync(GetCustomRequestHeaders(), request, CmdletCancellationToken).Result; - //return response.OperationId; ->>>>>>> csm-master + } + + /// + /// Update Protection + /// + /// + /// + public Guid UpdateProtection(string containerName, string itemName, CSMUpdateProtectionRequest request) + { + var response = AzureBackupClient.DataSource.UpdateProtectionCSMAsync(GetCustomRequestHeaders(), containerName, itemName, request, CmdletCancellationToken).Result; + return response.OperationId; } /// diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs index 43710609b55c..89f39d34e689 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs @@ -33,12 +33,7 @@ public partial class AzureBackupClientAdapter { public CSMOperationResult GetOperationStatus(string operationId) { -<<<<<<< HEAD return AzureBackupClient.OperationStatus.CSMGetAsync(operationId, GetCustomRequestHeaders(), CmdletCancellationToken).Result; -======= - return null;// - //return AzureBackupClient.OperationStatus.GetAsync(operationId, GetCustomRequestHeaders(), CmdletCancellationToken).Result; ->>>>>>> csm-master } } } \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs index d6eb398160dd..7a7b97716433 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs @@ -104,7 +104,7 @@ public override void ExecuteCmdlet() var operationId = AzureBackupClient.RegisterContainer(container.Name); var operationStatus = GetOperationStatus(operationId); - WriteObject(GetCreatedJobs(Vault, operationStatus.Jobs).FirstOrDefault()); + WriteObject(GetCreatedJobs(Vault, operationStatus.JobList).FirstOrDefault()); }); } @@ -137,13 +137,13 @@ private bool WaitForDiscoveryToComplete(Guid operationId, out bool isDiscoverySu isDiscoverySuccessful = true; //If operation fails check if retry is needed or not - if (status.OperationResult != AzureBackupOperationResult.Succeeded.ToString()) + if (status.Status != CSMAzureBackupOperationStatus.Succeeded.ToString()) { isDiscoverySuccessful = false; - errorMessage = status.Message; - WriteDebug(String.Format("Discovery operation failed with ErrorCode: {0}", status.ErrorCode)); - if ((status.ErrorCode == AzureBackupOperationErrorCode.DiscoveryInProgress.ToString() || - (status.ErrorCode == AzureBackupOperationErrorCode.BMSUserErrorObjectLocked.ToString()))) + errorMessage = status.Error.Message; + WriteDebug(String.Format("Discovery operation failed with ErrorCode: {0}", status.Error.Code)); + if ((status.Error.Code == AzureBackupOperationErrorCode.DiscoveryInProgress.ToString() || + (status.Error.Code == AzureBackupOperationErrorCode.BMSUserErrorObjectLocked.ToString()))) { //Need to retry for this errors isRetryNeeded = true; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs index 625d9d8f8002..d7440ac4b068 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs @@ -41,7 +41,7 @@ public override void ExecuteCmdlet() string containerUniqueName = Container.ContainerUniqueName; var operationId = AzureBackupClient.UnRegisterContainer(containerUniqueName); - WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Container.ResourceGroupName, Container.ResourceName, Container.Location), GetOperationStatus(operationId).Jobs).FirstOrDefault()); + WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Container.ResourceGroupName, Container.ResourceName, Container.Location), GetOperationStatus(operationId).JobList).FirstOrDefault()); }); } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs index 5a6ce733748d..08ac73049807 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs @@ -50,17 +50,24 @@ public override void ExecuteCmdlet() ExecutionBlock(() => { base.ExecuteCmdlet(); - + Guid operationId = Guid.Empty; WriteDebug("Making client call"); - RemoveProtectionRequestInput input = new RemoveProtectionRequestInput() + + if(!this.DeleteBackupData) + { + CSMUpdateProtectionRequest input = new CSMUpdateProtectionRequest() + { + Properties = new CSMUpdateProtectionRequestProperties(string.Empty) + }; + + operationId = AzureBackupClient.UpdateProtection(Item.ContainerUniqueName, Item.ItemName, input); + } + + else { - RemoveProtectionOption = this.DeleteBackupData ? RemoveProtectionOptions.DeleteBackupData.ToString() : RemoveProtectionOptions.RetainBackupData.ToString(), - Reason = this.Reason != null ? this.Reason : String.Empty, - Comments = this.Comments != null ? this.Comments : String.Empty, - }; + operationId = AzureBackupClient.DisableProtection(Item.ContainerUniqueName, Item.ItemName); + } - WriteDebug("RemoveProtectionOption is = " + input.RemoveProtectionOption); - var operationId = AzureBackupClient.DisableProtection(Item.ContainerUniqueName, Item.Name); WriteDebug("Received disable azure backup protection response"); var operationStatus = GetOperationStatus(operationId); diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs index 6e5805653bd2..66a93e5841ba 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs @@ -47,12 +47,7 @@ public override void ExecuteCmdlet() input.Properties.PolicyId = Policy.InstanceId; if (Item.GetType() == typeof(AzureBackupItem)) { -<<<<<<< HEAD - itemName = (Item as AzureBackupItem).Name; -======= - input.ProtectableObjectType = (Item as AzureBackupItem).Type; - input.ProtectableObjects.Add((Item as AzureBackupItem).ItemName); ->>>>>>> csm-master + itemName = (Item as AzureBackupItem).ItemName; } else if (Item.GetType() == typeof(AzureBackupContainer)) { diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs index 11deb9fe87a4..dbe4a5f42650 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs @@ -60,15 +60,15 @@ public override void ExecuteCmdlet() WriteDebug("JobID is: " + JobID); Guid cancelTaskId = AzureBackupClient.TriggerCancelJob(JobID); - OperationResultResponse opResponse = TrackOperation(cancelTaskId); + CSMOperationResult opResponse = TrackOperation(cancelTaskId); - if (opResponse.OperationResult == AzureBackupOperationResult.Succeeded.ToString()) + if (opResponse.Status == CSMAzureBackupOperationStatus.Succeeded.ToString()) { WriteDebug("Triggered cancellation of job with JobID: " + JobID); } else { - throw new Exception("Stop Job failed with ErrorCode: " + opResponse.ErrorCode); + throw new Exception("Stop Job failed with ErrorCode: " + opResponse.Error.Code); } }); } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs index 90d90606e3a6..5b5b07a479d1 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs @@ -96,7 +96,7 @@ public override void ExecuteCmdlet() { var operationStatus = GetOperationStatus(operationId); WriteDebug("Protection Policy successfully updated and created job(s) to re-configure protection on associated items"); - WriteObject(operationStatus.Jobs); + WriteObject(operationStatus.JobList); } else diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj index b6185da673ca..b8112627d6e8 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj @@ -108,6 +108,7 @@ + @@ -126,11 +127,13 @@ + + @@ -145,12 +148,25 @@ - - - - - - + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + @@ -199,6 +215,9 @@ Commands.Common + + + diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs index a5d12f940b89..4661e3afba3d 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs @@ -105,13 +105,13 @@ public AzureBackupItemContextObject(AzureBackupItemContextObject azureBackupItem ItemName = azureBackupItemContextObject.ItemName; } - public AzureBackupItemContextObject(DataSourceInfo item, AzureBackupContainer azureBackupContainer) + public AzureBackupItemContextObject(CSMProtectedItemResponse item, AzureBackupContainer azureBackupContainer) : base(azureBackupContainer) { ItemName = item.Name; } - public AzureBackupItemContextObject(ProtectableObjectInfo item, AzureBackupContainer azureBackupContainer) + public AzureBackupItemContextObject(CSMItemResponse item, AzureBackupContainer azureBackupContainer) : base(azureBackupContainer) { ItemName = item.Name; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs index d2f5c70b4589..7b78bc10ba8e 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs @@ -71,7 +71,7 @@ public AzureBackupItem(CSMProtectedItemResponse datasource, AzureBackupContainer { DataSourceStatus = datasource.Properties.ProtectionStatus; ProtectionStatus = datasource.Properties.Status; - Name = datasource.Name; + ItemName = datasource.Name; ProtectionPolicyName = datasource.Properties.ProtectionPolicyId; ProtectionPolicyId = datasource.Properties.ProtectionPolicyId; RecoveryPointsCount = datasource.Properties.RecoveryPointsCount; @@ -81,7 +81,7 @@ public AzureBackupItem(CSMItemResponse pPOItem, AzureBackupContainer azureBackup : base(pPOItem, azureBackupContainer) { ProtectionStatus = pPOItem.Properties.Status; - Name = pPOItem.Name; + ItemName = pPOItem.Name; } } } \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll index 90bae4eabb28984d69ee2576ca8a3fa2ca6c3afe..a97e848572eda9d6279eeb46c35a8ac2e8373e80 100644 GIT binary patch literal 172032 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≺& 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 pX~So``4$E~`^;^{{Q2^{{?~Elq>)M literal 191488 zcmd443A`Oel|SC;m%J@6OW*sp>@R!gy}SfMNG@SZ*ipb81w{}+0fnpgf(xBi5foHh za2-cbSF*>fXLt{P_QUe(#fX-#T?p z)u~g})!%cvy86s>Ul#R6Q8X9-|NQ4D`Y6u)+bzfaAD)Bkg{y8`7=38y&eb2CbH<&k zAAZTD?Ww1lgs<(pQM`KoocU4oA8{1*EA>--&~ggDr>JeTSbig$dh^epqYID^ zI{*5j-OnQ{|CMK#Bnf|)pxlS?2g-f06wQSB+uaw9AbD8a7cDpB1OA+fqCvwni1cYD zz2(Y_pK&G9pZfunMV_?P>FwD-zFP$q(z^J`O)yf|2s(=m ze%8fz0<-Pk8);YkQMWjn7k%f>Inl$n&xz&;_0SKe#OXj34WqEW9A(UnrlY8S*c{Od z=_HCXl80xa{^@0h&5N!b5>=ClkvRJ!GV1e^d8_U_=VTNjO<0CA|1-_DCHOy%|1(P( zlMrp(4D}nY;o;>xycmZWNTwJ)!#P?pHy+LB@RTtze*c_$f6_mD88}edaDAXQkS-uA zdD;u{Yq-A!1)maUe}Xp6MW96eEffjLeTH(XQ0^}%XqMD+FDR{ZklCMN)X@&DXCsxz z%#AaiTGxP(q9Mad%_!4^;{DAPJk*dg>J*)goKRfFmDa&pmgIR``@#yeT3f;z)YBpC zmAj)#wslt}6$Y^lam|AvDyWsbRwv8|y>wa`onSXkvN(

@_Z;s3xR&DXS_>t)N44w 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≻j`FMf>W;$DOYWEILxx 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� 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 Date: Wed, 22 Jul 2015 18:30:34 +0530 Subject: [PATCH 23/58] Temporary commit of csm changes --- .../AzureBackupClientAdapter/JobAdapter.cs | 8 ++++---- .../Cmdlets/Jobs/GetAzureBackupJob.cs | 12 ++++++------ .../Cmdlets/Jobs/GetAzureBackupJobDetails.cs | 6 +++--- .../Cmdlets/Jobs/StopAzureBackukpJob.cs | 2 +- .../Cmdlets/Jobs/WaitAzureBackupJob.cs | 9 +++++---- 5 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/JobAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/JobAdapter.cs index 2bea279711f0..a8a3e57b104d 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/JobAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/JobAdapter.cs @@ -32,16 +32,16 @@ namespace Microsoft.Azure.Commands.AzureBackup.ClientAdapter { public partial class AzureBackupClientAdapter { - public IEnumerable ListJobs(JobQueryParameter queryParams) + public IEnumerable ListJobs(CSMJobQueryObject queryParams) { var response = AzureBackupClient.Job.ListAsync(queryParams, GetCustomRequestHeaders(), CmdletCancellationToken).Result; - return response.Jobs.Objects; + return response.List.Value; } - public Mgmt.JobByIdResponse GetJobDetails(string jobId) + public Mgmt.CSMJobDetailsResponse GetJobDetails(string jobId) { var response = AzureBackupClient.Job.GetAsync(jobId, GetCustomRequestHeaders(), CmdletCancellationToken).Result; - return response; + return response.Value; } public Guid TriggerCancelJob(string jobId) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJob.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJob.cs index edabda56a508..ed388ef3b714 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJob.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJob.cs @@ -27,7 +27,7 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets ///

/// 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. /// - [Cmdlet(VerbsCommon.Get, "AzureBackupJob", DefaultParameterSetName = "FiltersSet"), OutputType(typeof(List), typeof(Mgmt.Job))] + [Cmdlet(VerbsCommon.Get, "AzureBackupJob", DefaultParameterSetName = "FiltersSet"), OutputType(typeof(List), typeof(AzureBackupJob))] public class GetAzureBackupJob : AzureBackupCmdletBase { [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.Vault, ParameterSetName = "FiltersSet", ValueFromPipeline = true)] @@ -125,23 +125,23 @@ public override void ExecuteCmdlet() WriteDebug("Type filter is: " + Type); WriteDebug("JobID filter is: " + JobId); - JobQueryParameter queryParams = new JobQueryParameter() + Mgmt.CSMJobQueryObject queryParams = new Mgmt.CSMJobQueryObject() { StartTime = From.Value.ToString("yyyy-MM-dd hh:mm:ss tt"), EndTime = To.Value.ToString("yyyy-MM-dd hh:mm:ss tt"), Operation = Operation, Status = Status, - Type = Type, - JobId = JobId + WorkloadType = Type, + Name = JobId }; var jobsList = AzureBackupClient.ListJobs(queryParams); List retrievedJobs = new List(); - foreach (Mgmt.Job serviceJob in jobsList) + foreach (Mgmt.CSMJobResponse serviceJob in jobsList) { // TODO: Initialize vault from Job object when vault is made optional - retrievedJobs.Add(new AzureBackupJob(Vault, serviceJob)); + retrievedJobs.Add(new AzureBackupJob(Vault, serviceJob.Properties, serviceJob.Name)); } WriteDebug("Successfully retrieved all jobs. Number of jobs retrieved: " + retrievedJobs.Count()); diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJobDetails.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJobDetails.cs index 12b88e1bf33c..1bacb9e517ee 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJobDetails.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJobDetails.cs @@ -25,7 +25,7 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets /// /// Get full details of a job /// - [Cmdlet(VerbsCommon.Get, "AzureBackupJobDetails", DefaultParameterSetName = "IdFiltersSet"), OutputType(typeof(Mgmt.JobProperties))] + [Cmdlet(VerbsCommon.Get, "AzureBackupJobDetails", DefaultParameterSetName = "IdFiltersSet"), OutputType(typeof(AzureBackupJobDetails))] public class GetAzureBackupJobDetils : AzureBackupCmdletBase { [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.Vault, ParameterSetName = "IdFiltersSet")] @@ -57,8 +57,8 @@ public override void ExecuteCmdlet() WriteDebug("JobID filter is: " + JobID); - Mgmt.JobProperties serviceJobProperties = AzureBackupClient.GetJobDetails(JobID).Job; - AzureBackupJobDetails jobDetails = new AzureBackupJobDetails(Vault, serviceJobProperties); + Mgmt.CSMJobDetailsResponse serviceJobProperties = AzureBackupClient.GetJobDetails(JobID); + AzureBackupJobDetails jobDetails = new AzureBackupJobDetails(Vault, serviceJobProperties.JobDetailedProperties, serviceJobProperties.Name); WriteDebug("Retrieved JobDetails from service."); WriteObject(jobDetails); diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs index 11deb9fe87a4..ff30196f3b8c 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs @@ -27,7 +27,7 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets /// /// Stop a running cancellable job /// - [Cmdlet("Stop", "AzureBackupJob"), OutputType(typeof(Mgmt.Job))] + [Cmdlet("Stop", "AzureBackupJob")] public class StopAzureBackupJob : AzureBackupCmdletBase { [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.Vault, ParameterSetName = "IdFiltersSet")] diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/WaitAzureBackupJob.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/WaitAzureBackupJob.cs index ac1f24099490..c54c8ae5eebf 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/WaitAzureBackupJob.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/WaitAzureBackupJob.cs @@ -22,7 +22,7 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets { - [Cmdlet("Wait", "AzureBackupJob"), OutputType(typeof(Mgmt.Job))] + [Cmdlet("Wait", "AzureBackupJob"), OutputType(typeof(List), typeof(AzureBackupJob))] public class WaitAzureBackupJob : AzureBackupCmdletBase { [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.WaitJobFilterJobHelpMessage, ValueFromPipeline = true)] @@ -116,8 +116,8 @@ public override void ExecuteCmdlet() for (int i = 0; i < pendingJobs.Count; i++) { - Mgmt.Job retrievedJob = AzureBackupClient.GetJobDetails(pendingJobs[i]).Job; - if (AzureBackupJobHelper.IsJobRunning(retrievedJob.Status)) + Mgmt.CSMJobDetailsResponse retrievedJob = AzureBackupClient.GetJobDetails(pendingJobs[i]); + if (AzureBackupJobHelper.IsJobRunning(retrievedJob.JobDetailedProperties.Status)) areJobsRunning = true; else { @@ -138,7 +138,8 @@ public override void ExecuteCmdlet() IList finalJobs = new List(); foreach(string jobId in specifiedJobs) { - finalJobs.Add(new AzureBackupJob(Vault, AzureBackupClient.GetJobDetails(jobId).Job)); + Mgmt.CSMJobDetailsResponse retrievedJob = AzureBackupClient.GetJobDetails(jobId); + finalJobs.Add(new AzureBackupJob(Vault, retrievedJob.JobDetailedProperties, retrievedJob.Name)); } if (finalJobs.Count == 1) From 9a3ffcf264adafd91502cb4e947248468b126b70 Mon Sep 17 00:00:00 2001 From: AditTulasi Date: Wed, 22 Jul 2015 18:45:41 +0530 Subject: [PATCH 24/58] CSM changes for jobs commit 2 --- .../AzureBackupCmdletBase.cs | 2 +- .../Commands.AzureBackup/Models/JobObjects.cs | 19 +++++++++--------- ...re.Management.BackupServicesManagement.dll | Bin 191488 -> 176640 bytes 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs index c56d64dec66f..f987631797db 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs @@ -183,7 +183,7 @@ internal IList GetCreatedJobs(AzurePSBackupVault vault, IList ErrorDetails { get; set; } - public AzureBackupJob(AzurePSBackupVault vault, Mgmt.Job serviceJob) + public AzureBackupJob(AzurePSBackupVault vault, Mgmt.CSMJobProperties serviceJob, string jobName) : base(vault) { - this.InstanceId = serviceJob.InstanceId; - this.WorkloadType = serviceJob.Type; + this.InstanceId = jobName; + this.WorkloadType = serviceJob.WorkloadType; this.WorkloadName = serviceJob.EntityFriendlyName; this.Operation = serviceJob.Operation; this.Status = serviceJob.Status; @@ -62,7 +63,7 @@ public AzureBackupJob(AzurePSBackupVault vault, Mgmt.Job serviceJob) if (serviceJob.ErrorDetails != null) { - foreach (Mgmt.ErrorInfo error in serviceJob.ErrorDetails) + foreach (Mgmt.CSMJobErrorInfo error in serviceJob.ErrorDetails) { this.ErrorDetails.Add(new ErrorInfo(error)); } @@ -93,7 +94,7 @@ public class ErrorInfo public List Recommendations { get; set; } - public ErrorInfo(Mgmt.ErrorInfo serviceErrorInfo) + public ErrorInfo(Mgmt.CSMJobErrorInfo serviceErrorInfo) { this.ErrorCode = serviceErrorInfo.ErrorCode; this.ErrorMessage = serviceErrorInfo.ErrorString; @@ -111,8 +112,8 @@ public class AzureBackupJobDetails : AzureBackupJob public List SubTasks { get; set; } - public AzureBackupJobDetails(AzurePSBackupVault vault, Mgmt.JobProperties serviceJobProperties) - : base(vault, serviceJobProperties) + public AzureBackupJobDetails(AzurePSBackupVault vault, Mgmt.CSMJobDetailedProperties serviceJobProperties, string jobName) + : base(vault, serviceJobProperties, jobName) { if (serviceJobProperties.PropertyBag != null) this.Properties = new Dictionary(serviceJobProperties.PropertyBag); @@ -122,7 +123,7 @@ public AzureBackupJobDetails(AzurePSBackupVault vault, Mgmt.JobProperties servic this.SubTasks = new List(); if(serviceJobProperties.TasksList != null) { - foreach (Mgmt.JobTaskDetails serviceSubTask in serviceJobProperties.TasksList) + foreach (Mgmt.CSMJobTaskDetails serviceSubTask in serviceJobProperties.TasksList) { this.SubTasks.Add(new AzureBackupJobSubTask(serviceSubTask)); } @@ -138,7 +139,7 @@ public class AzureBackupJobSubTask // Not adding other fields because service is not filling them today. - public AzureBackupJobSubTask(Mgmt.JobTaskDetails serviceTask) + public AzureBackupJobSubTask(Mgmt.CSMJobTaskDetails serviceTask) { this.Name = serviceTask.TaskId; this.Status = serviceTask.Status; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll index 4524ce4c7dc9d89eb0613091236d10582d455435..a072cbab3300f00266bbbf5e77c5641ee4aabbcc 100644 GIT binary patch literal 176640 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¿ZN1-%P} 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 literal 191488 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 From 53060d12b8ea229a5949b8b0a457516177afd6a0 Mon Sep 17 00:00:00 2001 From: AditTulasi Date: Wed, 22 Jul 2015 18:48:16 +0530 Subject: [PATCH 25/58] CSM Jobs changes commit 3 --- .../AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs index f987631797db..43342440c0a6 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs @@ -183,7 +183,8 @@ internal IList GetCreatedJobs(AzurePSBackupVault vault, IList Date: Wed, 22 Jul 2015 22:07:44 +0530 Subject: [PATCH 26/58] correctinglostcheckin --- .../AzureBackupClientAdapter/ItemAdapter.cs | 2 +- ...re.Management.BackupServicesManagement.dll | Bin 172032 -> 192000 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs index f8c1c2b6f1b3..37b0ce677848 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs @@ -122,7 +122,7 @@ public IEnumerable ListRecoveryPoints(string container public CSMRecoveryPointResponse GetRecoveryPoint(string containerName, string itemName, string recoveryPointName) { var response = AzureBackupClient.RecoveryPoint.GetAsync(GetCustomRequestHeaders(), containerName, itemName, recoveryPointName, CmdletCancellationToken).Result; - return (response != null) ? response.Value : null; + return (response != null) ? response.CSMRecoveryPointResponse : null; } /// /// /// - public IEnumerable ListDataSources(DataSourceQueryParameter query) + public IList ListDataSources(CSMProtectedItemQueryObject query) { - return null; - //var response = AzureBackupClient.DataSource.ListAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; - //return (response != null) ? response.DataSources.Objects : null; + var response = AzureBackupClient.DataSource.ListCSMAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return (response != null) ? response.CSMProtectedItemListResponse.Value : null; } /// @@ -48,11 +47,10 @@ public IEnumerable ListDataSources(DataSourceQueryParameter quer /// /// /// - public IEnumerable ListProtectableObjects(POQueryParameter query) + public IList ListProtectableObjects(CSMItemQueryObject query) { - return null; - //var response = AzureBackupClient.ProtectableObject.ListAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; - //return (response != null) ? response.ProtectableObject.Objects : null; + var response = AzureBackupClient.ProtectableObject.ListCSMAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return (response != null) ? response.CSMItemListResponse.Value : null; } /// @@ -63,11 +61,10 @@ public IEnumerable ListProtectableObjects(POQueryParamete /// /// /// - public Guid DisableProtection(string containerName, string dsType, string dsId, RemoveProtectionRequestInput request) + public Guid DisableProtection(string containerName, string itemName) { - return Guid.Empty; - //var response = AzureBackupClient.DataSource.DisableProtectionAsync(GetCustomRequestHeaders(), containerName, dsType, dsId, request, CmdletCancellationToken).Result; - //return response.OperationId; + var response = AzureBackupClient.DataSource.DisableProtectionCSMAsync(GetCustomRequestHeaders(), containerName, itemName, CmdletCancellationToken).Result; + return response.OperationId; } /// @@ -75,11 +72,21 @@ public Guid DisableProtection(string containerName, string dsType, string dsId, /// /// /// - public Guid EnableProtection(SetProtectionRequestInput request) + public Guid EnableProtection(string containerName, string itemName, CSMSetProtectionRequest request) + { + var response = AzureBackupClient.DataSource.EnableProtectionCSMAsync(GetCustomRequestHeaders(), containerName, itemName, request, CmdletCancellationToken).Result; + return response.OperationId; + } + + /// + /// Update Protection + /// + /// + /// + public Guid UpdateProtection(string containerName, string itemName, CSMUpdateProtectionRequest request) { - return Guid.Empty; - //var response = AzureBackupClient.DataSource.EnableProtectionAsync(GetCustomRequestHeaders(), request, CmdletCancellationToken).Result; - //return response.OperationId; + var response = AzureBackupClient.DataSource.UpdateProtectionCSMAsync(GetCustomRequestHeaders(), containerName, itemName, request, CmdletCancellationToken).Result; + return response.OperationId; } /// diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs index e0bd799fbf77..89f39d34e689 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs @@ -31,10 +31,9 @@ namespace Microsoft.Azure.Commands.AzureBackup.ClientAdapter { public partial class AzureBackupClientAdapter { - public OperationResultResponse GetOperationStatus(string operationId) + public CSMOperationResult GetOperationStatus(string operationId) { - return null;// - //return AzureBackupClient.OperationStatus.GetAsync(operationId, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return AzureBackupClient.OperationStatus.CSMGetAsync(operationId, GetCustomRequestHeaders(), CmdletCancellationToken).Result; } } } \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs index 43342440c0a6..fe63b1a73b49 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs @@ -19,6 +19,7 @@ using Microsoft.Azure.Common.Authentication; using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Management.BackupServices; +using Microsoft.Azure.Management.BackupServices.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Scheduler; using System; @@ -145,7 +146,7 @@ private void HandleException(Exception exception) /// /// /// - internal OperationResultResponse GetOperationStatus(Guid operationId) + internal CSMOperationResult GetOperationStatus(Guid operationId) { return AzureBackupClient.GetOperationStatus(operationId.ToString()); } @@ -158,15 +159,15 @@ internal OperationResultResponse GetOperationStatus(Guid operationId) /// /// In Millisec /// - internal OperationResultResponse TrackOperation(Guid operationId, int checkFrequency = defaultOperationStatusRetryTimeInMilliSec) + internal CSMOperationResult TrackOperation(Guid operationId, int checkFrequency = defaultOperationStatusRetryTimeInMilliSec) { - OperationResultResponse response = null; + CSMOperationResult response = null; while (true) { response = GetOperationStatus(operationId); - if (response.OperationStatus == AzureBackupOperationStatus.Completed.ToString()) + if (response.Status == CSMAzureBackupOperationStatus.Succeeded.ToString()) { break; } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs index ef81c10d353e..f7a4ae5804ea 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs @@ -19,6 +19,7 @@ using System.Linq; using Microsoft.Azure.Management.BackupServices.Models; using MBS = Microsoft.Azure.Management.BackupServices; +using Microsoft.Azure.Commands.AzureBackup.Models; namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets { @@ -31,7 +32,7 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets /// /// Get list of containers /// - [Cmdlet(VerbsData.Backup, "AzureBackupItem"), OutputType(typeof(Guid))] + [Cmdlet(VerbsData.Backup, "AzureBackupItem"), OutputType(typeof(AzureBackupJob))] public class TriggerAzureBackup : AzureBackupDSCmdletBase { public override void ExecuteCmdlet() diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs index d6eb398160dd..299c6dc1320f 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs @@ -33,7 +33,7 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets /// /// Get list of containers /// - [Cmdlet(VerbsLifecycle.Register, "AzureBackupContainer", DefaultParameterSetName = V1VMParameterSet), OutputType(typeof(string))] + [Cmdlet(VerbsLifecycle.Register, "AzureBackupContainer", DefaultParameterSetName = V1VMParameterSet), OutputType(typeof(AzureBackupJob))] public class RegisterAzureBackupContainer : AzureBackupVaultCmdletBase { internal const string V1VMParameterSet = "V1VM"; @@ -104,7 +104,7 @@ public override void ExecuteCmdlet() var operationId = AzureBackupClient.RegisterContainer(container.Name); var operationStatus = GetOperationStatus(operationId); - WriteObject(GetCreatedJobs(Vault, operationStatus.Jobs).FirstOrDefault()); + WriteObject(GetCreatedJobs(Vault, operationStatus.JobList).FirstOrDefault()); }); } @@ -137,13 +137,13 @@ private bool WaitForDiscoveryToComplete(Guid operationId, out bool isDiscoverySu isDiscoverySuccessful = true; //If operation fails check if retry is needed or not - if (status.OperationResult != AzureBackupOperationResult.Succeeded.ToString()) + if (status.Status != CSMAzureBackupOperationStatus.Succeeded.ToString()) { isDiscoverySuccessful = false; - errorMessage = status.Message; - WriteDebug(String.Format("Discovery operation failed with ErrorCode: {0}", status.ErrorCode)); - if ((status.ErrorCode == AzureBackupOperationErrorCode.DiscoveryInProgress.ToString() || - (status.ErrorCode == AzureBackupOperationErrorCode.BMSUserErrorObjectLocked.ToString()))) + errorMessage = status.Error.Message; + WriteDebug(String.Format("Discovery operation failed with ErrorCode: {0}", status.Error.Code)); + if ((status.Error.Code == AzureBackupOperationErrorCode.DiscoveryInProgress.ToString() || + (status.Error.Code == AzureBackupOperationErrorCode.BMSUserErrorObjectLocked.ToString()))) { //Need to retry for this errors isRetryNeeded = true; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs index 625d9d8f8002..70da78122ddb 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs @@ -29,7 +29,7 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets /// /// Get list of containers /// - [Cmdlet(VerbsLifecycle.Unregister, "AzureBackupContainer"), OutputType(typeof(string))] + [Cmdlet(VerbsLifecycle.Unregister, "AzureBackupContainer"), OutputType(typeof(AzureBackupJob))] public class UnregisterAzureBackupContainer : AzureBackupContainerCmdletBase { public override void ExecuteCmdlet() @@ -41,7 +41,7 @@ public override void ExecuteCmdlet() string containerUniqueName = Container.ContainerUniqueName; var operationId = AzureBackupClient.UnRegisterContainer(containerUniqueName); - WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Container.ResourceGroupName, Container.ResourceName, Container.Location), GetOperationStatus(operationId).Jobs).FirstOrDefault()); + WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Container.ResourceGroupName, Container.ResourceName, Container.Location), GetOperationStatus(operationId).JobList).FirstOrDefault()); }); } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs index 7025084e97a2..08ac73049807 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs @@ -12,6 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.AzureBackup.Models; using Microsoft.Azure.Management.BackupServices; using Microsoft.Azure.Management.BackupServices.Models; using System; @@ -49,31 +50,29 @@ public override void ExecuteCmdlet() ExecutionBlock(() => { base.ExecuteCmdlet(); - + Guid operationId = Guid.Empty; WriteDebug("Making client call"); - RemoveProtectionRequestInput input = new RemoveProtectionRequestInput() + + if(!this.DeleteBackupData) + { + CSMUpdateProtectionRequest input = new CSMUpdateProtectionRequest() + { + Properties = new CSMUpdateProtectionRequestProperties(string.Empty) + }; + + operationId = AzureBackupClient.UpdateProtection(Item.ContainerUniqueName, Item.ItemName, input); + } + + else { - RemoveProtectionOption = this.DeleteBackupData ? RemoveProtectionOptions.DeleteBackupData.ToString() : RemoveProtectionOptions.RetainBackupData.ToString(), - Reason = this.Reason != null ? this.Reason : String.Empty, - Comments = this.Comments != null ? this.Comments : String.Empty, - }; + operationId = AzureBackupClient.DisableProtection(Item.ContainerUniqueName, Item.ItemName); + } - WriteDebug("RemoveProtectionOption is = " + input.RemoveProtectionOption); - var operationId = AzureBackupClient.DisableProtection(Item.ContainerUniqueName, Item.Type, Item.DataSourceId, input); WriteDebug("Received disable azure backup protection response"); var operationStatus = GetOperationStatus(operationId); - this.WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.Jobs).FirstOrDefault()); + this.WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.JobList).FirstOrDefault()); }); } - - public enum RemoveProtectionOptions - { - [EnumMember] - DeleteBackupData, - - [EnumMember] - RetainBackupData - }; } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs index 9ecd1c77f0c2..66a93e5841ba 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs @@ -42,21 +42,19 @@ public override void ExecuteCmdlet() base.ExecuteCmdlet(); WriteDebug("Making client call"); - SetProtectionRequestInput input = new SetProtectionRequestInput(); - input.PolicyId = Policy.InstanceId; + string itemName = string.Empty; + CSMSetProtectionRequest input = new CSMSetProtectionRequest(); + input.Properties.PolicyId = Policy.InstanceId; if (Item.GetType() == typeof(AzureBackupItem)) { - input.ProtectableObjectType = (Item as AzureBackupItem).Type; - input.ProtectableObjects.Add((Item as AzureBackupItem).ItemName); + itemName = (Item as AzureBackupItem).ItemName; } else if (Item.GetType() == typeof(AzureBackupContainer)) { WriteDebug("Input is container Type = " + Item.GetType()); if ((Item as AzureBackupContainer).ContainerType == AzureBackupContainerType.IaasVMContainer.ToString()) { - WriteDebug("container Type = " + (Item as AzureBackupContainer).ContainerType); - input.ProtectableObjectType = DataSourceType.VM.ToString(); - input.ProtectableObjects.Add((Item as AzureBackupContainer).ContainerUniqueName); + itemName = (Item as AzureBackupContainer).ContainerUniqueName; } else { @@ -68,11 +66,11 @@ public override void ExecuteCmdlet() throw new Exception("Uknown item type"); } - var operationId = AzureBackupClient.EnableProtection(input); + var operationId = AzureBackupClient.EnableProtection(Item.ContainerUniqueName,itemName, input); WriteDebug("Received enable azure backup protection response"); var operationStatus = GetOperationStatus(operationId); - this.WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.Jobs).FirstOrDefault()); + this.WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.JobList).FirstOrDefault()); }); } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs index 8730597297e3..f5ed2a4240bb 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs @@ -49,30 +49,30 @@ public override void ExecuteCmdlet() { base.ExecuteCmdlet(); - List azureBackupDatasourceObjects = null; - List azureBackupPOObjects = null; + List azureBackupDatasourceObjects = null; + List azureBackupPOObjects = null; WriteDebug("Making client call"); - DataSourceQueryParameter DSQueryParam = new DataSourceQueryParameter() + CSMProtectedItemQueryObject DSQueryParam = new CSMProtectedItemQueryObject() { - ProtectionStatus = this.ProtectionStatus, - Status = this.Status, + ProtectionStatus = this.Status, + Status = this.ProtectionStatus, Type = this.Type }; - POQueryParameter POQueryParam = new POQueryParameter() + CSMItemQueryObject POQueryParam = new CSMItemQueryObject() { Status = this.ProtectionStatus, Type = this.Type }; var azureBackupDatasourceListResponse = AzureBackupClient.ListDataSources(DSQueryParam); - azureBackupDatasourceObjects = azureBackupDatasourceListResponse.Where(x => x.ContainerName.Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); + azureBackupDatasourceObjects = azureBackupDatasourceListResponse.Where(x => x.Properties.ContainerId.Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); if (this.Status == null) { var azureBackupPOListResponse = AzureBackupClient.ListProtectableObjects(POQueryParam); - azureBackupPOObjects = azureBackupPOListResponse.Where(x => x.ContainerName.Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); + azureBackupPOObjects = azureBackupPOListResponse.Where(x => x.Properties.ContainerId.Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); } WriteDebug("Received azure backup item response"); @@ -80,12 +80,12 @@ public override void ExecuteCmdlet() }); } - public void WriteAzureBackupItem(DataSourceInfo sourceItem, AzureBackupContainer azureBackupItem) + public void WriteAzureBackupItem(CSMProtectedItemResponse sourceItem, AzureBackupContainer azureBackupItem) { this.WriteObject(new AzureBackupItem(sourceItem, azureBackupItem)); } - public void WriteAzureBackupItem(List sourceDataSourceList, List sourcePOList, AzureBackupContainer azureBackupContainer) + public void WriteAzureBackupItem(List sourceDataSourceList, List sourcePOList, AzureBackupContainer azureBackupContainer) { List targetList = new List(); diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJob.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJob.cs index ed388ef3b714..9940d2d4fd08 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJob.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJob.cs @@ -111,8 +111,8 @@ public override void ExecuteCmdlet() // if user hasn't specified any filters, then default filter fetches // all jobs that were created in last 24 hours. if (From == DateTime.MinValue && To == DateTime.MinValue && - Operation == string.Empty && Status == string.Empty && - Type == string.Empty && JobId == string.Empty) + string.IsNullOrEmpty(Operation) && string.IsNullOrEmpty(Status) && + string.IsNullOrEmpty(Type) && string.IsNullOrEmpty(JobId)) { From = DateTime.UtcNow.AddDays(-1); To = DateTime.UtcNow; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJobDetails.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJobDetails.cs index 1bacb9e517ee..19cf95ce8a53 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJobDetails.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureBackupJobDetails.cs @@ -25,7 +25,7 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets /// /// Get full details of a job /// - [Cmdlet(VerbsCommon.Get, "AzureBackupJobDetails", DefaultParameterSetName = "IdFiltersSet"), OutputType(typeof(AzureBackupJobDetails))] + [Cmdlet(VerbsCommon.Get, "AzureBackupJobDetails", DefaultParameterSetName = "JobsFiltersSet"), OutputType(typeof(AzureBackupJobDetails))] public class GetAzureBackupJobDetils : AzureBackupCmdletBase { [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.Vault, ParameterSetName = "IdFiltersSet")] @@ -36,7 +36,7 @@ public class GetAzureBackupJobDetils : AzureBackupCmdletBase [ValidateNotNullOrEmpty] public string JobID { get; set; } - [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.JobDetailsFilterJobHelpMessage, ParameterSetName = "JobsFiltersSet")] + [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.JobDetailsFilterJobHelpMessage, ParameterSetName = "JobsFiltersSet", ValueFromPipeline = true)] [ValidateNotNull] public AzureBackupJob Job { get; set; } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs index ff30196f3b8c..3a2ff64bdcec 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/StopAzureBackukpJob.cs @@ -60,15 +60,15 @@ public override void ExecuteCmdlet() WriteDebug("JobID is: " + JobID); Guid cancelTaskId = AzureBackupClient.TriggerCancelJob(JobID); - OperationResultResponse opResponse = TrackOperation(cancelTaskId); + CSMOperationResult opResponse = TrackOperation(cancelTaskId); - if (opResponse.OperationResult == AzureBackupOperationResult.Succeeded.ToString()) + if (opResponse.Status == CSMAzureBackupOperationStatus.Succeeded.ToString()) { WriteDebug("Triggered cancellation of job with JobID: " + JobID); } else { - throw new Exception("Stop Job failed with ErrorCode: " + opResponse.ErrorCode); + throw new Exception("Stop Job failed with ErrorCode: " + opResponse.Error.Code); } }); } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs index 90d90606e3a6..5b5b07a479d1 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs @@ -96,7 +96,7 @@ public override void ExecuteCmdlet() { var operationStatus = GetOperationStatus(operationId); WriteDebug("Protection Policy successfully updated and created job(s) to re-configure protection on associated items"); - WriteObject(operationStatus.Jobs); + WriteObject(operationStatus.JobList); } else diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj index 84726ccad3d2..b8112627d6e8 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj @@ -30,7 +30,7 @@ MinimumRecommendedRules.ruleset - ..\..\..\Package\Release\ResourceManager\AzureResourceManager\AzureBackup\ + ..\..\..\Package\Release\ServiceManagement\Azure\StorSimple\ TRACE;SIGN true pdbonly @@ -51,7 +51,7 @@ False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.0.27-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll + ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.0.25-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -133,6 +133,7 @@ + @@ -148,11 +149,24 @@ - - - - - + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + @@ -175,12 +189,10 @@ - Always Designer - Designer @@ -193,9 +205,6 @@ - - Always - @@ -206,11 +215,28 @@ Commands.Common + + + - - - - + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs index a5d12f940b89..4661e3afba3d 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs @@ -105,13 +105,13 @@ public AzureBackupItemContextObject(AzureBackupItemContextObject azureBackupItem ItemName = azureBackupItemContextObject.ItemName; } - public AzureBackupItemContextObject(DataSourceInfo item, AzureBackupContainer azureBackupContainer) + public AzureBackupItemContextObject(CSMProtectedItemResponse item, AzureBackupContainer azureBackupContainer) : base(azureBackupContainer) { ItemName = item.Name; } - public AzureBackupItemContextObject(ProtectableObjectInfo item, AzureBackupContainer azureBackupContainer) + public AzureBackupItemContextObject(CSMItemResponse item, AzureBackupContainer azureBackupContainer) : base(azureBackupContainer) { ItemName = item.Name; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs index f1e05e460c57..aab853bc7da0 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs @@ -12,6 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using System.Runtime.Serialization; namespace Microsoft.Azure.Commands.AzureBackup.Models { public enum AzureBackupVaultStorageType @@ -118,4 +119,34 @@ public enum BackupType Invalid = 0, Full = 1 } + + public enum CSMAzureBackupOperationStatus + { + + Invalid = 0, + + + InProgress, + + + Cancelled, + + + Succeeded, + + + Failed, + + + PartialSuccess + } + + public enum RemoveProtectionOptions + { + [EnumMember] + DeleteBackupData, + + [EnumMember] + RetainBackupData + }; } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs index 9eba448a9e8d..7b78bc10ba8e 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs @@ -66,24 +66,22 @@ public AzureBackupItem() { } - public AzureBackupItem(DataSourceInfo datasource, AzureBackupContainer azureBackupContainer) + public AzureBackupItem(CSMProtectedItemResponse datasource, AzureBackupContainer azureBackupContainer) : base(datasource, azureBackupContainer) { - DataSourceStatus = datasource.Status; - ProtectionStatus = datasource.ProtectionStatus; - ProtectionPolicyName = datasource.ProtectionPolicyName; - ProtectionPolicyId = datasource.ProtectionPolicyId; - RecoveryPointsCount = datasource.RecoveryPointsCount; - DataSourceId = datasource.InstanceId; - Type = datasource.Type; + DataSourceStatus = datasource.Properties.ProtectionStatus; + ProtectionStatus = datasource.Properties.Status; + ItemName = datasource.Name; + ProtectionPolicyName = datasource.Properties.ProtectionPolicyId; + ProtectionPolicyId = datasource.Properties.ProtectionPolicyId; + RecoveryPointsCount = datasource.Properties.RecoveryPointsCount; } - public AzureBackupItem(ProtectableObjectInfo pPOItem, AzureBackupContainer azureBackupContainer) + public AzureBackupItem(CSMItemResponse pPOItem, AzureBackupContainer azureBackupContainer) : base(pPOItem, azureBackupContainer) { - ProtectionStatus = pPOItem.ProtectionStatus; - DataSourceId = pPOItem.InstanceId; - Type = pPOItem.Type; + ProtectionStatus = pPOItem.Properties.Status; + ItemName = pPOItem.Name; } } } \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll index a072cbab3300f00266bbbf5e77c5641ee4aabbcc..e286472349ef785e87bbc8e645970af6c364ae57 100644 GIT binary patch delta 3001 zcma)8dr(y86~E_O_Q9J47J|D#7ksmepdzxwV#>o&Ku}abe1JHKn(E@^(cq0yg4C)> zZ=j_XnO7#6D(+D zHY|o=un_BD6--26AzIr+5I}bAVaZB9yXRn_Rk9{D8o-L(nc-0rv_eH?xghwgVA4Sl zyqs+y=$xODu=|Qm49*fGt+eEcF_0EANuhO2+DB4Ua7UJfLw=g|PYqnf#wlg+U**A+ z1TEo@$hSpD=!6R0@F4Cdt`dZbm0xmaCh6J1)lHd3t=P$H;E8k}!L< zhBkj_Za7RJ8H(L=4dBFUb4Ah?&of6G4bL6vn&(J-;77uFhZ&?RIb|_Gj5rr?Mourd zsE0h|z>*ArGUe{;&02!ozI-~XH@Hvb$4@1BPUS+YI0l+n=CSg`pF_hq+=(!e8RV9+^gjL;?KSc680XZ)Gm{U#Q)36aa-`;08pu_Cs;vPctxC!ZbNcYCM=>giMYONsA(TRK zEuNP~gl!lwEqTUdiCsu@+eju2AwRKYU>(;FKv)76JiYD|*1Z`@SvoIS0$zRE(2MQ; zhS<`l4UY$qxxODcbY+Y#!dIve)*9lyAX&M-j%O9) zH>5zevS`C9$6%7mTEAu`dg-^d{gf1dHBSFv-~NvOw7yOW>=J9qyG zXYs_IG?IqBw&g1tk5Y5g&+*`#c2F4eMVf4p-rj>Y-ow639s zMS`I77L)uruS5No(2Pm*xof7f>X0|@n{^+)py`)+g7AR{IrAYk{Y?C!b(FE(U#M`J z+}DbeTbq>Bzy3{2ZTWMy>>rQgtw}Adtp50}1}W=;dBiSw|~Fbb7Is>vV3NQ74|o?qj3iHu@ibmAbp?_#+MUp|dlMWJ{-w znT$$zXF5=0Sx+_S`8Lj!Xj!2Ve_J>VPFOH_@g!<&??6;n? z=i$98JRNUc{r}Ptbd9HD;x(R*UDrO)GfgPw-Wo)A?xI_V0fs5o|7_60WZZw>21~Jv zq)X9%f7lC7D(#Qjv}|&y`>NQq9eiQwre=s|u26cT#I*hds#ogu&;g<%HFTy!bZ0nQ zNf1#c(~FF%$0*5tTBwfK5CD@b+|@&4uKNaaV|iYxzaSfvULq+TRo~YE-?W@S^1U0q=E1}!T_ZP@uYmm2k2#^&hUjh+Kk6fZ7Y>vX{S7Be^qdmb1(=#qz?&u zPJhf(0@vmBM#vB5NKA5YhbNnt|7`>tq^c3Y;Gh?VIwJ&DFmTCVnIH#BWJ?&Vht2Y? zFvx|!sQ1HQjfRXX2EhYX;>+K{a-$gnVY9l^4A~4G%XcCnpN8}(;Ju?RkD_A}Y;!bx zr6s*I#BKij5DJ>7J{;l+I(8V8X$iN{2KPAbw(p1deNGj|q*~76X7v-gqdEGGQEvB_ z6UhCtx;Oz6fJKMPTN5FQf*eVN5n5IrjvWWX)yyt)>zNMG4p_h1gluZ#g%foU2)vsTH zkxZ|Ib1DzY^HabiM`l16ESAS+zyWBJFK4)c12R3p_DnZ$Zl)Vp%zOc`O2BIwY?WK4 zLO6UaAD;?oG}Gr%)HHQ$9%Q)Bxgy_v&dvD{3y`jUG7XjiER}5q?qd0U0knF_vx*?d zLY2@GF;EHr;tB605=ehlb{0We@OxxtQtv<|w8-s66zvuDW)Y9(93=M^Lx`L;n?6Fz z)n&6`8H0D_?m6yIX>*}aLsPjFhC{jBUP_)#@=ZQ;%7e;i=#wYWz>H?Ox(wpLD(~Rh zB>77|WXeC3K`|>a^85a=UQh@CWZat4iaRPV*G=C)V# zD4|j|&SDnz-PtTVEa=TGjx!4{`{%s#xhrP;p%drSZ!6fDWYhjFEi=hWVDz_uAl##` z>3j0&-7Fk5>h;}B5B}rn!@K`CRsLxYGs8qRVlO)jYQR4BNW)6UtHy(@4_pcQ{{d&; Bi4Fh& delta 2997 zcma)8dr*|u75~m%_5sTR%WIY01pyI}UBD*+OfcnPA|NPQLE{7MM5Ch%ACCmLMk#Dl zG*dOF@J+_4)=nZKzL+ocvyzOE1dXMHNlTl8GGKkANgIui&8SJnp1UhS9skJA?781} z&pE$y@9&&*@3-TM-;OJOdw#>L&3ku7!gG6Dmj!%tjtO}J{YIHkq}m%Ds#gjA^m^(n z6D%0bY*-5Mkd1Y)9VQ{L5Vik25I|~gWvOxzyOYl91UdKFW*q;>GTAZbQIaC!!CVW6Jd^uR74%^9f-?AA zzPlhrP522#wy1mLteG0b{lx8pP`>R`?#!Hg5XrBqXbM0G?pu@%GjViL8mz{M#cA-W zyks$9>_XSFe30;O%Vw}+8mS@`VhkFi&asEqXH<**nx>;*#-fs7=GNe)Av12LN3#}# zE|~FnNibw#cgajxkM5G0%%#OqOAO|h>RF2x1FSLVEKO(UwAg(y1_$YJP>a@Kvz)Sg zhl&>8zS0C%lA$=fQU`^2ZKX)FrK`+QH?>b}>6&*-eBfKcRi_xl%K2q6K#Vxnaz;K| zdr=F?^6`z?0ME;}H?^q=@<7F6wod2Sl|SE=)4Qt*j235t3zw2?!bWjDwBSu~5%ghJ zWi>tjxpD@(s>8k3Xbh>5+Vu6a~3GLFpW$B;v}#c1x4O4Q49xAm%-!Pi4BCf4g&yzj$W(c`N6IV{7MiX?_; z4{)Rt0u@s!eq7H9zgzzdu{OOSiCA0H@EWl;*ig(_b9q>Ed0BILSaT)$fJy$ck!KZ? zcBMh0ykXZ4U&_OmzsrIQ+1@l0Sb-iVHBFSA&2MT0cj?F4&4>D{6~p(7R3nZ1H$ji= z-oK3nx_!qC)MQ|g>kgjwVVCvtvxh3cYV;pda_`h1-?(WH_O_gdb=Y)xHtfdU!{0*( ze$tvrQg_4_)kn6Ewc*bxLDYtP;5A!(WD2mW{+QVoChuumqh=5M@z%*irZ?cCp((lz zf}rsg!wj6xDgGPjjX76y*Eo55yDx8-#`m7m>s!1*_`rh5M=?VSyC-lj9 z=L%29>sNnTI)bk8bj-WP)6sJ69WA>Yf(6$j=&0Rr{S<&!j{ats8WQlB+Xe+VM6yEG zetXIXTIH_$oobd4>Nz2r4uBpCn%W?VRfN(-64UVmC_WkIL&u4-s)&nrIw~9;B#0>Y zQcX+sX>3>GBfmxXt4C!=FC`&?MD}xHDKMe9AL$ZX!PNXVW-|mrt#Zf=c??FRTUIEdAuAGi?c7TO&}8LaoHyvKcqmg7ZnF*UaNPah#`%9l6~>&koW)w@13TC``hSx>?sHSf{Uha- z6i5N~AY9rv9U>{n>FJQ5W?3feK53G^p949p)Wpv^Z6`H@uUMg!r^0`zNu|;>I0XBe z(_tF4ONr@VW%vA~1?dn4fzrlwm`r@^PKS5-k|yNACF0?J9!0E`;`0HO&!2~BOp7K? z|#0M2ikK`zU%wX=poR`LnVz<;)LV=@|uSRLmdF6nDNv`G4(Gm7yfy8(MswEqX$lzxE# From c6945a605b62b9971e22ddd16ab621c9b732a605 Mon Sep 17 00:00:00 2001 From: pikumarmsft Date: Thu, 23 Jul 2015 11:40:22 +0530 Subject: [PATCH 32/58] change in filter --- .../AzureBackupClientAdapter/ItemAdapter.cs | 2 +- .../Cmdlets/Item/GetAzureBackupItem.cs | 4 ++-- ...re.Management.BackupServicesManagement.dll | Bin 172032 -> 172032 bytes 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs index f8c1c2b6f1b3..37b0ce677848 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs @@ -122,7 +122,7 @@ public IEnumerable ListRecoveryPoints(string container public CSMRecoveryPointResponse GetRecoveryPoint(string containerName, string itemName, string recoveryPointName) { var response = AzureBackupClient.RecoveryPoint.GetAsync(GetCustomRequestHeaders(), containerName, itemName, recoveryPointName, CmdletCancellationToken).Result; - return (response != null) ? response.Value : null; + return (response != null) ? response.CSMRecoveryPointResponse : null; } /// diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs index f5ed2a4240bb..09a81d326948 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs @@ -67,12 +67,12 @@ public override void ExecuteCmdlet() }; var azureBackupDatasourceListResponse = AzureBackupClient.ListDataSources(DSQueryParam); - azureBackupDatasourceObjects = azureBackupDatasourceListResponse.Where(x => x.Properties.ContainerId.Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); + azureBackupDatasourceObjects = azureBackupDatasourceListResponse.Where(x => x.Properties.ContainerId.Split('/').Last().Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); if (this.Status == null) { var azureBackupPOListResponse = AzureBackupClient.ListProtectableObjects(POQueryParam); - azureBackupPOObjects = azureBackupPOListResponse.Where(x => x.Properties.ContainerId.Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); + azureBackupPOObjects = azureBackupPOListResponse.Where(x => x.Properties.ContainerId.Split('/').Last().Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); } WriteDebug("Received azure backup item response"); diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll index a97e848572eda9d6279eeb46c35a8ac2e8373e80..40c8fe6e0237055b133fa802e34b771cb4ccb169 100644 GIT binary patch delta 19345 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 Aga7~l delta 19442 zcmch92Y6J~*7n|e(n*;~fj|Nzq)mDulU_)HGy)-s6e-4QxPl@mVuf&m7|JzY6rvsp zMNm*wK!a#dqM{-fM5?Hi(3>+Exq8B)96 zrFOl`GqZF}Gv1u@RChjg&TB*5L+8eeKlnG!Isb^##j}esoG}+KUr%3S1Pr3{Mduof69(U! zo%lZGLy(@n!Z?bt$j)Ad15@o``pIbX@)e$4fAxVlZs;n#eJB``ML{x8UuhKHHCr&1 zB-G8&t;?{!I#|S$jj6tFjn95ptoV8Q8RL3y(8+rIkqgM}M=%G>h4C11oMjJ7A;Y+ zWK7}}AUuP9_3=cuK{BnzHo(`I4c?vs(&}yO1IQ~_7=jzCE~fCx#(5V*ln~DlV=C%H zJwuIYFo05Z)mVmFvkbMc+yspyNq^`!&BSCKyMMxXP(9ob?S(bJjCfbLv%!^&IT0q6QQ$a z4qhGxk0^hGhsGhsVDK>Z#q4?~gTC?WOB3xq4;C2=jir~nD26C6G5K>?NmM8KK4AcO zwt0Dpp1;Z+p?)!V89Q<2a?s~@YEPpps3TZTf2bxbbqO@|S$NgMHS7x*|Dj%m9&>YG zY^jwVZO<2TJNs5pw!VG-vhIQS+DgWPDke=FJO1tm(O!6%F{2;oZmVGT!!q@t3o5v+ z2)2yX0$!>Hj^@88n?g2pa$tF3rLGQaYz)fLaj3~o3`ulg_a+WaoWPVss1jS1*Z`Vs zB+rrTZ5j%iu_p9?(1h04L3U=*N!#_ESvg2g_GHpyNiJ+@(ymV3m|gOPBnQ?#xgqgY zW=h7KqZI&e5&);cKox zTU~q6ls(v4*L|=6sX3%a|GBB#^}UEnXSNN-4(wX$28imBwgCv`r70JH-R)_+U;-s= zQA#NLFl}|31DPGz&uO?m?{r*Qxi`|vqVW^ytuRefI%;00@dl8g>hI`}$l+>c&3LIRtV~&Y?bFzL0Y)r!(WZ$k#6y*B1lQflcarM_&i_ zTwhGItS=^d6UHvAS3j)NFD1BH{ag0m&1X9(WhTbz*mbsD=(wH@OJ{J0(DR*yhQN_j z$GrHLgys2|^XQXj{rp5xOT2(fj-~AvxjK{460k;a+~8keu)Uzd$ID z<~zi{Csfu~!8FJCWrAPA6$`cCR|y>_h7% z{bkY9%F|sJC_Ul11bRjnM93S?s5%y_3nBCpp?qB!q324$rm*3CN!%I(Gp!OAvZviB+;*Ry$MO8`*bEk+TQDu3CYzT)}<2qrUKhCE`ABQOX zAw?kPhl~cfGh{l*t0B0WkWlo$J9I8+KKH`08j5=B38v^bgEchl2*^QUS3yn<(>psj ztP6|ggKIwx%W)oDyJa}NeFM@wL4(&72hP4HDbpPZ!wIZYI~Y-8TZBQRUq$k=QGNFz z-cMN`z7ul)5{?nJ8#2WEG*}Kyq>f%6gKEKyvm5$?YW1la!g| zCj283eU^|sMzW_8g(_LiOd5|OIV%e5^(IJ5MP7u76QWTjlguQU4-&d18Y#}EvFww! zXxyhBF_>TW#ylEtB-t|-_1Qiqd>iX?#*VXbvAZErOYAw2*JJJA@!_60e~^W=?V(|q z?jh=sm(|!uc&zfGDVjU5PfeNdps>SK0CHA*3CM-sCpe%0d!9Qa1N&oVaT?l8B>mb~chI&qfme%tjKAW&;U@J&}#2c!r!_ z%|;UMXIn^oo{c2-Wg`jey|?Za+j0AvdHR^Q%(khO|C6rnuzPH%D0G3vBs2p@+0VDq zP^I4`*#8sqk?FL2WcpM-mTO)Ds z@|3jI$ZfT*qK%INMaI>bJ2tf|7C#SU#((XkD}ZdbbO4)41pApu!Z-#_nuf7~gS-L*dNtc!1518cpxT0?qZwW>gt{`DYRy@%U8%OPjSMc(Fcm;3khlk9Oet79#>W7!^PyJpCga-<%hl>WP zlT(59xniL*i8f2I;=&>e@G!|Lz{$!c^${B??VKuAo<&Hgdl6De zq;XymQW;F+aYeWhQ;TpTmKPzp)*>Xgtq95ODZ(@KBzgVag<&!811UYN@9WEGUvKr<5c>aSm)}H4eJkB=CbYuXF`+-a ztt)@}p!hDNzRAI9b8dE230u9HG~Q#C9j4_G9hWgTVI^2^wU`df`a*rI7(1iB7&~KO zF?Pl)#n>5d7h`X2F2>Giu)bcM3a~ZyQ)}3=misCRnOCqo63c!Nf<)APUl*~OZBw-W5_0VJzSa2=17;5ufN;5z1%dwVeD`f6{-j`;er|u9zOLOP z-OcNS6@vbk)32uKKcmU^k~~h+|3qV#QkuRLD-mCcmB=f_N|csjC5D$G>4~LSiM3Wg zLDZEZm9%ybc4}<9EmN4>Gwa=YzZ5I6m69GId9D;Ip&NkHcn&}+H#>HgKLuwJcx(}q)T4TL6?JCh?n9XxMQ@i+?9Pi~GEe!t6a0>KG2jnY}uimYakK+NF z?R?Kt$8p@KA$Rqu`Mhso|9~boo{!d);{uuijn~kN0d4jZ_`@1{C*TMmMMDQ6?tVT~ zLstS+-vxY1)R@2~Hi=)*w6g=70bSG3`(T4l0@q5STLabg3wV`B=Uz?haXwAc2C1!65Pb*^DGV32R8#M(9m+Q zE#Lz+)B?5ze5i)L2`&^1d6kCF2A2UED-o@J5uaj4>eEZOo01XI$7u=wKno}d$p^Gi zL-&LXaC(Vv(@;%FC7^H2;m|WL^Fx|#dB}LDm-#6Ttqpk;&_xaH51Hw-lwZ@(w;}a_ zc&l8ru3u=I{W9*XLGREbfIKyn8rsBO;oUS;7TOFbNJ9^W&Ubp1M`~z>dgn_}`&S{^ zYrIrbz8|VKy~L|{5A~;)xZiD2VJDnc@)pf#3OfU6y+l-*ReY0X8x{78(<;70L*v67 zoLBL^8k!x})%i_+L_?~2@5|gzk1KqO>pzfd`Zh#;{$*aJKONS@*6>PAdnHVDSjwv+ zyBnKW3s*I5vauP^Vhv%Jt>w!#6tB)%%KH|Khk$i_zou+}fOY)1hCT&bD?g{9{a|b5 zS2g4m-o!rOzi22x?Y@lP$>+8x%lJsHZw>$2c{7jyNHYF1Ts;ScR$L;Q*yp@h({_t! z22>#tm1qkeuG#Q7*uwA95FQ6x_&5#WaqtD7q#-;GzTh<)!sB2ouhY;Kh}+5=B=Xg( zb+7WLJo-fhxa{QDHJ4#(&*j{&;2mJLi+iq@d_MtZySSf*z5&~pJV--F!S*GO(vW>* z6Wh%bH58yuTh7BhaG788do*P?^*vB34}s?%Uau*iifjh-oQB>3+g`pp2unE zJlM|jREelVzvDTYEk3r1eaDM5)K86l18x}8WB0mz&+9eiLiNQr;MCX>`@PF${)whM z8msPkgBv~k;+#8O<<~TAAJt<8_w#rpE}+wYxZzVtZKj$E%E$^hj(^}0n(|IKj(_02 zH53(AD6a8z4VhGB1rLu}6W7Fk!mWf*?$R3z@#kfXubwN%s+nhqr$!v=|`37vHA;Wm+#i^Jh^hHIW* z=*mUC5+T!cjqm0caNwll4vcU@nTK6L;+q7b`wPuBg=_pnGAqez(L6=wIC*!_S+L%dS# zYQ*juiN<>s+trFOQxQGSjPaGOPl_)z;} z=k=)T^WvI@)`G1`#MN?zk|xJL@486T*UBjZyk2&FNvzjUhGC8CE5c`*v^g5qyS^s+ zYp5)KhwBQlTtiu22VCD0Z5pbM|IT%dh=(ueA?+bvKfAVwF&cU}-reneu>nvZ8pnHe zcl%I`2>?&HRA-nf`6ogjF45EKgtxe#GA_MA|EX|=@5Py2Hi*hh&Bc`Dwn1#r5Qcvy zF2eT#(DP}qeI|y&w-L;78^s3rblz;+C=%h*d9&@`V#E-O?cd^aLNnlOcW&lxsaLb- zd2bSBL(v74@CdP443&s^^=Z&=7MrYWpNk!uEm0lV3~Lw+E?Y#^?Q#a>`Gs)0%QD{= zqE^GLb!(0xQ5I54f-7-ZU(x@ zHS82A5;6C_4f>tpYb)C>aZs}v)!5bW7?K1oUkd+OmicxIqiUINw|GHA$nz`l?J|q) zD>3vHOWfCD%__~Nz6hzs)xK)$YThmNM&C!e?-6ltp;0p2D^et4F8vzxd&N>ZUu383 z6H!~uX*}MBD);U8bkF@FWt&tYi#AcXS95`GXcO-elBo}f4<%xw`wa{{AS(A+;tq<# z$1QOOMcE09?U1NFXR#d;7d14aA53^y*j=|64~uacLNZ500DO{eZoeZ!B_zol6)#G} z;?xVU7M`YdS_4ZeD0T}wF8twp7Uqha5Wy0$^5O>l39*TgtjI~>N@uEU{*$6!Lpb{> zv4c)nX*(qf=uDNfe=7z`#IE-BjrdlaG20Yq^wZ*!X1vk2D&n+wp{HB~COso|(4i`m zo)N?76qQNOiaRA@XMyNh5lpA3BzjI%(kUwA&WYU`!kp*D;Vg5Rlq9$FVraHy!tX>G z9kDX-JF!Va7s;~4XVNp9bZ#To*e!Y_#p zbTrGrOCoWiCFy0cfevbEyDZYDqD`*;ipZ0Q&8ygvctsqvvRxG?HCtNoj>M~C5*^Jl z?muFRL~IqrDgO~pbQnwH4?-^yTU(K6`avwPvRxBPHQSkrDW+>8m=0qZcU?qD#GEUq zn68VpR<<9-dd-$x*`WVX^r3@V#{Hy-LJ3)Q0}EzoEb{W-bJ&gRfRFW(U7~ zL;XgQ9a*=6RZy&sV(loFvySw8D4QbRZbcrX3C@Dlv0p&iF=x1Cz_*lsr{~OYQ@!-J zZ*Nts(#bHn%3C31?elvQw@MD~(blW^9lH+5`NR6mrIuSGH${$dt7WX18_lBn>l*8gupP@K*|sz3m3Dm|1M9HYx*f;u%V?X( z+W(KQj*em#xo3ZMvW_mQzoxfmF$%2GdRMHkT`*f&aom27Z8f;cjx*fM3jGhiWwt4G zu8qdlr_{#Bwu-}Sd?vNmC@{U;8@UnEJQJMcTFqyl?fxwTA9JtRTCFcj>(-M|xIFww z1HRYF;dimvXe~4)8tjOWIkmMFr!f=ytNM>2bNhCt3<`Xx@cXrXX5)H{G?#5WWzXAg z&8=*oY*ht=+qadi2Gh0ovDMf{S!--h1xHoVFt+V}w=O62^ zKOR3!E3O5pWA#?cyGhjF>;Ic1>flQGGtWQl|33@<{Z9W4|3B~l1%F(?zqRhSX@fon zdDH&?lFTPT>i%*Y{tQv({`Z9c)?^-cP#dM)wTX^tNWXO3TFUAFc3F!aOC$-n!K)N@*8n-UwSNzkhDAO3^NZJws0i zhBxS2@qzxA#j$>#!QlT-PeF?I`1QYe3X&Uy3((PHoE@#+zTMA59a$CIU@X45bk<@2 zCwlqwFFt&>?_osc&T=>LuqS)9y1)*9P%f2^^cg*4tb znZCAV&L;Q}N5Nm68R)m{WBJ?33*5%?kCPX>J;2+Nn^+~oUy)Zb$M_YXzm)ue+iZR# zd5hZv%ps+Tjb&X^cDjuqpAq2G2IGj7 zU@UDlNS8Dhj|I#-&BNnaNVM8Ll^fH%J;ri-&k&E7FMBnEa8o5!$2-b8|BeeY)-oyQtU~41k4B0DtREuYIY*6#-o~D zN^5fq7g()oh98W?!}td1jcIr2t66ONSdgalNAx-5vza%f&(kjj(ku0MvL)$n>xYT8 z>1*{xVo&;q`my3-`Y}Cxwwj)5Z&*Vs@TR?NX7(AOhR2v8qu%K;NYo5F-8&=7@EXrn zzu&^UC|FZ}aLqUPvorbJsRX>MM$avW>P3-f2-LQcv8LQpDpw^hfW|(U1 zyE0r;E3KxLR?|xBXr&dj(h6E>1#|eOENAyQ{7km9`)*o68xcLu?o*)F;l%VD$$7Nc zdE%X%4L&*i!yK%5Tk;n^&Ei_lH$Lxy^?*+x_sBf~Qts~Nlyg3tMP}M1pN~ae?scCl zMEz$Xiu<&`Gs>eRPj|M1_H1*zLZq(%=>h~;{VT-!3bDSTvBq+_LcmJBH*}`G!5_MD zwR+RQT5(ydTTytY!s$9-3I9R$76(lwu)`jf0A8O(9>gE?+~ zFkPv^&}nz*gE?+^FvksdW_Z1hplPZpY6L}%pr{cPHG-l>P}B&D8priLfaxS+I)#`% zN!;s6^DMtl<=c1{?xS|y#%mN@gTFvB{sPJP3#fM1;Nb@9V(DQU)HBDAclU37X)ihZ(O;$~l)f2gAiQEE`OG(yKY(2%+Lo9rX zQBT436kJciD~RbDV%kbfH<0EF((EQp8%@wg>Dnk=8&PSaY;BaSjj|ml&vP{Waq>S- z{>RaOsM~Q0I8Fh_Dc}lC_A^apr^8aa>Ztj2)O@5VVy8-)Sg;Papom>5xe*zq!^$P< zuyPqXSM}Z=aWCz zVN>>}s7f8~eSeDTPf`6Tsy{{b*TpK(KK&_d1O<#B*Ae78f?P+C>j;`)1bJ4|TF22^ zC(&A`kmgC!)RX2}(kvj&Qqrs-%^K3QlE#V666%bde1O;Fq!<s=>X%P)qVKX$}vbFPx*<5VW!(^Tmzm z0Fa5X0i@{z%EvX>oqxF+>v;A2+qZZf^0eV6~CLO zFEU;ef>C4IgHwMEd1A!e7;JxE*Aq-&Bw;fydw@u+YF8_Kc;_*r{_9=$$&R z26>n?zi9f;K@-;t{hc}={cSvvG~bhK>4w&yd(}g>uY+)`^G9hQnX8U$w9D9VJ-pdom<)rzy<9@V;T?Dx-EC&7zNpn~-NSP_!*{Tc=0~M~&^W29W+9l2g^E5AcGnXTpy`?uZBsXjftN!U4DwjEjhNVJtlo&G{rt zNXh_NtQ}EkJxcN_Nr!0E$Wpk`*oS05G%hxRWNS1Qa9i}JkY8@q{V`a;=`k29w@0|f zB5)@;T%B`}2X#~9B0Dj5BNz=?VHh#rfa8mCE!z(AN8S3bGoCUAMdU;jMcf-PJ7P}6 z`AFv|pQym7S7Oh_`Nr4v-k*3qk(;tjBTb`CGfm4(D@|uj&Pj$OyIRQ7?%$0>b?!Mn zNgPU2ozC+#{z^;Uc|JiXFBpTw26%0S*M4KHu#0$)#Ye1T>G1v-yibo9!dAm;9lSP2 zyunsS=7|5mD?BPkBu5Pw|A7Cs{xG~0c>PcGa4{$*M~sHocz8{T87`*B-XY$E*IIaO zjJ;QEj(b2{h1aj}a*eMk7cmJBh+KG;z-w4Sjo6SdgdKp_NqAjJc!Q1XJxw&gONH06 z-cN~E_;&B<#C7a4yqB8Ru_31S*mLmyBD`ORcU{Z$i~K}S^;f-cQ%7|Yjx9U%V$DGP z^5xa5AN?Pm-@3^7c|_J-i(8(p5=+Be7CMIec-DR(-2K(LvqeZt^(?X5J(|Ja-?|O! z2V27Y;p1xWcLeiR1uL(}udp`^UGwn0%Sskc$=mqwRG(*Cs#W2{J%?(4c?-kF<2YbW mU}qitJ+7AdFNg=Z8t{VX)8gJFe$ae>c?bNqj24iEhR From 46ff8002eaa0e2d2a043c5e071ac7220e1d232a3 Mon Sep 17 00:00:00 2001 From: AditTulasi Date: Thu, 23 Jul 2015 12:24:55 +0530 Subject: [PATCH 33/58] Undoing an unintended change --- .../Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs index a7737e7bdbc1..1ff9208fd7c1 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs @@ -40,8 +40,8 @@ public override void ExecuteCmdlet() WriteDebug(string.Format("Triggered backup. Converting response {0}", operationId)); - var operationStatus = TrackOperation(operationId); - WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.JobList).FirstOrDefault()); + //var operationStatus = TrackOperation(operationId); + //WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.JobList).FirstOrDefault()); }); } } From a09d0e5f97fecf5e780df774fb4d444dfe619eb8 Mon Sep 17 00:00:00 2001 From: dragonfly91 Date: Thu, 23 Jul 2015 16:17:06 +0530 Subject: [PATCH 34/58] Deleting unnecessary files added in the previous commit. --- .../Commands.AzureBackup.Test.csproj | 3 - .../ScenarioTests/AzureBackupItem.cs | 82 ----------------- .../ScenarioTests/AzureBackupJobHelper.cs | 88 ------------------- .../ScenarioTests/AzureBackupRecoveryPoint.cs | 72 --------------- 4 files changed, 245 deletions(-) delete mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItem.cs delete mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupJobHelper.cs delete mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupRecoveryPoint.cs diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj index fb7c893d38d7..8fefefb93e4c 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj @@ -124,12 +124,9 @@ - - - diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItem.cs deleted file mode 100644 index 8dd3912938d1..000000000000 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItem.cs +++ /dev/null @@ -1,82 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Microsoft.Azure.Management.BackupServices.Models; - -namespace Microsoft.Azure.Commands.AzureBackup.Models -{ - /// - /// Represents Azure Backup Item - /// - public class AzureBackupItem : AzureBackupItemContextObject - { - /// - /// Status for the Azure Backup Item - /// - public string DataSourceStatus { get; set; } - - /// - /// Protection Status for the Azure Backup Item - /// - public string ProtectionStatus { get; set; } - - /// - /// Protectable Object Name for the Azure Backup Item - /// - public string Name { get; set; } - - /// - /// Protection Policy Name for the Azure Backup Item - /// - public string ProtectionPolicyName { get; set; } - - /// - /// Protection Policy Id for the Azure Backup Item - /// - public string ProtectionPolicyId { get; set; } - - /// - /// Recovery Points Count for the Azure Backup Item - /// - public int RecoveryPointsCount { get; set; } - - public AzureBackupItem() - : base() - { - } - - public AzureBackupItem(DataSourceInfo datasource, AzureBackupContainer azureBackupContainer) - : base(datasource, azureBackupContainer) - { - DataSourceStatus = datasource.Status; - ProtectionStatus = datasource.ProtectionStatus; - Name = datasource.Name; - ProtectionPolicyName = datasource.ProtectionPolicyName; - ProtectionPolicyId = datasource.ProtectionPolicyId; - RecoveryPointsCount = datasource.RecoveryPointsCount; - } - - public AzureBackupItem(ProtectableObjectInfo pPOItem, AzureBackupContainer azureBackupContainer) - : base(pPOItem, azureBackupContainer) - { - ProtectionStatus = pPOItem.ProtectionStatus; - Name = pPOItem.Name; - } - } -} \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupJobHelper.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupJobHelper.cs deleted file mode 100644 index f014ad459864..000000000000 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupJobHelper.cs +++ /dev/null @@ -1,88 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using System; -using System.Management.Automation; -using System.Collections.Generic; -using System.Xml; -using System.Linq; -using Mgmt = Microsoft.Azure.Management.BackupServices.Models; - - -namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets -{ - public enum JobStatus - { - Invalid = 0, - - InProgress, - - Completed, - - Failed, - - CompletedWithWarnings, - - Cancelled, - - Cancelling - } - - public enum JobOperationType - { - Invalid = 0, - - Register, - - ConfigureBackup, - - Backup, - - Restore, - - UnProtect, - - DeleteBackupData, - - Unregister - } - - public static class AzureBackupJobHelper - { - public static bool IsValidStatus(string inputStatus) - { - JobStatus status; - if(!Enum.TryParse(inputStatus, out status) || status == JobStatus.Invalid) - { - return false; - } - return true; - } - - public static bool IsValidOperationType(string inputOperationType) - { - JobOperationType operationType; - if(!Enum.TryParse(inputOperationType, out operationType) || operationType == JobOperationType.Invalid) - { - return false; - } - return true; - } - - public static bool IsJobRunning(string status) - { - return ((status.CompareTo("InProgress") == 0) || (status.CompareTo("Cancelling") == 0)); - } - } -} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupRecoveryPoint.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupRecoveryPoint.cs deleted file mode 100644 index 4c314fac12d2..000000000000 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupRecoveryPoint.cs +++ /dev/null @@ -1,72 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using Microsoft.Azure.Management.BackupServices.Models; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Azure.Commands.AzureBackup.Models -{ - /* - public class AzureBackupRecoveryPointContextObject : AzureBackupItemContextObject - { - /// - /// RecoveryPointId of Azure Backup Item - /// - public string RecoveryPointId { get; set; } - - public AzureBackupRecoveryPointContextObject() - : base() - { - } - - public AzureBackupRecoveryPointContextObject(RecoveryPointInfo recoveryPointInfo, AzureBackupItem azureBackupItem) - : base(azureBackupItem) - { - RecoveryPointName = recoveryPointInfo.InstanceId; - } - } - - /// - /// Represents Azure Backup Container - /// - public class AzureBackupRecoveryPoint : AzureBackupRecoveryPointContextObject - { - /// - /// Last Recovery Point for the Azure Backup Item - /// - public DateTime RecoveryPointTime { get; set; } - - /// - /// DataSourceId of Azure Backup Item - /// - public string RecoveryPointType { get; set; } - - public AzureBackupRecoveryPoint() - : base() - { - } - - public AzureBackupRecoveryPoint(RecoveryPointInfo recoveryPointInfo, AzureBackupItem azureBackupItem) - : base(recoveryPointInfo, azureBackupItem) - { - RecoveryPointTime = recoveryPointInfo.RecoveryPointTime; - RecoveryPointType = recoveryPointInfo.RecoveryPointType; - } - } - */ -} \ No newline at end of file From 1a9422074164e1b4c68306ccde781bad240aa291 Mon Sep 17 00:00:00 2001 From: pikumarmsft Date: Fri, 24 Jul 2015 09:56:50 +0530 Subject: [PATCH 35/58] small fix --- .../Commands.AzureBackup/Models/AzureBackupItem.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs index 7b78bc10ba8e..608f2e63b008 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs @@ -42,7 +42,7 @@ public class AzureBackupItem : AzureBackupItemContextObject public string DataSourceId { get; set; } /// - /// DataSourceId of Azure Backup Item + /// Type of Azure Backup Item /// public string Type { get; set; } @@ -72,9 +72,10 @@ public AzureBackupItem(CSMProtectedItemResponse datasource, AzureBackupContainer DataSourceStatus = datasource.Properties.ProtectionStatus; ProtectionStatus = datasource.Properties.Status; ItemName = datasource.Name; - ProtectionPolicyName = datasource.Properties.ProtectionPolicyId; + ProtectionPolicyName = datasource.Properties.ProtectionPolicyId.Split('/').Last(); ProtectionPolicyId = datasource.Properties.ProtectionPolicyId; RecoveryPointsCount = datasource.Properties.RecoveryPointsCount; + Type = datasource.Type; } public AzureBackupItem(CSMItemResponse pPOItem, AzureBackupContainer azureBackupContainer) @@ -82,6 +83,7 @@ public AzureBackupItem(CSMItemResponse pPOItem, AzureBackupContainer azureBackup { ProtectionStatus = pPOItem.Properties.Status; ItemName = pPOItem.Name; + Type = pPOItem.Type; } } } \ No newline at end of file From 0cdd30e469d0e2ca991ddf665494f226e70e783e Mon Sep 17 00:00:00 2001 From: AditTulasi Date: Fri, 24 Jul 2015 14:33:12 +0530 Subject: [PATCH 36/58] Uncommenting some commented lines --- .../Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs | 4 ++-- .../Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs index 1ff9208fd7c1..a7737e7bdbc1 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs @@ -40,8 +40,8 @@ public override void ExecuteCmdlet() WriteDebug(string.Format("Triggered backup. Converting response {0}", operationId)); - //var operationStatus = TrackOperation(operationId); - //WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.JobList).FirstOrDefault()); + var operationStatus = TrackOperation(operationId); + WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.JobList).FirstOrDefault()); }); } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs index 1a2d3aeedb37..50795d330548 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs @@ -20,13 +20,14 @@ using Microsoft.Azure.Management.BackupServices.Models; using MBS = Microsoft.Azure.Management.BackupServices; using System.Web.Script.Serialization; +using Microsoft.Azure.Commands.AzureBackup.Models; namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets { /// /// Trigger Restore Job /// - [Cmdlet(VerbsData.Restore, "AzureBackupItem"), OutputType(typeof(Guid))] + [Cmdlet(VerbsData.Restore, "AzureBackupItem"), OutputType(typeof(AzureBackupJob))] public class RestoreAzureBackup : AzureBackupRestoreBase { [Parameter(Position = 1, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.StorageAccountName)] @@ -71,7 +72,6 @@ public override void ExecuteCmdlet() var operationStatus = TrackOperation(operationId); WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(RecoveryPoint.ResourceGroupName, RecoveryPoint.ResourceName, RecoveryPoint.Location), operationStatus.JobList).FirstOrDefault()); - }); } } From 34a7eac2ea77db3105907ae53f748f57998cfcad Mon Sep 17 00:00:00 2001 From: panbha Date: Fri, 24 Jul 2015 15:24:56 +0530 Subject: [PATCH 37/58] backuprecoveryrestore --- .../ScenarioTests/BackupItemTests.ps1 | 2 ++ .../ScenarioTests/RecoveryPointTests.cs | 6 ++++ .../ScenarioTests/RecoveryPointTests.ps1 | 25 ++++++++++++++++- .../ScenarioTests/RestoreItemTests.cs | 28 +++++++++++++++++++ .../ScenarioTests/RestoreItemTests.ps1 | 26 +++++++++++++++++ 5 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RestoreItemTests.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RestoreItemTests.ps1 diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/BackupItemTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/BackupItemTests.ps1 index 8ae666eb3075..f630e302695b 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/BackupItemTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/BackupItemTests.ps1 @@ -8,6 +8,7 @@ $Location = "SouthEast Asia" $PolicyName = "Policy9"; $PolicyId = "c87bbada-6e1b-4db2-b76c-9062d28959a4"; $POName = "iaasvmcontainer;dev01testing;dev01testing" +$ItemName = "iaasvmcontainer;dev01testing;dev01testing" function Test-BackUpAzureBackUpItem @@ -20,5 +21,6 @@ function Test-BackUpAzureBackUpItem $azureBackUpItem.ContainerType = $ContainerType $azureBackUpItem.DataSourceId = $DataSourceId $azureBackUpItem.Type = $DataSourceType + $azureBackUpItem.ItemName = $ItemName $jobId = Backup-AzureBackupItem -Item $azureBackUpItem } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.cs index 9622c170cc15..949951df8b3c 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.cs @@ -19,6 +19,12 @@ namespace Microsoft.Azure.Commands.AzureBackup.Test.ScenarioTests { public class RecoveryPointTests : AzureBackupTestsBase { + [Fact] + public void GetRecoveryPointsTests() + { + this.RunPowerShellTest("Test-GetAzureRecoveryPoints"); + } + [Fact] public void GetRecoveryPointTests() { diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 index 9ba98ab4fed6..24f2926e4da1 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 @@ -8,9 +8,11 @@ $Location = "SouthEast Asia" $PolicyName = "Policy9"; $PolicyId = "c87bbada-6e1b-4db2-b76c-9062d28959a4"; $POName = "iaasvmcontainer;dev01testing;dev01testing" +$ItemName = "iaasvmcontainer;dev01testing;dev01testing" +$RecoveryPointName = "12520735098347" -function Test-GetAzureRecoveryPoint +function Test-GetAzureRecoveryPoints { $azureBackUpItem = New-Object Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupItem $azureBackUpItem.ResourceGroupName = $ResourceGroupName @@ -20,6 +22,7 @@ function Test-GetAzureRecoveryPoint $azureBackUpItem.ContainerType = $ContainerType $azureBackUpItem.DataSourceId = $DataSourceId $azureBackUpItem.Type = $DataSourceType + $azureBackUpItem.ItemName = $ItemName $recoveryPoints = Get-AzureBackupRecoveryPoint -Item $azureBackUpItem if (!($recoveryPoints -eq $null)) { @@ -30,4 +33,24 @@ function Test-GetAzureRecoveryPoint Assert-NotNull $recoveryPoint.RecoveryPointId 'RecoveryPointId should not be null' } } +} + +function Test-GetAzureRecoveryPoint +{ + $azureBackUpItem = New-Object Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupItem + $azureBackUpItem.ResourceGroupName = $ResourceGroupName + $azureBackUpItem.ResourceName = $ResourceGroupName + $azureBackUpItem.Location = $Location + $azureBackUpItem.ContainerUniqueName = $ContainerName + $azureBackUpItem.ContainerType = $ContainerType + $azureBackUpItem.DataSourceId = $DataSourceId + $azureBackUpItem.Type = $DataSourceType + $azureBackUpItem.ItemName = $ItemName + $recoveryPoint = Get-AzureBackupRecoveryPoint -Item $azureBackUpItem -Id $RecoveryPointName + if (!($recoveryPoint -eq $null)) + { + Assert-NotNull $recoveryPoint.RecoveryPointTime 'RecoveryPointTime should not be null' + Assert-NotNull $recoveryPoint.RecoveryPointType 'RecoveryPointType should not be null' + Assert-NotNull $recoveryPoint.RecoveryPointId 'RecoveryPointId should not be null' + } } \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RestoreItemTests.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RestoreItemTests.cs new file mode 100644 index 000000000000..ff1aa4acceb9 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RestoreItemTests.cs @@ -0,0 +1,28 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Microsoft.Azure.Commands.AzureBackup.Test.ScenarioTests +{ + public class RestoreItemTests : AzureBackupTestsBase + { + [Fact] + public void RestoreAzureBackUpItem() + { + this.RunPowerShellTest("Test-RestoreAzureBackUpItem"); + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RestoreItemTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RestoreItemTests.ps1 new file mode 100644 index 000000000000..b92ce2444acd --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RestoreItemTests.ps1 @@ -0,0 +1,26 @@ +$ResourceGroupName = "backuprg" +$ResourceName = "backuprn" +$ContainerName = "iaasvmcontainer;dev01testing;dev01testing" +$ContainerType = "IaasVMContainer" +$DataSourceType = "VM" +$DataSourceId = "17593283453810" +$Location = "southeastasia" +$PolicyName = "Policy9"; +$PolicyId = "c87bbada-6e1b-4db2-b76c-9062d28959a4"; +$POName = "iaasvmcontainer;dev01testing;dev01testing" +$ItemName = "iaasvmcontainer;dev01testing;dev01testing" +$RecoveryPointName = "12520735098347" +$StorageAccountName = "12520735098347" + + +function Test-RestoreAzureBackUpItem +{ + $azureBackUpRecoveryPoint = New-Object Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupRecoveryPoint + $azureBackUpRecoveryPoint.ResourceGroupName = $ResourceGroupName + $azureBackUpRecoveryPoint.ResourceName = $ResourceName + $azureBackUpRecoveryPoint.Location = $Location + $azureBackUpRecoveryPoint.ContainerUniqueName = $ContainerName + $azureBackUpRecoveryPoint.ItemName = $ItemName + $azureBackUpRecoveryPoint.RecoveryPointName = $RecoveryPointName + $jobId = Restore-AzureBackupItem -RecoveryPoint $azureBackUpRecoveryPoint -StorageAccountName $StorageAccountName +} From 413ccda9d84fe8888991121975d68fdcfacaf662 Mon Sep 17 00:00:00 2001 From: panbha Date: Fri, 24 Jul 2015 15:29:33 +0530 Subject: [PATCH 38/58] restore --- .../ScenarioTests/RestoreItemTests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RestoreItemTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RestoreItemTests.ps1 index b92ce2444acd..d299e9848257 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RestoreItemTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RestoreItemTests.ps1 @@ -10,7 +10,7 @@ $PolicyId = "c87bbada-6e1b-4db2-b76c-9062d28959a4"; $POName = "iaasvmcontainer;dev01testing;dev01testing" $ItemName = "iaasvmcontainer;dev01testing;dev01testing" $RecoveryPointName = "12520735098347" -$StorageAccountName = "12520735098347" +$StorageAccountName = "portalvhds7jzk3jty85qx5" function Test-RestoreAzureBackUpItem From 4edecaa83507a059449c918be11ae93d50af54cd Mon Sep 17 00:00:00 2001 From: panbha Date: Fri, 24 Jul 2015 23:47:33 +0530 Subject: [PATCH 39/58] backandrestore --- .../ScenarioTests/BackupItemTests.ps1 | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/BackupItemTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/BackupItemTests.ps1 index f630e302695b..8dbd7621d05c 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/BackupItemTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/BackupItemTests.ps1 @@ -18,9 +18,6 @@ function Test-BackUpAzureBackUpItem $azureBackUpItem.ResourceName = $ResourceName $azureBackUpItem.Location = $Location $azureBackUpItem.ContainerUniqueName = $ContainerName - $azureBackUpItem.ContainerType = $ContainerType - $azureBackUpItem.DataSourceId = $DataSourceId - $azureBackUpItem.Type = $DataSourceType $azureBackUpItem.ItemName = $ItemName $jobId = Backup-AzureBackupItem -Item $azureBackUpItem } From b1edcc09766a8d031b2a162942c43998e6dc32a3 Mon Sep 17 00:00:00 2001 From: panbha Date: Fri, 24 Jul 2015 23:48:00 +0530 Subject: [PATCH 40/58] backandrestore1 --- .../ScenarioTests/RecoveryPointTests.ps1 | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 index 24f2926e4da1..54856ee6c503 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 @@ -19,9 +19,6 @@ function Test-GetAzureRecoveryPoints $azureBackUpItem.ResourceName = $ResourceGroupName $azureBackUpItem.Location = $Location $azureBackUpItem.ContainerUniqueName = $ContainerName - $azureBackUpItem.ContainerType = $ContainerType - $azureBackUpItem.DataSourceId = $DataSourceId - $azureBackUpItem.Type = $DataSourceType $azureBackUpItem.ItemName = $ItemName $recoveryPoints = Get-AzureBackupRecoveryPoint -Item $azureBackUpItem if (!($recoveryPoints -eq $null)) @@ -42,9 +39,6 @@ function Test-GetAzureRecoveryPoint $azureBackUpItem.ResourceName = $ResourceGroupName $azureBackUpItem.Location = $Location $azureBackUpItem.ContainerUniqueName = $ContainerName - $azureBackUpItem.ContainerType = $ContainerType - $azureBackUpItem.DataSourceId = $DataSourceId - $azureBackUpItem.Type = $DataSourceType $azureBackUpItem.ItemName = $ItemName $recoveryPoint = Get-AzureBackupRecoveryPoint -Item $azureBackUpItem -Id $RecoveryPointName if (!($recoveryPoint -eq $null)) From fa10bb977b8e4db32e4596b2b5b95cd7b0f909c5 Mon Sep 17 00:00:00 2001 From: pragrawa Date: Sun, 26 Jul 2015 03:36:33 +0530 Subject: [PATCH 41/58] LTR Policy --- .../AzureBackupClientAdapter/PolicyAdapter.cs | 32 +- .../AzureBackupCmdletHelpMessage.cs | 12 + .../NewAzureBackupProtectionPolicy.cs | 47 +-- .../NewAzureBackupRetentionPolicyObject.cs | 194 +++++++++ .../RemoveAzureBackupProtectionPolicy.cs | 2 +- .../SetAzureBackupProtectionPolicy.cs | 55 +-- .../Helpers/ProtectionPolicyHelpers.cs | 216 +++++++--- .../Models/AzureBackupEnums.cs | 12 +- .../Models/ProtectionPolicy.cs | 387 +++++++++++++++++- 9 files changed, 819 insertions(+), 138 deletions(-) create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/NewAzureBackupRetentionPolicyObject.cs diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs index 1a52bdd4fae8..312e2a89433c 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs @@ -37,51 +37,51 @@ public partial class AzureBackupClientAdapter /// /// /// - public ProtectionPolicyInfo GetProtectionPolicyByName(string name) + public CSMProtectionPolicyResponse GetProtectionPolicyByName(string name) { var policyList = ListProtectionPolicies(); - var filteredList = policyList.Where(x => x.Name.Equals(name, System.StringComparison.InvariantCultureIgnoreCase)); - return filteredList.FirstOrDefault(); + return filteredList.FirstOrDefault(); } /// /// Gets all policies in the vault /// /// - public IEnumerable ListProtectionPolicies() - { - var listResponse = AzureBackupClient.ProtectionPolicy.ListAsync(GetCustomRequestHeaders(), CmdletCancellationToken).Result; - return listResponse.ProtectionPolicies.Objects; + public IList ListProtectionPolicies() + { + var listResponse = AzureBackupClient.CSMProtectionPolicy.ListAsync(GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return listResponse.CSMProtectionPolicyListResponse.Value; } /// /// Add protection policy /// + /// /// - public void AddProtectionPolicy(AddProtectionPolicyRequest request) + public void AddProtectionPolicy(string policyName, CSMAddProtectionPolicyRequest request) { - AzureBackupClient.ProtectionPolicy.AddAsync(request, GetCustomRequestHeaders(), CmdletCancellationToken).Wait(); + AzureBackupClient.CSMProtectionPolicy.AddAsync(policyName, request, GetCustomRequestHeaders(), CmdletCancellationToken).Wait(); } /// /// Delete protection policy /// - /// - public void DeleteProtectionPolicy(string policyId) + /// + public void DeleteProtectionPolicy(string policyName) { - AzureBackupClient.ProtectionPolicy.DeleteAsync(policyId, GetCustomRequestHeaders(), CmdletCancellationToken).Wait(); + AzureBackupClient.CSMProtectionPolicy.DeleteAsync(policyName, GetCustomRequestHeaders(), CmdletCancellationToken).Wait(); } /// /// Update specified protection policy /// - /// + /// /// - public Guid UpdateProtectionPolicy(string policyId, UpdateProtectionPolicyRequest request) + public Guid UpdateProtectionPolicy(string policyName, CSMUpdateProtectionPolicyRequest request) { - var response = AzureBackupClient.ProtectionPolicy.UpdateAsync(policyId, request, GetCustomRequestHeaders(), CmdletCancellationToken).Result; - return response.OperationId; + var response = AzureBackupClient.CSMProtectionPolicy.UpdateAsync(policyName, request, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + return response.OperationId; } /// diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs index 6ca27732b3b3..5d7d6397049d 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs @@ -80,5 +80,17 @@ internal static class AzureBackupCmdletHelpMessage public const string ServiceName = "Cloud service name of Azure VM to be register"; public const string RGName = "Resource Group name of Azure VM to be register"; public const string AzureBackupContainerToUnregister = "Azure Backup Container tobe unregister."; + public const string RetentionPolicyList = "List of Retention Policies to be associated with protection policy."; + public const string DailyRetention = "Switch param for Daily Retention"; + public const string WeeklyRetention = "Switch param for Daily Retention"; + public const string MonthlyRetentionInDailyFormat = "Switch param for MonthlyRetentionInDailyFormat"; + public const string MonthlyRetentionInWeeklyFormat = "Switch param for MonthlyRetentionInWeeklyFormat"; + public const string YearlyRetentionInDailyFormat = "Switch param for YearlyRetentionInDailyFormat"; + public const string YearlyRetentionInWeeklyFormat = "Switch param for YearlyRetentionInWeeklyFormat"; + public const string DaysOfWeek = "List of Days of Week"; + public const string DaysOfMonth = "List of Days of Month"; + public const string WeekNumber = "List of Week Numbers of the month"; + public const string MonthsOfYear = "List of Months of the year"; + public const string Retention = "Retntion duration value"; } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/NewAzureBackupProtectionPolicy.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/NewAzureBackupProtectionPolicy.cs index 2d88eecafd2b..e17e67eff66f 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/NewAzureBackupProtectionPolicy.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/NewAzureBackupProtectionPolicy.cs @@ -41,32 +41,24 @@ public class NewAzureBackupProtectionPolicy : AzureBackupVaultCmdletBase [ValidateSet("VM", IgnoreCase = true)] public string WorkloadType { get; set; } - [Parameter(Position = 3, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.BackupType, ValueFromPipelineByPropertyName = true)] - [ValidateSet("Full", IgnoreCase = true)] - public string BackupType { get; set; } - - [Parameter(ParameterSetName = DailyScheduleParamSet, Position = 4, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.DailyScheduleType)] + [Parameter(ParameterSetName = DailyScheduleParamSet, Position = 3, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.DailyScheduleType)] public SwitchParameter Daily { get; set; } - [Parameter(ParameterSetName = WeeklyScheduleParamSet, Position = 5, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.WeeklyScheduleType)] + [Parameter(ParameterSetName = WeeklyScheduleParamSet, Position = 4, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.WeeklyScheduleType)] public SwitchParameter Weekly { get; set; } - [Parameter(Position = 6, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.ScheduleRunTimes, ValueFromPipelineByPropertyName = true)] + [Parameter(Position = 5, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.ScheduleRunTimes, ValueFromPipelineByPropertyName = true)] public DateTime ScheduleRunTimes { get; set; } - [Parameter(Position = 7, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.RetentionType, ValueFromPipelineByPropertyName = true)] - [ValidateSet("Days", "Weeks", IgnoreCase = true)] - public string RetentionType { get; set; } - - [Parameter(Position = 8, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.RententionDuration, ValueFromPipelineByPropertyName = true)] - public int RetentionDuration { get; set; } - - [Parameter(ParameterSetName = WeeklyScheduleParamSet, Position = 9, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.ScheduleRunDays, ValueFromPipelineByPropertyName = true)] - [Parameter(ParameterSetName = NoScheduleParamSet, Position = 9, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ScheduleRunDays, ValueFromPipelineByPropertyName = true)] + [Parameter(ParameterSetName = WeeklyScheduleParamSet, Position = 7, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.ScheduleRunDays, ValueFromPipelineByPropertyName = true)] + [Parameter(ParameterSetName = NoScheduleParamSet, Position = 7, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ScheduleRunDays, ValueFromPipelineByPropertyName = true)] [AllowEmptyCollection] [ValidateSet("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", IgnoreCase = true)] public string[] ScheduleRunDays { get; set; } + [Parameter(Position = 6, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.RetentionPolicyList)] + public AzureBackupRetentionPolicy[] RetentionPolicies { get; set; } + public override void ExecuteCmdlet() { ExecutionBlock(() => @@ -80,15 +72,23 @@ public override void ExecuteCmdlet() var ScheduleType = ProtectionPolicyHelpers.GetScheduleType(ScheduleRunDays, this.ParameterSetName, DailyScheduleParamSet, WeeklyScheduleParamSet); - var backupSchedule = ProtectionPolicyHelpers.FillBackupSchedule(BackupType, ScheduleType, ScheduleRunTimes, - RetentionType, RetentionDuration, ScheduleRunDays); + var backupSchedule = ProtectionPolicyHelpers.FillCSMBackupSchedule(ScheduleType, ScheduleRunTimes, + ScheduleRunDays); + + ProtectionPolicyHelpers.ValidateRetentionPolicy(RetentionPolicies, ScheduleType); - var addProtectionPolicyRequest = new AddProtectionPolicyRequest(); - addProtectionPolicyRequest.PolicyName = this.Name; - addProtectionPolicyRequest.Schedule = backupSchedule; - addProtectionPolicyRequest.WorkloadType = Enum.Parse(typeof(WorkloadType), this.WorkloadType, true).ToString(); + AzureBackupProtectionPolicy protectionPolicy = new AzureBackupProtectionPolicy(); + + var addCSMProtectionPolicyRequest = new CSMAddProtectionPolicyRequest(); + addCSMProtectionPolicyRequest.PolicyName = this.Name; + addCSMProtectionPolicyRequest.Properties = new CSMAddProtectionPolicyRequestProperties(); + addCSMProtectionPolicyRequest.Properties.PolicyName = this.Name; + addCSMProtectionPolicyRequest.Properties.BackupSchedule = backupSchedule; + addCSMProtectionPolicyRequest.Properties.WorkloadType = Enum.Parse(typeof(WorkloadType), this.WorkloadType, true).ToString(); - AzureBackupClient.AddProtectionPolicy(addProtectionPolicyRequest); + addCSMProtectionPolicyRequest.Properties.LtrRetentionPolicy = protectionPolicy.ConvertToCSMRetentionPolicyObject(RetentionPolicies, backupSchedule); + + AzureBackupClient.AddProtectionPolicy(this.Name, addCSMProtectionPolicyRequest); WriteDebug("Protection policy created successfully"); var policyInfo = AzureBackupClient.GetProtectionPolicyByName(Name); @@ -96,5 +96,6 @@ public override void ExecuteCmdlet() }); } } + } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/NewAzureBackupRetentionPolicyObject.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/NewAzureBackupRetentionPolicyObject.cs new file mode 100644 index 000000000000..5ea71f0a165e --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/NewAzureBackupRetentionPolicyObject.cs @@ -0,0 +1,194 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Management.Automation; +using System.Collections.Generic; +using System.Xml; +using System.Linq; +using Microsoft.Azure.Management.BackupServices.Models; +using Microsoft.Azure.Commands.AzureBackup.Helpers; +using Microsoft.Azure.Commands.AzureBackup.Models; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + /// + /// Create new retention policy object. + /// + [Cmdlet(VerbsCommon.New, "AzureBackupRetentionPolicyObject"), OutputType(typeof(AzureBackupRetentionPolicy), typeof(List))] + public class NewAzureBackupRetentionPolicyObject : AzureBackupCmdletBase + { + protected const string DailyRetentionParamSet = "DailyRetentionParamSet"; + protected const string WeeklyRetentionParamSet = "WeeklyRetentionParamSet"; + protected const string MonthlyRetentionInDailyFormatParamSet = "MonthlyRetentionInDailyFormatParamSet"; + protected const string MonthlyRetentionInWeeklyFormatParamSet = "MonthlyRetentionInWeeklyFormatParamSet"; + protected const string YearlyRetentionInDailyFormatParamSet = "YearlyRetentionInDailyFormatParamSet"; + protected const string YearlyRetentionInWeeklyFormatParamSet = "YearlyRetentionInWeeklyFormatParamSet"; + + [Parameter(ParameterSetName = DailyRetentionParamSet, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.DailyRetention)] + public SwitchParameter DailyRetention { get; set; } + + [Parameter(ParameterSetName = WeeklyRetentionParamSet, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.WeeklyRetention)] + public SwitchParameter WeeklyRetention { get; set; } + + [Parameter(ParameterSetName = MonthlyRetentionInDailyFormatParamSet, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.MonthlyRetentionInDailyFormat)] + public SwitchParameter MonthlyRetentionInDailyFormat { get; set; } + + [Parameter(ParameterSetName = MonthlyRetentionInWeeklyFormatParamSet, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.MonthlyRetentionInWeeklyFormat)] + public SwitchParameter MonthlyRetentionInWeeklyFormat { get; set; } + + [Parameter(ParameterSetName = YearlyRetentionInDailyFormatParamSet, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.YearlyRetentionInDailyFormat)] + public SwitchParameter YearlyRetentionInDailyFormat { get; set; } + + [Parameter(ParameterSetName = YearlyRetentionInWeeklyFormatParamSet, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.YearlyRetentionInWeeklyFormat)] + public SwitchParameter YearlyRetentionInWeeklyFormat { get; set; } + + [Parameter(ParameterSetName = WeeklyRetentionParamSet, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.DaysOfWeek)] + [Parameter(ParameterSetName = MonthlyRetentionInWeeklyFormatParamSet, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.DaysOfWeek)] + [Parameter(ParameterSetName = YearlyRetentionInWeeklyFormatParamSet, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.DaysOfWeek)] + [ValidateSet("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", IgnoreCase = true)] + public string[] DaysOfWeek { get; set; } + + [Parameter(ParameterSetName = MonthlyRetentionInDailyFormatParamSet, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.DaysOfMonth)] + [Parameter(ParameterSetName = YearlyRetentionInDailyFormatParamSet, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.DaysOfMonth)] + [ValidateRange(1, 29)] + public List DaysOfMonth { get; set; } + + [Parameter(ParameterSetName = MonthlyRetentionInWeeklyFormatParamSet, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.WeekNumber)] + [Parameter(ParameterSetName = YearlyRetentionInWeeklyFormatParamSet, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.WeekNumber)] + [ValidateSet("First", "Second", "Third", "Fourth", "Last", IgnoreCase = true)] + public string[] WeekNumber { get; set; } + + [Parameter(ParameterSetName = YearlyRetentionInDailyFormatParamSet, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.MonthsOfYear)] + [Parameter(ParameterSetName = YearlyRetentionInWeeklyFormatParamSet, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.MonthsOfYear)] + [ValidateSet("January", "February", "March", "April", "May", "June", "July" ,"August", "September", "October", "November", "December", IgnoreCase = true)] + public string[] MonthsOfYear { get; set; } + + [Parameter(Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.Retention)] + public int Retention { get; set; } + + public override void ExecuteCmdlet() + { + ExecutionBlock(() => + { + base.ExecuteCmdlet(); + if (DailyRetention != false) + { + AzureBackupRetentionPolicy retentionPolicy = new AzureBackupDailyRetentionPolicy("Daily", Retention); + ProtectionPolicyHelpers.ValidateRetentionPolicy(new List { retentionPolicy }); + WriteObject(retentionPolicy); + } + + if (WeeklyRetention != false) + { + List daysofWeekList = ConvertDaysOfWeek(DaysOfWeek); + AzureBackupRetentionPolicy retentionPolicy = new AzureBackupWeeklyRetentionPolicy("Weekly", Retention, daysofWeekList); + ProtectionPolicyHelpers.ValidateRetentionPolicy(new List { retentionPolicy }); + WriteObject(retentionPolicy); + } + + if (MonthlyRetentionInDailyFormat != false) + { + AzureBackupRetentionPolicy retentionPolicy = new AzureBackupMonthlyRetentionPolicy("Monthly", Retention, RetentionFormat.Daily, DaysOfMonth, + null, null); + ProtectionPolicyHelpers.ValidateRetentionPolicy(new List { retentionPolicy }); + WriteObject(retentionPolicy); + } + + if (MonthlyRetentionInWeeklyFormat != false) + { + List daysofWeekList = ConvertDaysOfWeek(DaysOfWeek); + List weekNumbers = ConvertWeekNumbers(WeekNumber); + AzureBackupRetentionPolicy retentionPolicy = new AzureBackupMonthlyRetentionPolicy("Monthly", Retention, RetentionFormat.Weekly, DaysOfMonth, + weekNumbers, daysofWeekList); + + ProtectionPolicyHelpers.ValidateRetentionPolicy(new List { retentionPolicy }); + + WriteObject(retentionPolicy); + } + + if (YearlyRetentionInDailyFormat != false) + { + List monthsOfYear = ConvertMonthsOfYear(MonthsOfYear); + AzureBackupRetentionPolicy retentionPolicy = new AzureBackupYearlyRetentionPolicy("Yearly", Retention, monthsOfYear, RetentionFormat.Daily, + DaysOfMonth, null, null); + + ProtectionPolicyHelpers.ValidateRetentionPolicy(new List { retentionPolicy }); + + WriteObject(retentionPolicy); + } + + if (YearlyRetentionInWeeklyFormat != false) + { + List daysofWeekList = ConvertDaysOfWeek(DaysOfWeek); + List weekNumbers = ConvertWeekNumbers(WeekNumber); + List monthsOfYear = ConvertMonthsOfYear(MonthsOfYear); + AzureBackupRetentionPolicy retentionPolicy = new AzureBackupYearlyRetentionPolicy("Yearly", Retention, monthsOfYear, + RetentionFormat.Weekly, DaysOfMonth, weekNumbers, daysofWeekList); + + ProtectionPolicyHelpers.ValidateRetentionPolicy(new List { retentionPolicy }); + + WriteObject(retentionPolicy); + } + }); + } + + public List ConvertDaysOfWeek(string[] daysOfWeek) + { + List ListofWeekDays = new List(); + + foreach (var dayOfWeek in daysOfWeek) + { + DayOfWeek item = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), dayOfWeek, true); + if (!ListofWeekDays.Contains(item)) + { + ListofWeekDays.Add(item); + } + } + + return ListofWeekDays; + } + + public List ConvertWeekNumbers(string[] weekNumbers) + { + List ListofWeekNumbers = new List(); + + foreach (var weekNumber in weekNumbers) + { + WeekNumber item = (WeekNumber)Enum.Parse(typeof(WeekNumber), weekNumber, true); + if (!ListofWeekNumbers.Contains(item)) + { + ListofWeekNumbers.Add(item); + } + } + + return ListofWeekNumbers; + } + + public List ConvertMonthsOfYear(string[] monthsOfYear) + { + List ListofMonthsOfYear = new List(); + + foreach (var monthOfYear in monthsOfYear) + { + Month item = (Month)Enum.Parse(typeof(Month), monthOfYear, true); + if (!ListofMonthsOfYear.Contains(item)) + { + ListofMonthsOfYear.Add(item); + } + } + return ListofMonthsOfYear; + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/RemoveAzureBackupProtectionPolicy.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/RemoveAzureBackupProtectionPolicy.cs index 8b907ed2381e..7326696b45a1 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/RemoveAzureBackupProtectionPolicy.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/RemoveAzureBackupProtectionPolicy.cs @@ -39,7 +39,7 @@ public override void ExecuteCmdlet() var policyInfo = AzureBackupClient.GetProtectionPolicyByName(ProtectionPolicy.Name); if (policyInfo != null) { - AzureBackupClient.DeleteProtectionPolicy(policyInfo.InstanceId); + AzureBackupClient.DeleteProtectionPolicy(policyInfo.Name); WriteVerbose("Successfully deleted policy"); } else diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs index 90d90606e3a6..c4cb7cf40953 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs @@ -38,27 +38,19 @@ public class SetAzureBackupProtectionPolicy : AzureBackupPolicyCmdletBase [ValidateNotNullOrEmpty] public string NewName { get; set; } - [Parameter(Position = 2, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.BackupType)] - [ValidateSet("Full", IgnoreCase = true)] - public string BackupType { get; set; } - - [Parameter(ParameterSetName = DailyScheduleParamSet, Position = 3, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.DailyScheduleType)] + [Parameter(ParameterSetName = DailyScheduleParamSet, Position = 2, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.DailyScheduleType)] public SwitchParameter Daily { get; set; } - [Parameter(ParameterSetName = WeeklyScheduleParamSet, Position = 4, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.WeeklyScheduleType)] + [Parameter(ParameterSetName = WeeklyScheduleParamSet, Position = 3, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.WeeklyScheduleType)] public SwitchParameter Weekly { get; set; } - [Parameter(Position = 5, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ScheduleRunTimes)] + [Parameter(Position = 4, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ScheduleRunTimes)] public DateTime ScheduleRunTimes { get; set; } - [Parameter(Position = 6, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.RetentionType)] - [ValidateSet("Days", "Weeks", IgnoreCase = true)] - public string RetentionType { get; set; } - - [Parameter(Position = 7, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.RententionDuration)] - public int RetentionDuration { get; set; } + [Parameter(Position = 5, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.RetentionPolicyList)] + public AzureBackupRetentionPolicy[] RetentionPolicies { get; set; } - [Parameter(ParameterSetName = WeeklyScheduleParamSet, Position = 8, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ScheduleRunDays)] + [Parameter(ParameterSetName = WeeklyScheduleParamSet, Position = 6, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ScheduleRunDays)] [ValidateSet("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", IgnoreCase = true)] public string[] ScheduleRunDays { get; set; } @@ -82,15 +74,30 @@ public override void ExecuteCmdlet() // TODO: Make the below function work with AzureBackupProtectionPolicy FillRemainingValuesForSetPolicyRequest(policyInfo, this.NewName); - var backupSchedule = ProtectionPolicyHelpers.FillBackupSchedule(BackupType, policyInfo.ScheduleType, ScheduleRunTimes, - RetentionType, RetentionDuration, policyInfo.ScheduleRunDays.ToArray()); + var backupSchedule = ProtectionPolicyHelpers.FillCSMBackupSchedule(policyInfo.ScheduleType, ScheduleRunTimes, + policyInfo.ScheduleRunDays.ToArray()); NewName = (string.IsNullOrEmpty(NewName) ? policyInfo.Name : NewName); - var updateProtectionPolicyRequest = new UpdateProtectionPolicyRequest(); - updateProtectionPolicyRequest.PolicyName = this.NewName; - updateProtectionPolicyRequest.Schedule = backupSchedule; + var updateProtectionPolicyRequest = new CSMUpdateProtectionPolicyRequest(); + updateProtectionPolicyRequest.Properties = new CSMUpdateProtectionPolicyRequestProperties(); + updateProtectionPolicyRequest.Properties.PolicyName = this.NewName; + updateProtectionPolicyRequest.Properties.BackupSchedule = backupSchedule; + + AzureBackupProtectionPolicy protectionPolicy = new AzureBackupProtectionPolicy(); + if (RetentionPolicies != null && RetentionPolicies.Length > 0) + { + updateProtectionPolicyRequest.Properties.LtrRetentionPolicy = + protectionPolicy.ConvertToCSMRetentionPolicyObject(RetentionPolicies, backupSchedule); + ProtectionPolicyHelpers.ValidateRetentionPolicy(RetentionPolicies, backupSchedule.scheduleRun); + } + else + { + updateProtectionPolicyRequest.Properties.LtrRetentionPolicy = + protectionPolicy.ConvertToCSMRetentionPolicyObject(policyInfo.RetentionPolicyList, backupSchedule); + ProtectionPolicyHelpers.ValidateRetentionPolicy(policyInfo.RetentionPolicyList, backupSchedule.scheduleRun); + } - var operationId = AzureBackupClient.UpdateProtectionPolicy(policyInfo.InstanceId, updateProtectionPolicyRequest); + var operationId = AzureBackupClient.UpdateProtectionPolicy(policyInfo.Name, updateProtectionPolicyRequest); if (operationId != Guid.Empty) { @@ -115,15 +122,9 @@ private void FillRemainingValuesForSetPolicyRequest(AzureBackupProtectionPolicy AzureBackupClient.CheckProtectionPolicyNameAvailability(this.NewName); } - BackupType = (string.IsNullOrEmpty(BackupType)) ? policy.BackupType : BackupType; - ScheduleRunTimes = (ScheduleRunTimes == DateTime.MinValue) ? policy.ScheduleRunTimes : ScheduleRunTimes; - - RetentionType = (string.IsNullOrEmpty(RetentionType)) ? policy.RetentionType : RetentionType ; - - RetentionDuration = (RetentionDuration == 0) ? policy.RetentionDuration : RetentionDuration; - + WriteDebug("ParameterSetName = " + this.ParameterSetName.ToString()); if (this.ParameterSetName != NoScheduleParamSet ) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs index 1fdaa1d56ed4..a6edf1d11dc4 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs @@ -37,24 +37,26 @@ namespace Microsoft.Azure.Commands.AzureBackup.Helpers public static class ProtectionPolicyHelpers { public const int MinRetentionInDays = 7; - public const int MaxRetentionInDays = 30; - public const int MinRetentionInWeeks = 1; - public const int MaxRetentionInWeeks = 4; + public const int MaxRetentionInDays = 90; + public const int MinRetention = 1; + public const int MaxRetentionInWeeks = 30; + public const int MaxRetentionInMonths = 24; + public const int MaxRetentionInYears = 99; public const int MinPolicyNameLength = 3; public const int MaxPolicyNameLength = 150; - public static Regex rgx = new Regex(@"^[A-Za-z][-A-Za-z0-9]*[A-Za-z0-9]$"); + public static Regex rgx = new Regex(@"^[A-Za-z][-A-Za-z0-9]*[A-Za-z0-9]$"); - public static AzureBackupProtectionPolicy GetCmdletPolicy(CmdletModel.AzurePSBackupVault vault, ProtectionPolicyInfo sourcePolicy) + public static AzureBackupProtectionPolicy GetCmdletPolicy(CmdletModel.AzurePSBackupVault vault, CSMProtectionPolicyResponse sourcePolicy) { if (sourcePolicy == null) { return null; } - return new AzureBackupProtectionPolicy(vault, sourcePolicy); + return new AzureBackupProtectionPolicy(vault, sourcePolicy.Properties); } - public static IEnumerable GetCmdletPolicies(CmdletModel.AzurePSBackupVault vault, IEnumerable sourcePolicyList) + public static IEnumerable GetCmdletPolicies(CmdletModel.AzurePSBackupVault vault, IEnumerable sourcePolicyList) { if (sourcePolicyList == null) { @@ -71,25 +73,24 @@ public static IEnumerable GetCmdletPolicies(CmdletM return targetList; } - public static BackupSchedule FillBackupSchedule(string backupType, string scheduleType, DateTime scheduleStartTime, - string retentionType, int retentionDuration, string[] scheduleRunDays) + public static CSMBackupSchedule FillCSMBackupSchedule(string scheduleType, DateTime scheduleStartTime, + string[] scheduleRunDays) { - var backupSchedule = new BackupSchedule(); - - backupSchedule.BackupType = Enum.Parse(typeof(BackupType), backupType, true).ToString(); - backupSchedule.RetentionPolicy = FillRetentionPolicy(retentionType, retentionDuration); + var backupSchedule = new CSMBackupSchedule(); + backupSchedule.backupType = BackupType.Full.ToString(); + scheduleType = FillScheduleType(scheduleType, scheduleRunDays); - backupSchedule.ScheduleRun = scheduleType; - + backupSchedule.scheduleRun = scheduleType; + if (string.Compare(scheduleType, ScheduleType.Weekly.ToString(), true) == 0) { - backupSchedule.ScheduleRunDays = ParseScheduleRunDays(scheduleRunDays); + backupSchedule.scheduleRunDays = ParseScheduleRunDays(scheduleRunDays); } DateTime scheduleRunTime = ParseScheduleRunTime(scheduleStartTime); - backupSchedule.ScheduleRunTimes = new List { scheduleRunTime }; + backupSchedule.scheduleRunTimes = new List { scheduleRunTime }; return backupSchedule; } @@ -136,36 +137,6 @@ public static string GetScheduleType(string[] ScheduleRunDays, string parameterS } } - private static RetentionPolicy FillRetentionPolicy(string retentionType, int retentionDuration) - { - ValidateRetentionRange(retentionType, retentionDuration); - var retentionPolicy = new RetentionPolicy - { - RetentionType = (RetentionDurationType)Enum.Parse(typeof(RetentionDurationType), retentionType, true), - RetentionDuration = retentionDuration - }; - - return retentionPolicy; - } - - private static void ValidateRetentionRange(string retentionType, int retentionDuration) - { - if(retentionType == RetentionDurationType.Days.ToString() && (retentionDuration < MinRetentionInDays - || retentionDuration > MaxRetentionInDays)) - { - var exception = new ArgumentException("For Retention in days , valid values of retention duration are 7 to 30."); - throw exception; - } - - if (retentionType == RetentionDurationType.Weeks.ToString() && (retentionDuration < MinRetentionInWeeks - || retentionDuration > MaxRetentionInWeeks)) - { - var exception = new ArgumentException("For Retention in weeks , valid values of retention duration are 1 to 4."); - throw exception; - } - - } - private static string FillScheduleType(string scheduleType, string[] scheduleRunDays) { if (scheduleType == ScheduleType.Daily.ToString() && scheduleRunDays != null && scheduleRunDays.Length > 0) @@ -211,5 +182,156 @@ private static DateTime ParseScheduleRunTime(DateTime scheduleStartTime) scheduleStartTime.Day, scheduleStartTime.Hour, scheduleStartTime.Minute - (scheduleStartTime.Minute % 30), 0); return scheduleRunTime; } + + public static void ValidateRetentionPolicy(IList retentionPolicyList, string scheduleType = "") + { + bool validateDailyRetention = false; + bool validateWeeklyRetention = false; + if(retentionPolicyList.Count == 0 ) + { + var exception = new ArgumentException("Please pass atlease one retention policy"); + throw exception; + } + + foreach (AzureBackupRetentionPolicy retentionPolicy in retentionPolicyList) + { + if(retentionPolicy.RetentionType == "Daily") + { + ValidateDailyRetention((AzureBackupDailyRetentionPolicy)retentionPolicy); + validateDailyRetention = true; + } + else if (retentionPolicy.RetentionType == "Weekly") + { + ValidateWeeklyRetention((AzureBackupWeeklyRetentionPolicy)retentionPolicy); + validateWeeklyRetention = true; + } + else if (retentionPolicy.RetentionType == "Monthly") + { + ValidateMonthlyRetention((AzureBackupMonthlyRetentionPolicy)retentionPolicy); + } + else if (retentionPolicy.RetentionType == "Yearly") + { + ValidateYearlyRetention((AzureBackupYearlyRetentionPolicy)retentionPolicy); + } + } + + if (!string.IsNullOrEmpty(scheduleType)) + { + if (scheduleType == ScheduleType.Daily.ToString() && validateDailyRetention == false) + { + var exception = new ArgumentException("For Daily Schedule, please pass AzureBackupDailyRetentionPolicy in RetentionPolicies param."); + throw exception; + } + + if (scheduleType == ScheduleType.Weekly.ToString() && validateWeeklyRetention == false) + { + var exception = new ArgumentException("For Weekly Schedule, please pass AzureBackupWeeklyRetentionPolicy in RetentionPolicies param."); + throw exception; + } + + if (scheduleType == ScheduleType.Weekly.ToString() && validateDailyRetention == true) + { + var exception = new ArgumentException("For Weekly Schedule, you cannot pass AzureBackupDailyRetentionPolicy in RetentionPolicies param."); + throw exception; + } + } + } + + private static void ValidateDailyRetention(AzureBackupDailyRetentionPolicy dailyRetention) + { + if (dailyRetention.Retention < MinRetentionInDays || dailyRetention.Retention > MaxRetentionInDays) + { + var exception = new ArgumentException(string.Format("For DailyRetentionPolicy , valid values of retention are {0} to {1}.", MinRetentionInDays, MaxRetentionInDays)); + throw exception; + } + } + + private static void ValidateWeeklyRetention(AzureBackupWeeklyRetentionPolicy weeklyRetention) + { + if (weeklyRetention.Retention < MinRetention || weeklyRetention.Retention > MaxRetentionInWeeks) + { + var exception = new ArgumentException(string.Format("For WeeklyRetentionPolicy , valid values of retention are {0} to {1}.", MinRetention, MaxRetentionInWeeks)); + throw exception; + } + + if(weeklyRetention.DaysOfWeek == null || weeklyRetention.DaysOfWeek.Count == 0) + { + var exception = new ArgumentException("For WeeklyRetentionPolicy , pass atleast one value for DaysOfWeek param."); + throw exception; + } + } + + private static void ValidateMonthlyRetention(AzureBackupMonthlyRetentionPolicy monthlyRetention) + { + if (monthlyRetention.Retention < MinRetention || monthlyRetention.Retention > MaxRetentionInMonths) + { + var exception = new ArgumentException(string.Format("For MonthlyRetentionPolicy , valid values of retention are {0} to {1}.", MinRetention, MaxRetentionInMonths)); + throw exception; + } + + if(monthlyRetention.RetentionFormat == RetentionFormat.Daily) + { + if(monthlyRetention.DaysOfMonth == null || monthlyRetention.DaysOfMonth.Count == 0) + { + var exception = new ArgumentException("For MonthlyRetentionPolicy and RetentionFormat in Days, pass atleast one value for DaysOfMonth param."); + throw exception; + } + } + + if (monthlyRetention.RetentionFormat == RetentionFormat.Weekly) + { + if (monthlyRetention.DaysOfWeek == null || monthlyRetention.DaysOfWeek.Count == 0) + { + var exception = new ArgumentException("For MonthlyRetentionPolicy and RetentionFormat in Weeks, pass atleast one value for DaysOfWeek param."); + throw exception; + } + + if (monthlyRetention.WeekNumber == null || monthlyRetention.WeekNumber.Count == 0) + { + var exception = new ArgumentException("For MonthlyRetentionPolicy and RetentionFormat in Weeks, pass atleast one value for WeekNumber param."); + throw exception; + } + } + } + + private static void ValidateYearlyRetention(AzureBackupYearlyRetentionPolicy yearlyRetention) + { + if (yearlyRetention.Retention < MinRetention || yearlyRetention.Retention > MaxRetentionInYears) + { + var exception = new ArgumentException(string.Format("For YearlyRetentionPolicy , valid values of retention are {0} to {1}.", MinRetention, MaxRetentionInYears)); + throw exception; + } + + if(yearlyRetention.MonthsOfYear == null || yearlyRetention.MonthsOfYear.Count == 0) + { + var exception = new ArgumentException("For YearlyRetentionPolicy and RetentionFormat in days,pass atleast one value for MonthsOfYear param."); + throw exception; + } + + if (yearlyRetention.RetentionFormat == RetentionFormat.Daily) + { + if (yearlyRetention.DaysOfMonth == null || yearlyRetention.DaysOfMonth.Count == 0) + { + var exception = new ArgumentException("For YearlyRetentionPolicy and RetentionFormat in Days, pass atleast one value for DaysOfMonth param."); + throw exception; + } + } + + if (yearlyRetention.RetentionFormat == RetentionFormat.Weekly) + { + if (yearlyRetention.DaysOfWeek == null || yearlyRetention.DaysOfWeek.Count == 0) + { + var exception = new ArgumentException("For YearlyRetentionPolicy and RetentionFormat in Weeks,pass atleast one value for DaysOfWeek param."); + throw exception; + } + + if (yearlyRetention.WeekNumber == null || yearlyRetention.WeekNumber.Count == 0) + { + var exception = new ArgumentException("For YearlyRetentionPolicy and RetentionFormat in Weeks, pass atleast one value for WeekNumber param."); + throw exception; + } + } + } + } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs index f1e05e460c57..44548a02eef6 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs @@ -103,8 +103,10 @@ public enum ScheduleType public enum RetentionType { Invalid = 0, - Days = 1, - Weeks = 2 + Daily = 1, + Weekly = 2, + Monthly = 3, + Yearly = 4 } public enum WorkloadType @@ -118,4 +120,10 @@ public enum BackupType Invalid = 0, Full = 1 } + + public enum RetentionFormat + { + Daily, + Weekly + } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs index 3553ccd653b2..6ea6782a6604 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs @@ -23,11 +23,6 @@ namespace Microsoft.Azure.Commands.AzureBackup.Models /// public class AzureBackupProtectionPolicy : AzureBackupVaultContextObject { - /// - /// InstanceId of the azurebackup object - /// - public string InstanceId { get; set; } - /// /// Name of the azurebackup object /// @@ -35,43 +30,131 @@ public class AzureBackupProtectionPolicy : AzureBackupVaultContextObject public string WorkloadType { get; set; } - public string BackupType { get; set; } - public string ScheduleType { get; set; } public List ScheduleRunDays { get; set; } public DateTime ScheduleRunTimes { get; set; } - public string RetentionType { get; set; } - - public int RetentionDuration { get; set; } + public IList RetentionPolicyList { get; set; } public AzureBackupProtectionPolicy() { } - public AzureBackupProtectionPolicy(AzurePSBackupVault vault, ProtectionPolicyInfo sourcePolicy) + public AzureBackupProtectionPolicy(AzurePSBackupVault vault, CSMProtectionPolicyProperties sourcePolicy) : base(vault) { - InstanceId = sourcePolicy.InstanceId; - Name = sourcePolicy.Name; + Name = sourcePolicy.PolicyName; WorkloadType = sourcePolicy.WorkloadType; - - BackupType = sourcePolicy.Schedule.BackupType; - ScheduleType = sourcePolicy.Schedule.ScheduleRun; - ScheduleRunTimes = ConvertScheduleRunTimes(sourcePolicy.Schedule.ScheduleRunTimes); - ScheduleRunDays = ConvertScheduleRunDays(sourcePolicy.Schedule.ScheduleRunDays); + ScheduleType = sourcePolicy.backupSchedule.scheduleRun; + ScheduleRunTimes = ConvertScheduleRunTimes(sourcePolicy.backupSchedule.scheduleRunTimes); + ScheduleRunDays = ConvertScheduleRunDays(sourcePolicy.backupSchedule.scheduleRunDays); + RetentionPolicyList = ConvertCSMRetentionPolicyListToPowershell(sourcePolicy.LTRRetentionPolicy); + } + + private IList ConvertCSMRetentionPolicyListToPowershell(CSMLongTermRetentionPolicy LTRRetentionPolicy) + { + IList retentionPolicyList = new List(); + AzureBackupDailyRetentionPolicy dailyRetentionPolicy = ConvertToPowershellDailyRetentionObject(LTRRetentionPolicy.DailySchedule); + AzureBackupWeeklyRetentionPolicy weeklyRetentionPolicy = ConvertToPowershellWeeklyRetentionObject(LTRRetentionPolicy.WeeklySchedule); + AzureBackupMonthlyRetentionPolicy monthlyRetentionPolicy = ConvertToPowershellMonthlyRetentionObject(LTRRetentionPolicy.MonthlySchedule); + AzureBackupYearlyRetentionPolicy yearlyRetentionPolicy = ConvertToPowershellYearlyRetentionObject(LTRRetentionPolicy.YearlySchedule); + + if(dailyRetentionPolicy != null) + { + retentionPolicyList.Add(dailyRetentionPolicy); + } + if (weeklyRetentionPolicy != null) + { + retentionPolicyList.Add(weeklyRetentionPolicy); + } + if (monthlyRetentionPolicy != null) + { + retentionPolicyList.Add(monthlyRetentionPolicy); + } + if (yearlyRetentionPolicy != null) + { + retentionPolicyList.Add(yearlyRetentionPolicy); + } - RetentionType = sourcePolicy.Schedule.RetentionPolicy.RetentionType.ToString(); - RetentionDuration = sourcePolicy.Schedule.RetentionPolicy.RetentionDuration; + return retentionPolicyList; } + AzureBackupDailyRetentionPolicy ConvertToPowershellDailyRetentionObject(CSMDailyRetentionSchedule DailySchedule) + { + if (DailySchedule == null) + return null; + AzureBackupDailyRetentionPolicy dailyRetention = new AzureBackupDailyRetentionPolicy("Daily", DailySchedule.CSMRetentionDuration.Count); + + return dailyRetention; + } + + AzureBackupWeeklyRetentionPolicy ConvertToPowershellWeeklyRetentionObject(CSMWeeklyRetentionSchedule WeeklySchedule) + { + if (WeeklySchedule == null) + return null; + AzureBackupWeeklyRetentionPolicy weeklyRetention = new AzureBackupWeeklyRetentionPolicy("Weekly", WeeklySchedule.CSMRetentionDuration.Count, + WeeklySchedule.DaysOfTheWeek); + + return weeklyRetention; + } + + AzureBackupMonthlyRetentionPolicy ConvertToPowershellMonthlyRetentionObject(CSMMonthlyRetentionSchedule MonthlySchedule) + { + if (MonthlySchedule == null) + return null; + AzureBackupMonthlyRetentionPolicy monthlyRetention = null; + + RetentionFormat retentionFormat = (RetentionFormat)Enum.Parse(typeof(RetentionFormat), MonthlySchedule.RetentionScheduleType.ToString(), true); + if(retentionFormat == RetentionFormat.Daily) + { + List dayList = GetDayList(MonthlySchedule.RetentionScheduleDaily.DaysOfTheMonth); + monthlyRetention = new AzureBackupMonthlyRetentionPolicy("Monthly", MonthlySchedule.CSMRetentionDuration.Count, + retentionFormat, dayList, null, null); + } + else if(retentionFormat == RetentionFormat.Weekly) + { + List weekNumberList = GetWeekNumberList(MonthlySchedule.RetentionScheduleWeekly); + List dayOfWeekList = GetWeekDaysList(MonthlySchedule.RetentionScheduleWeekly); + monthlyRetention = new AzureBackupMonthlyRetentionPolicy("Monthly", MonthlySchedule.CSMRetentionDuration.Count, + retentionFormat, null, weekNumberList, dayOfWeekList); + } + + return monthlyRetention; + } + + AzureBackupYearlyRetentionPolicy ConvertToPowershellYearlyRetentionObject(CSMYearlyRetentionSchedule YearlySchedule) + { + if (YearlySchedule == null) + return null; + AzureBackupYearlyRetentionPolicy yearlyRetention = null; + + List monthOfTheYearList = GetMonthsOfYearList(YearlySchedule.MonthsOfYear); + + RetentionFormat retentionFormat = (RetentionFormat)Enum.Parse(typeof(RetentionFormat), YearlySchedule.RetentionScheduleType.ToString(), true); + if(retentionFormat == RetentionFormat.Daily) + { + List dayList = GetDayList(YearlySchedule.RetentionScheduleDaily.DaysOfTheMonth); + yearlyRetention = new AzureBackupYearlyRetentionPolicy("Monthly", YearlySchedule.CSMRetentionDuration.Count, + monthOfTheYearList, retentionFormat, dayList, null, null); + } + else if (retentionFormat == RetentionFormat.Weekly) + { + List weekNumberList = GetWeekNumberList(YearlySchedule.RetentionScheduleWeekly); + List dayOfWeekList = GetWeekDaysList(YearlySchedule.RetentionScheduleWeekly); + yearlyRetention = new AzureBackupYearlyRetentionPolicy("Monthly", YearlySchedule.CSMRetentionDuration.Count, + monthOfTheYearList, retentionFormat, null, weekNumberList, dayOfWeekList); + } + + return yearlyRetention; + } + private List ConvertScheduleRunDays(IList weekDaysList) { List scheduelRunDays = new List(); - foreach(object item in weekDaysList) + foreach (object item in weekDaysList) { scheduelRunDays.Add(item.ToString()); } @@ -84,6 +167,266 @@ private DateTime ConvertScheduleRunTimes(IList scheduleRunTimeList) IEnumerator scheduleEnumerator = scheduleRunTimeList.GetEnumerator(); scheduleEnumerator.MoveNext(); return scheduleEnumerator.Current; - } + } + + public List GetDayList(IList daysOfTheMonthList) + { + int lastDayOfTheMonth = 29; + List dayList = new List(); + foreach (Day day in daysOfTheMonthList) + { + dayList.Add(day.Date); + if(day.IsLast) + { + dayList.Add(lastDayOfTheMonth); + } + } + + return dayList; + } + + public List GetWeekNumberList(CSMWeeklyRetentionFormat csmWeekNumberList) + { + List weekNumberList = new List(); + foreach (WeekNumber weekNumber in csmWeekNumberList.WeeksOfTheMonth) + { + weekNumberList.Add(weekNumber); + } + return weekNumberList; + } + + public List GetWeekDaysList(CSMWeeklyRetentionFormat csmWeekNumberList) + { + List dayOfWeekList = new List(); + foreach (DayOfWeek dayOfWeek in csmWeekNumberList.DaysOfTheWeek) + { + dayOfWeekList.Add(dayOfWeek); + } + return dayOfWeekList; + } + + public List GetMonthsOfYearList(IList MonthsOfYear) + { + List monthOfTheYearList = new List(); + foreach (Month monthOfTheYear in MonthsOfYear) + { + monthOfTheYearList.Add(monthOfTheYear); + } + return monthOfTheYearList; + } + + public CSMLongTermRetentionPolicy ConvertToCSMRetentionPolicyObject(IList retentionPolicyList, CSMBackupSchedule backupSchedule) + { + CSMLongTermRetentionPolicy csmLongTermRetentionPolicy = new CSMLongTermRetentionPolicy(); + foreach(AzureBackupRetentionPolicy retentionPolicy in retentionPolicyList) + { + if(retentionPolicy.RetentionType == "Daily") + { + csmLongTermRetentionPolicy.DailySchedule = ConvertToCSMDailyRetentionObject((AzureBackupDailyRetentionPolicy)retentionPolicy, + backupSchedule.scheduleRunTimes); + } + if(retentionPolicy.RetentionType == "Weekly") + { + csmLongTermRetentionPolicy.WeeklySchedule = ConvertToCSMWeeklyRetentionObject((AzureBackupWeeklyRetentionPolicy)retentionPolicy, + backupSchedule.scheduleRunTimes); + } + if(retentionPolicy.RetentionType == "Monthly") + { + csmLongTermRetentionPolicy.MonthlySchedule = ConvertToGetCSMMonthlyRetentionObject((AzureBackupMonthlyRetentionPolicy)retentionPolicy, + backupSchedule.scheduleRunTimes); + } + if(retentionPolicy.RetentionType == "Yearly") + { + csmLongTermRetentionPolicy.YearlySchedule = ConvertToCSMYearlyRetentionObject((AzureBackupYearlyRetentionPolicy)retentionPolicy, + backupSchedule.scheduleRunTimes); + } + } + + return csmLongTermRetentionPolicy; + } + + public CSMDailyRetentionSchedule ConvertToCSMDailyRetentionObject(AzureBackupDailyRetentionPolicy retentionPolicy, IList RetentionTimes) + { + CSMDailyRetentionSchedule csmDailyRetention = new CSMDailyRetentionSchedule(); + csmDailyRetention.CSMRetentionDuration = new CSMRetentionDuration(); + csmDailyRetention.CSMRetentionDuration.Count = retentionPolicy.Retention; + csmDailyRetention.CSMRetentionDuration.DurationType = RetentionDurationType.Days; + csmDailyRetention.RetentionTimes = RetentionTimes; + + return csmDailyRetention; + } + public CSMWeeklyRetentionSchedule ConvertToCSMWeeklyRetentionObject(AzureBackupWeeklyRetentionPolicy retentionPolicy, IList RetentionTimes) + { + CSMWeeklyRetentionSchedule csmWeeklyRetention = new CSMWeeklyRetentionSchedule(); + csmWeeklyRetention.DaysOfTheWeek = retentionPolicy.DaysOfWeek; + csmWeeklyRetention.CSMRetentionDuration = new CSMRetentionDuration(); + csmWeeklyRetention.CSMRetentionDuration.Count = retentionPolicy.Retention; + csmWeeklyRetention.CSMRetentionDuration.DurationType = RetentionDurationType.Weeks; + csmWeeklyRetention.RetentionTimes = RetentionTimes; + return csmWeeklyRetention; + } + + public CSMMonthlyRetentionSchedule ConvertToGetCSMMonthlyRetentionObject(AzureBackupMonthlyRetentionPolicy retentionPolicy, IList RetentionTimes) + { + CSMMonthlyRetentionSchedule csmMonthlyRetention = new CSMMonthlyRetentionSchedule(); + + if(retentionPolicy.RetentionFormat == RetentionFormat.Daily) + { + csmMonthlyRetention.RetentionScheduleType = RetentionScheduleFormat.Daily; + csmMonthlyRetention.RetentionScheduleDaily = new CSMDailyRetentionFormat(); + csmMonthlyRetention.RetentionScheduleDaily.DaysOfTheMonth = ConvertToCSMDayList(retentionPolicy.DaysOfMonth); + } + + else if (retentionPolicy.RetentionFormat == RetentionFormat.Weekly) + { + csmMonthlyRetention.RetentionScheduleWeekly = new CSMWeeklyRetentionFormat(); + csmMonthlyRetention.RetentionScheduleType = RetentionScheduleFormat.Weekly; + csmMonthlyRetention.RetentionScheduleWeekly.DaysOfTheWeek = retentionPolicy.DaysOfWeek; + csmMonthlyRetention.RetentionScheduleWeekly.WeeksOfTheMonth = retentionPolicy.WeekNumber; + } + + csmMonthlyRetention.CSMRetentionDuration = new CSMRetentionDuration(); + csmMonthlyRetention.CSMRetentionDuration.Count = retentionPolicy.Retention; + csmMonthlyRetention.CSMRetentionDuration.DurationType = RetentionDurationType.Months; + csmMonthlyRetention.RetentionTimes = RetentionTimes; + + return csmMonthlyRetention; + } + + public CSMYearlyRetentionSchedule ConvertToCSMYearlyRetentionObject(AzureBackupYearlyRetentionPolicy retentionPolicy, IList RetentionTimes) + { + CSMYearlyRetentionSchedule csmYearlyRetention = new CSMYearlyRetentionSchedule(); + + if (retentionPolicy.RetentionFormat == RetentionFormat.Daily) + { + csmYearlyRetention.RetentionScheduleType = RetentionScheduleFormat.Daily; + csmYearlyRetention.RetentionScheduleDaily = new CSMDailyRetentionFormat(); + csmYearlyRetention.RetentionScheduleDaily.DaysOfTheMonth = ConvertToCSMDayList(retentionPolicy.DaysOfMonth); + } + + else if (retentionPolicy.RetentionFormat == RetentionFormat.Weekly) + { + csmYearlyRetention.RetentionScheduleWeekly = new CSMWeeklyRetentionFormat(); + csmYearlyRetention.RetentionScheduleType = RetentionScheduleFormat.Weekly; + csmYearlyRetention.RetentionScheduleWeekly.DaysOfTheWeek = retentionPolicy.DaysOfWeek; + csmYearlyRetention.RetentionScheduleWeekly.WeeksOfTheMonth = retentionPolicy.WeekNumber; + } + + csmYearlyRetention.CSMRetentionDuration = new CSMRetentionDuration(); + csmYearlyRetention.CSMRetentionDuration.Count = retentionPolicy.Retention; + csmYearlyRetention.CSMRetentionDuration.DurationType = RetentionDurationType.Years; + csmYearlyRetention.RetentionTimes = RetentionTimes; + csmYearlyRetention.MonthsOfYear = retentionPolicy.MonthsOfYear; + + return csmYearlyRetention; + } + + public IList ConvertToCSMDayList(List DaysOfMonth) + { + IList dayList = new List(); + + foreach(int DayOfMonth in DaysOfMonth) + { + Day day = new Day(); + if (DayOfMonth == 29) + { + day.IsLast = true; + } + else + { + day.Date = DayOfMonth; + day.IsLast = false; + } + dayList.Add(day); + } + + return dayList; + } + } + + public class AzureBackupRetentionPolicy + { + public string RetentionType { get; set; } + + public int Retention { get; set; } + + public IList RetentionTimes { get; set; } + + public AzureBackupRetentionPolicy(string retentionType, int retention) + { + this.RetentionType = retentionType; + this.Retention = retention; + } + } + + public class AzureBackupDailyRetentionPolicy : AzureBackupRetentionPolicy + { + public AzureBackupDailyRetentionPolicy(string retentionType, int retention) + : base(retentionType, retention) + { } + } + + public class AzureBackupWeeklyRetentionPolicy : AzureBackupRetentionPolicy + { + public List DaysOfWeek { get; set; } + public AzureBackupWeeklyRetentionPolicy(string retentionType, int retention, IList daysOfWeek) + : base(retentionType, retention) + { + this.DaysOfWeek = new List(daysOfWeek); + } + } + + public class AzureBackupMonthlyRetentionPolicy : AzureBackupRetentionPolicy + { + public RetentionFormat RetentionFormat { get; set; } + + public List DaysOfMonth { get; set; } + + public List WeekNumber { get; set; } + + public List DaysOfWeek { get; set; } + + public AzureBackupMonthlyRetentionPolicy(string retentionType, int retention, RetentionFormat retentionFormat, List daysOfMonth, + List weekNumber, List daysOfWeek) + : base(retentionType, retention) + { + this.RetentionFormat = retentionFormat; + this.DaysOfMonth = daysOfMonth; + this.WeekNumber = weekNumber; + this.DaysOfWeek = daysOfWeek; + } + } + + public class AzureBackupYearlyRetentionPolicy : AzureBackupRetentionPolicy + { + public List MonthsOfYear { get; set; } + + public RetentionFormat RetentionFormat { get; set; } + + public List DaysOfMonth { get; set; } + + public List WeekNumber { get; set; } + + public List DaysOfWeek { get; set; } + + public AzureBackupYearlyRetentionPolicy(string retentionType, int retention, List monthsOfYear, RetentionFormat retentionFormat, List daysOfMonth, + List weekNumber, List daysOfWeek) + : base(retentionType, retention) + { + this.MonthsOfYear = monthsOfYear; + this.RetentionFormat = retentionFormat; + this.DaysOfMonth = daysOfMonth; + this.WeekNumber = weekNumber; + this.DaysOfWeek = daysOfWeek; + } } + + //public enum WeekNumber + //{ + // First, + // Second, + // Third, + // Fourth, + // Last + //} } From a5af176b47cfc8be91730cf7cdd249d7a420c042 Mon Sep 17 00:00:00 2001 From: pragrawa Date: Sun, 26 Jul 2015 03:50:51 +0530 Subject: [PATCH 42/58] LTR Policy Powershell Tests --- .../ScenarioTests/AzureBackupPolicyTests.ps1 | 54 +++++-------------- 1 file changed, 14 insertions(+), 40 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 index e336515c096f..8146e315e435 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 @@ -41,9 +41,8 @@ function Test-GetAzureBackupProtectionPolicyTests Assert-NotNull $protectionPolicy.InstanceId 'InstanceId should not be null' Assert-NotNull $protectionPolicy.Name 'Name should not be null' Assert-NotNull $protectionPolicy.WorkloadType 'WorkloadType should not be null' - Assert-NotNull $protectionPolicy.BackupType 'BackupType should not be null' Assert-NotNull $protectionPolicy.ScheduleRunTimes 'ScheduleRunTimes should not be null' - Assert-NotNull $protectionPolicy.RetentionDuration 'RetentionDuration should not be null' + Assert-NotNull $protectionPolicy.RetentionPolicyList 'RetentionPolicyList should not be null' Assert-NotNull $protectionPolicy.ResourceGroupName 'ResourceGroupName should not be null' Assert-NotNull $protectionPolicy.ResourceName 'ResourceName should not be null' Assert-NotNull $protectionPolicy.Location 'Location should not be null' @@ -58,9 +57,8 @@ function Test-GetAzureBackupProtectionPolicyByNameTests Assert-NotNull $protectionPolicy.InstanceId 'InstanceId should not be null' Assert-NotNull $protectionPolicy.Name 'Name should not be null' Assert-NotNull $protectionPolicy.WorkloadType 'WorkloadType should not be null' - Assert-NotNull $protectionPolicy.BackupType 'BackupType should not be null' Assert-NotNull $protectionPolicy.ScheduleRunTimes 'ScheduleRunTimes should not be null' - Assert-NotNull $protectionPolicy.RetentionDuration 'RetentionDuration should not be null' + Assert-NotNull $protectionPolicy.RetentionPolicyList 'RetentionPolicyList should not be null' Assert-NotNull $protectionPolicy.ResourceGroupName 'ResourceGroupName should not be null' Assert-NotNull $protectionPolicy.ResourceName 'ResourceName should not be null' Assert-NotNull $protectionPolicy.Location 'Location should not be null' @@ -70,14 +68,17 @@ function Test-GetAzureBackupProtectionPolicyByNameTests function Test-NewAzureBackupProtectionPolicyTests { $vault = Get-AzureBackupVault -Name $ResourceName; - $protectionPolicy = New-AzureBackupProtectionPolicy -vault $vault -Name $PolicyName -WorkloadType $WorkloadType -BackupType $BackupType -Daily -RetentionType $RetentionType -RetentionDuration $RetentionDuration -ScheduleRunTimes $ScheduleRunTimes + $r1 = New-AzureBackupRetentionPolicyObject -DailyRetention -Retention 20 + $r2 = New-AzureBackupRetentionPolicyObject -WeeklyRetention -DaysOfWeek "Monday" -Retention 10 + $r = ($r1, $r2) + + $protectionPolicy = New-AzureBackupProtectionPolicy -vault $vault -Name $PolicyName -WorkloadType $WorkloadType -Daily -RetentionPolicies $r -ScheduleRunTimes $ScheduleRunTimes Assert-NotNull $protectionPolicy.InstanceId 'InstanceId should not be null' Assert-NotNull $protectionPolicy.Name 'Name should not be null' Assert-NotNull $protectionPolicy.WorkloadType 'WorkloadType should not be null' - Assert-NotNull $protectionPolicy.BackupType 'BackupType should not be null' Assert-NotNull $protectionPolicy.ScheduleRunTimes 'ScheduleRunTimes should not be null' - Assert-NotNull $protectionPolicy.RetentionDuration 'RetentionDuration should not be null' + Assert-NotNull $protectionPolicy.RetentionPolicyList 'RetentionPolicyList should not be null' Assert-NotNull $protectionPolicy.ResourceGroupName 'ResourceGroupName should not be null' Assert-NotNull $protectionPolicy.ResourceName 'ResourceName should not be null' Assert-NotNull $protectionPolicy.Location 'Location should not be null' @@ -85,44 +86,17 @@ function Test-NewAzureBackupProtectionPolicyTests function Test-SetAzureBackupProtectionPolicyTests { - $policy = New-Object Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupProtectionPolicy - $policy.InstanceId = $PolicyId - $policy.Name = $PolicyName - $policy.ResourceGroupName = $ResourceGroupName - $policy.ResourceName = $ResourceName - $policy.Location = $Location - $policy.WorkloadType = $WorkloadType - $policy.RetentionType = $RetentionType - $policy.ScheduleRunTimes = $ScheduleRunTimes - $policy.ScheduleType = $ScheduleType + $vault = Get-AzureBackupVault -Name $ResourceName; + $protectionPolicy = Get-AzureBackupProtectionPolicy -vault $vault -Name $PolicyName $policyNewName = "policy09_new" - $protectionPolicy = Set-AzureBackupProtectionPolicy -ProtectionPolicy $policy -NewName $policyNewName - - Assert-NotNull $protectionPolicy.InstanceId 'InstanceId should not be null' - Assert-NotNull $protectionPolicy.Name 'Name should not be null' - Assert-NotNull $protectionPolicy.WorkloadType 'WorkloadType should not be null' - Assert-NotNull $protectionPolicy.BackupType 'BackupType should not be null' - Assert-NotNull $protectionPolicy.ScheduleRunTimes 'ScheduleRunTimes should not be null' - Assert-NotNull $protectionPolicy.RetentionDuration 'RetentionDuration should not be null' - Assert-NotNull $protectionPolicy.ResourceGroupName 'ResourceGroupName should not be null' - Assert-NotNull $protectionPolicy.ResourceName 'ResourceName should not be null' - Assert-NotNull $protectionPolicy.Location 'Location should not be null' + Set-AzureBackupProtectionPolicy -ProtectionPolicy $protectionPolicy -NewName $policyNewName } function Test-RemoveAzureBackupProtectionPolicyTests { - $policyNewName = "policy09_new" - $policy = New-Object Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupProtectionPolicy - $policy.InstanceId = $PolicyId - $policy.Name = $policyNewName - $policy.ResourceGroupName = $ResourceGroupName - $policy.ResourceName = $ResourceName - $policy.Location = $Location - $policy.WorkloadType = $WorkloadType - $policy.RetentionType = $RetentionType - $policy.ScheduleRunTimes = $ScheduleRunTimes - $policy.ScheduleType = $ScheduleType + $vault = Get-AzureBackupVault -Name $ResourceName; + $protectionPolicy = Get-AzureBackupProtectionPolicy -vault $vault -Name $PolicyName - Remove-AzureBackupProtectionPolicy -ProtectionPolicy $policy + Remove-AzureBackupProtectionPolicy -ProtectionPolicy $protectionPolicy } From 4f12154a479b3b5a20f84a8ef001fa8dd83060e6 Mon Sep 17 00:00:00 2001 From: pragrawa Date: Sun, 26 Jul 2015 04:06:59 +0530 Subject: [PATCH 43/58] LTR Policy changes --- .../Commands.AzureBackup/Models/ProtectionPolicy.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs index 6ea6782a6604..4c12689d7a68 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs @@ -136,14 +136,14 @@ AzureBackupYearlyRetentionPolicy ConvertToPowershellYearlyRetentionObject(CSMYea if(retentionFormat == RetentionFormat.Daily) { List dayList = GetDayList(YearlySchedule.RetentionScheduleDaily.DaysOfTheMonth); - yearlyRetention = new AzureBackupYearlyRetentionPolicy("Monthly", YearlySchedule.CSMRetentionDuration.Count, + yearlyRetention = new AzureBackupYearlyRetentionPolicy("Yearly", YearlySchedule.CSMRetentionDuration.Count, monthOfTheYearList, retentionFormat, dayList, null, null); } else if (retentionFormat == RetentionFormat.Weekly) { List weekNumberList = GetWeekNumberList(YearlySchedule.RetentionScheduleWeekly); List dayOfWeekList = GetWeekDaysList(YearlySchedule.RetentionScheduleWeekly); - yearlyRetention = new AzureBackupYearlyRetentionPolicy("Monthly", YearlySchedule.CSMRetentionDuration.Count, + yearlyRetention = new AzureBackupYearlyRetentionPolicy("Yearly", YearlySchedule.CSMRetentionDuration.Count, monthOfTheYearList, retentionFormat, null, weekNumberList, dayOfWeekList); } From 74f37a943d18e45d5ee69a1c6c4081432ae41249 Mon Sep 17 00:00:00 2001 From: panbha Date: Sun, 26 Jul 2015 14:20:26 +0530 Subject: [PATCH 44/58] format --- ...t.Azure.Commands.AzureBackup.format.ps1xml | 46 ++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Microsoft.Azure.Commands.AzureBackup.format.ps1xml b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Microsoft.Azure.Commands.AzureBackup.format.ps1xml index ab415da71864..cc7c3872595e 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Microsoft.Azure.Commands.AzureBackup.format.ps1xml +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Microsoft.Azure.Commands.AzureBackup.format.ps1xml @@ -37,6 +37,50 @@ - + + + Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupRecoveryPoint + + Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupRecoveryPoint + + + + + + 18 + + + + 18 + + + + 22 + + + + 36 + + + + + + + RecoveryPointName + + + RecoveryPointType + + + RecoveryPointTime + + + ContainerUniqueName + + + + + + From 8d0ffda2b1425040874621a5588088fb7eedfa7a Mon Sep 17 00:00:00 2001 From: panbha Date: Sun, 26 Jul 2015 23:59:36 +0530 Subject: [PATCH 45/58] format --- .../ScenarioTests/RecoveryPointTests.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 index 54856ee6c503..446a4becfc84 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 @@ -16,7 +16,7 @@ function Test-GetAzureRecoveryPoints { $azureBackUpItem = New-Object Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupItem $azureBackUpItem.ResourceGroupName = $ResourceGroupName - $azureBackUpItem.ResourceName = $ResourceGroupName + $azureBackUpItem.ResourceName = $ResourceName $azureBackUpItem.Location = $Location $azureBackUpItem.ContainerUniqueName = $ContainerName $azureBackUpItem.ItemName = $ItemName @@ -36,7 +36,7 @@ function Test-GetAzureRecoveryPoint { $azureBackUpItem = New-Object Microsoft.Azure.Commands.AzureBackup.Models.AzureBackupItem $azureBackUpItem.ResourceGroupName = $ResourceGroupName - $azureBackUpItem.ResourceName = $ResourceGroupName + $azureBackUpItem.ResourceName = $ResourceName $azureBackUpItem.Location = $Location $azureBackUpItem.ContainerUniqueName = $ContainerName $azureBackUpItem.ItemName = $ItemName From 771b839b0bc488d9d40b9d8e102b2bd424713d3d Mon Sep 17 00:00:00 2001 From: panbha Date: Mon, 27 Jul 2015 12:36:51 +0530 Subject: [PATCH 46/58] recoverypointId --- .../ScenarioTests/RecoveryPointTests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 index 446a4becfc84..3b4edbc3aa77 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 @@ -40,7 +40,7 @@ function Test-GetAzureRecoveryPoint $azureBackUpItem.Location = $Location $azureBackUpItem.ContainerUniqueName = $ContainerName $azureBackUpItem.ItemName = $ItemName - $recoveryPoint = Get-AzureBackupRecoveryPoint -Item $azureBackUpItem -Id $RecoveryPointName + $recoveryPoint = Get-AzureBackupRecoveryPoint -Item $azureBackUpItem -RecoveryPointId $RecoveryPointName if (!($recoveryPoint -eq $null)) { Assert-NotNull $recoveryPoint.RecoveryPointTime 'RecoveryPointTime should not be null' From bb18d17121b03860a1192b1e8709efa40c0831a7 Mon Sep 17 00:00:00 2001 From: panbha Date: Mon, 27 Jul 2015 12:38:14 +0530 Subject: [PATCH 47/58] recoverypointId --- .../Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs index 74f35c7b9b3d..36fb9cb87956 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs @@ -30,7 +30,7 @@ public class GetAzureBackupRecoveryPoint : AzureBackupDSCmdletBase { [Parameter(Position = 1, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.RecoveryPointId)] [ValidateNotNullOrEmpty] - public string Id { get; set; } + public string RecoveryPointId { get; set; } public override void ExecuteCmdlet() { @@ -40,16 +40,16 @@ public override void ExecuteCmdlet() { WriteDebug("Making client call"); - if (Id != null) + if (RecoveryPointId != null) { - CSMRecoveryPointResponse recoveryPointObject = AzureBackupClient.GetRecoveryPoint(Item.ContainerUniqueName, Item.ItemName, Id); + CSMRecoveryPointResponse recoveryPointObject = AzureBackupClient.GetRecoveryPoint(Item.ContainerUniqueName, Item.ItemName, RecoveryPointId); if (recoveryPointObject != null) { WriteAzureBackupRecoveryPoint(recoveryPointObject, Item); } else { - WriteDebug(string.Format("{0}{1}", "No recovery point exist with Id := ", Id)); + WriteDebug(string.Format("{0}{1}", "No recovery point exist with Id := ", RecoveryPointId)); } } else From e6e433585c2eb114c8374dd4f72d88a6c978a975 Mon Sep 17 00:00:00 2001 From: panbha Date: Mon, 27 Jul 2015 12:38:51 +0530 Subject: [PATCH 48/58] recoverypointId1 --- .../ScenarioTests/RecoveryPointTests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 index 3b4edbc3aa77..38bf77a7d7c1 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 @@ -40,7 +40,7 @@ function Test-GetAzureRecoveryPoint $azureBackUpItem.Location = $Location $azureBackUpItem.ContainerUniqueName = $ContainerName $azureBackUpItem.ItemName = $ItemName - $recoveryPoint = Get-AzureBackupRecoveryPoint -Item $azureBackUpItem -RecoveryPointId $RecoveryPointName + $recoveryPoint = Get-AzureBackupRecoveryPoint -Item $azureBackUpItem -RecoveryPointIdcd .. $RecoveryPointName if (!($recoveryPoint -eq $null)) { Assert-NotNull $recoveryPoint.RecoveryPointTime 'RecoveryPointTime should not be null' From 7d9bf865eb54c2ad9991bb40f778d39793e35059 Mon Sep 17 00:00:00 2001 From: panbha Date: Mon, 27 Jul 2015 12:42:15 +0530 Subject: [PATCH 49/58] recoverypointId3 --- .../ScenarioTests/RecoveryPointTests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 index 38bf77a7d7c1..3b4edbc3aa77 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/RecoveryPointTests.ps1 @@ -40,7 +40,7 @@ function Test-GetAzureRecoveryPoint $azureBackUpItem.Location = $Location $azureBackUpItem.ContainerUniqueName = $ContainerName $azureBackUpItem.ItemName = $ItemName - $recoveryPoint = Get-AzureBackupRecoveryPoint -Item $azureBackUpItem -RecoveryPointIdcd .. $RecoveryPointName + $recoveryPoint = Get-AzureBackupRecoveryPoint -Item $azureBackUpItem -RecoveryPointId $RecoveryPointName if (!($recoveryPoint -eq $null)) { Assert-NotNull $recoveryPoint.RecoveryPointTime 'RecoveryPointTime should not be null' From 03c4dcefaf35003df8429040b0ef64d3bb44567b Mon Sep 17 00:00:00 2001 From: pikumarmsft Date: Mon, 27 Jul 2015 14:32:41 +0530 Subject: [PATCH 50/58] adding update protection --- .../AzureBackupClientAdapter/ItemAdapter.cs | 6 +++--- .../Cmdlets/Item/Disable-AzureBackupProtection .cs | 2 ++ .../Cmdlets/Item/Enable-AzureBackupProtection .cs | 4 ++++ .../Cmdlets/Item/GetAzureBackupItem.cs | 2 +- .../Commands.AzureBackup/Models/AzureBackupItem.cs | 9 ++------- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs index 37b0ce677848..8b5abe7dcd1f 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs @@ -57,9 +57,7 @@ public IList ListProtectableObjects(CSMItemQueryObject query) /// Dsiable protection /// /// - /// - /// - /// + /// /// public Guid DisableProtection(string containerName, string itemName) { @@ -70,6 +68,8 @@ public Guid DisableProtection(string containerName, string itemName) /// /// Enable Protection /// + /// + /// /// /// public Guid EnableProtection(string containerName, string itemName, CSMSetProtectionRequest request) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs index 08ac73049807..5d300ea808a9 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureBackupProtection .cs @@ -55,6 +55,7 @@ public override void ExecuteCmdlet() if(!this.DeleteBackupData) { + //Calling update protection with policy Id as empty. CSMUpdateProtectionRequest input = new CSMUpdateProtectionRequest() { Properties = new CSMUpdateProtectionRequestProperties(string.Empty) @@ -65,6 +66,7 @@ public override void ExecuteCmdlet() else { + //Calling disable protection operationId = AzureBackupClient.DisableProtection(Item.ContainerUniqueName, Item.ItemName); } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs index 66a93e5841ba..1c56ca639115 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs @@ -43,12 +43,15 @@ public override void ExecuteCmdlet() WriteDebug("Making client call"); string itemName = string.Empty; + CSMSetProtectionRequest input = new CSMSetProtectionRequest(); input.Properties.PolicyId = Policy.InstanceId; + if (Item.GetType() == typeof(AzureBackupItem)) { itemName = (Item as AzureBackupItem).ItemName; } + else if (Item.GetType() == typeof(AzureBackupContainer)) { WriteDebug("Input is container Type = " + Item.GetType()); @@ -61,6 +64,7 @@ public override void ExecuteCmdlet() throw new Exception("Uknown item type"); } } + else { throw new Exception("Uknown item type"); diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs index 11892fbeb6a2..cf43973ea308 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs @@ -100,7 +100,7 @@ public void WriteAzureBackupItem(List sourceDataSource foreach (var item in sourcePOList) { //If user has stopped protection for some datasoure then we will have duplicate items(po and ds). - //So in this case removing poitems from the list. + //So in this case removing po items from the list. if (targetList.FindIndex(element => element.ItemName == item.Name) < 0) { targetList.Add(new AzureBackupItem(item, azureBackupContainer)); diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs index 608f2e63b008..e0557480c178 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs @@ -36,11 +36,6 @@ public class AzureBackupItem : AzureBackupItemContextObject /// diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll index a97e848572eda9d6279eeb46c35a8ac2e8373e80..b84d923cefe6f2ededb76493f47e2b0981c81e27 100644 GIT binary patch literal 192000 zcmd443Ai0caW*^}Nq5uLGUwb)`!0>{)s<~omJaeJ?>5+GF&J!YFa`rQ*ayzFSv(rR z*kBg3m^B1LFiY5D2oS*RI0;KIVF^k2jLnj;By0f!gaGD$->UBE>T~93;o<+D?>^GZ z>FTQPs_LHZs_LGeb1r;oGCxU@1^EAmKP1VAaOdAXxgPlPEMzZPd;5~){lj;z|Ioa% z?_B@j$6r3T?n#~Y<2sMJa^0gJb=6hvtJht6*}Bd(SFOAJs&%K{|GafqwjXoZj>U^d zHo2l7a9Wa_J#T(;*B!S##Mkz%BwfE~-l8P=UYaBW3f-{)T&~0Kb>uc#CclwQzWL|x z$tB1KoPYC^ea|5(|Ao6t5`@2hnm<2zD1V^b2T0LOn7@7VlTjpZN#`f44EUfw*Col2 zK^j8(Oq1Sm^<_`H8tGmC4rY-jvO2y!8o-zA=*)E<4S?_l9!1a}#EARQTsu0KJ+Tc$ z@|u8W(ZP>;@J?p7{aZ%8;*Y$g$-?CQcg{lVk*i%`Z{Lf@C^L znn%tPzL3t6v>xbr{Llr6*m z3H+Z~-kJhw>lU!zdNnUE=nR3X(P?S z#$djfsKl9Df?p#89WeN$wD=vkX)gsN8R(!$Kz?r^X9(op3IegDmfr%>xd531IeH!S z(0L|OWy;*N;H`5V067F1QD{M$HW(jhujZwJoH57fY~qO0I;^}2)KHSg?c5qypw-$E zHlUs^V$a+ib+nzkYN1ew6~u`LMbtoRaV<|65&H48JT6fh!fR-ams;DWODdn)Iisrx zwp>jS1otcA^0WFNecmgtY@N! za?Eo$$(|UvVPPFMpb`dFeW$sN0=!n%D3^yaAP>fC^j;CYC2I;nlu|OM=9I>|3#`XoaPuY zW|E1~yFUmS(}H=;;j}Sw?>Ok@Wh06`F2pEoI|@r0!iq2re>D5 zZlP{&Mm??9K!;RNG@zm7+yErHnq>`1+DGag$c>~v0)UB}d`a@n))>{y=8`m9;^emD zau9<$$#;PSMW+Q*?PHKC2gyOf>$=ZFB|1#*9fo4M#HAj_l+w}f27P-EE)zMLX{Ncf zu{3WX*<99Gmfr_IX7|tSWjaf>HB2@}_%I_M+Tk{cWLqHA_5N_2a0-JF^(KZr7JN7?CN$=DoAv$1l7%+B4A zCIia%Sh+~pCpe9k(0yH z99fhW)XiY~dQ?YMNK!jg`*a`xA_~F$KGOL<2M}0B7{%3Yzz{BWK@ZYdK*~|zOnd)4 z7TmA3Sb2Uw*5j&Pe9x1HeCcal<$hjT;?nK2g&_Gxgee`|@kLCg+vhmUdsZ|Tq-*ch z7L#t9Ey&Mh<~4+n zc_3i?k2xuUqUY__hh={LKokz-=84 zgtwK!6>VkkthTa;Lt?_A#u$!T35TdL9E=bSkrcj#hB;HxCTf>E98_s=m@+tyA5?E} znCis=D+Y%tgEON1pi0H@axGFgvSawD!jT=rVYE{&WXEt!J%l4WhQp929N94(<1pdK zj^P;22}gDehjC6gvK2lb{rc@_PyVGjdN?FV(>b&oMl&GcH~PjvNx|^@sr*f0@cT9V zO#$%xr5ydpG=9I5zsV?m|2cn?IsASbf0H5neh+_>iL^7G(!Jo%acNlG*mh~Y1I)1d zC&?!}`|?ZJHyCB+mxl4h6E$!qAd|Cxw zXu+3P;3W&j@<)TLqPVWgLeFDwNEejsIO)QYy*0(N&fc8nVvMz+oEZ!+ zqH{C3+yK7om;oPb=Xc=FzjS_nnJ5ws@&9^5Q;)9#&(h9I7Sg2qf2^goFJ52qxZqF8 z;~&-9)Y%Q-2jeuJ_4)Z@+1T^1f!@-wd*`ELFB(JyVgA(wjKF_jr`W@gAY^Vh|B39jP2pG6-BAK7GcEh>f;-Q19EIK)8j z!$I5HjS;kU6ffI(*@_FE85ih9fRKUS6}%NpV32NZ%r?$G%m;cmH8yFWmpDGq`*lqE z5D^d`=!G2)$Ycdc3oUaTkk0Rc-WAqe2{@bz-b`3mpap5#a0$A?x@1ejx_z-s0FpTL zTBL$ot8lB3DiqCC)dTy*hENSw=Z-pB6V|o3@WosJ*Fr;B*FtM?El->J^OVhx>d}De zDoB$SyhZ_4HWK|}YHuSZ3qjb10<`^t$}|G&Fl-2xloEm^`yCU4Wl<&s%WSGVs1<=z z7lK`lytD{cA6m5`Sk@yUSfU{W%bUkTNh2iz;E(mhAy`sM2$oqc1napWkqf~Rq#;=T z@|~kA1S?r%&2#XmRhmlg83M1-pDluyRETJW3ZV(+4(5d*EK?eUT}KuQUe|pVI?=~+ zFM@O3@=_59!fG8tzZ+uOAnf+Wb`8SLHfA*lTWSz?N1E*@x3HoqC;DuOIJOtcSE9u0~;ZWIHqpyF;U}JKD!n+hbZ>!BU#DY2yeNg*`&cbvl~WDC}$$g*`IO zjx5)+_C77nynG*OAty{Q3cEoFjGEl6wD&f623 zRLWo*LH_|q*V%(nynQ7~8y(s{I@C*!P%Zw3u6_{0itVd_*W5XSmT$EH&vv%kfGket zFkBBbQ8L1y1KEQ1lK@SIJE!=vxvso@akj9x_!HS}=MdN%K+JeSHqge1GLU2oI~P>6 zgV`Wx2YYB|$CGSOg3HaJY#+NIf2&@Qc|U8=Op zK)bAs1r5+b&v#X{SONiUR!f^HZ3Aj=km1e)DAZBzDga{r(SsxMyv)*4vEDY^S$0hJe>$Px=O* zDfaHpFRMByvq{uB*<0rr%v`N=YA~B>V=Wj}I`W{X<=JwOFRvwEuH-8QvlUKHjyx!9 zWwsLJD{IMDD*39xY?afMBM%B&ovjA>>RR&EO1@?=TjTWw_QPoA7fNKzIs@v77fLux zaG``&w2uAlfCRt3YoVlm>S1lwLJ1Sib@y~a8*!hHl4TaXt{QMf!IjuhF`N)HBCu=CQ zP`QRe+qeNYjSA-)3M~#SjywfarI<%pI-v}Wq+n8)P7p}u(g^|i(}3v~D7Yu*ziC0C z4(`d>hWx|WlkLIjGme=+3)0j$W@JJfv%Xlt%P5IMFF`7} zwQ`t*RH3PJ~@bQwYvGQnQRL@F3H|zU& zc3XHjlNO%Fq=gL=@?5B!rA6?XuS3b+%~CL{iQFuL>)os(WSxO#l;t7631*h1Z$atM zOVImjbk0=B(t;S)1FPQz!$E*#yJ9coU3ZkC!B_*#xtTWmPJy zcff9;0&k}7s!cF<1fk=iqk^c>J7D!vs{^L$6{(E_R=){Gr5-JhBd01gHo+ifW;Vev zFWv+r*iP!YO)x5Vy%@|3{ufi~e;q>(3SMhA!B}xA9{ew@L+HExuLEy_IhGYoNt317 zvhsK)RdQ^CLHJN4*G(`)J;){)DXm~3@g^84)~TrfCYar%Fxn0JDdTqZ&h)Tk)J-rgGOL?lgzvHPKEgiX>V0w867Neu zCv)^63Toqx-WTt&K}VW(4nvGOzX^tQm`yN2Ro=D}g#@$hOjPG5YT9<3h_zoG(6+1Z z)~v0v?U?A^1jEW{*^zykYr@Rg(!5=pV5EZ^Os1`2C!1iT#iZMIZGs6I)g~Cf2j zjUCc&d67XCb{koQ-NvNaZ3y7gZX+OUdBJ8f*lqh5{C9TS3CKSTyX|XWyLAF&Yu$&J zUA!EDiv+n&LRn}I-~QYj07GQ%QZ&f5&Z;{VD0t*f!ABUb_V%Bmxdx9V6?ra?7Y5M##AE?%@nEN*2?}8QiZ0bo(-{` zXRu5F-a_xHD^Uy(wZANGu=6Z5*m(wOdFrzB3|0q=)6UK_P;HMc6{KndoJF8xTu}#s*|wYy%4RcuC?K8}Pm?t5V@1+kkew zp-rG828GGJ4OlO=+JHvtgW7;9^=SDZa;j3p2AptGe+naJS}-rR0R`JhU1tNT-1TBG zFW7)gsSS8Pa!~MEV*^@oDIRPqyD zf`!C3pcLy=)ZYd?o0UiNOK5NARW=|Kv;of%0;8oa8_+815OqTvP`g1tWvC5!I5MgY zcrKY$8&LQjEAKDt6P}-h0YMBRu>l2iGC+cYPDf1IfV|h+fXs<(K-OVwz@RE`1BycW z+kl*;wO<|32CVPatgW&Endr6wS-G_Vg_&9#P&&A=0h#Wx0j0&H+jiN2A*06z{Ft)= zKV)n@*jLH5c+6=7e#gMQ4Y&k082=j^kYi(H1D+3LV&tR+uaUJ!K&`dMVy(4DL}TqSn+gib4%Xfyke3$W>aDn1YmaEK_IUGnV(k%t zp^)|TvG$ndtUb>SiJY}ZkXn2E<(u-hIN~Q+W91`>QTQjTpSAY|Jn4PkZPOxn&961q zo`P9TWbF}LZ|&{BfJHcyE+|(`IxUSD2RG>`4Nbbo^1lBexH7BVukeD)ngjcyg*z!=%IbEK;jU$Gq62 z6Kp4Sok^#1*NeftVA3(ACf%dRLBVT{NoU2ScrfX-4xv9hlkRb>XiA!lCf(&ss^l=~ z@W>gHj;IGQ>7=xRg~TSE6zf#f-=w>gl}8gnXm93KCLI$r=^iZvMoV2LomJE!>V_tr zc7uM(xE=FYdRQ{5N%t5st0tZBJyu>O>=WK)(g{dRI-;O9-e}VCUT@MdCo<_+hcW4b zs=P@j3h8gsaW>U{bwHD@zFV`l%A{kW+oWUV)}#|=YE3%n;Krn5y2qrG7L#tG0%;O~)~qHXUbH+H}+^ zZ94W$Z_~->3Y(6+!lq+VZ92?kwCM;4HeK~f8}{eVPcX9cEDFBUwg}xaEv^7^T0DUy zmmmVAZ?kc|cpzcC5%}5MUD!R(_t}Vx_t}VCy~y?r|VF5t-zo#Hkp( zhYUWfn?W>5-#6{3CoIiqz1S~(0cThk-m096y-J@Ee^;XJw77~~KE{)vEU!KV10yEd){v} zKG>6?@5AuHR)Mtj26|qv<>ghp+>8qX=4o*a%IfcfJ*6iX&sOY%Jq;+BNuSPJ!G!n0 zuISl=K^*UcK}JODuLi{XU>d(CKOVxm(t&#o|!_fjQ zNYlpNl&%f*Tosai8hx>hJ3|}}ky62}U{2%eLaNZz)Pr7Q_h}d`tPe;; z;{!6A%@LXw&$-)NzaM#N5w701!)Vcaz6sIb1M=qaP|`?A03H$6)5iy7mh%BUHzaaC zAVKN_@|Razmk%geV`WKs#tfX`t?Q_^Jg0dHhdC5I1)anSgHL_LTPD5VuFB=!NNSf`@?KH#%h zc{CA)_GVtbj~yFbfC>75*9n2qQkM^C6?KTZp%19tpr0~s$NZNbmW=8HKAX&{4=8+( zmDdaVgm?LX0y>%F7*S9gZ}b6qulE6&6ZwFw!}x$fRo({_h4l9UIlpVaI-n0&->q3& zjMfiwLYM9aN`3q-QxpFi%GZb@&Q9euMfBYejfLB{K5EoX@X6|fYArs z2IC86V)XYA!1&+zfE*knAMlZ&*a$n2=bLbXqYp@J(g&oCL?4hdt(+xAW52%ZKbf1Up!>}zc25D<09EjEgFBvbRxQK0e6Uypu zTfV3#*VvZDi+gg{!=iKhL?pKjw{sva{`fkSHoTNBymr9Tjl?fSZ5Rq}=B;4D8?pO) zj9B8tM(hg#@g}Ppu@u}x)QF|99zsD<6=A7PvRdy8fYW&&GP~XjeHq{|9(Xfmtw0OX z9LTKgi)Ab{;?Rzg3W8ZHqzX+05CB!wKFaegano05)4g?ozM_W&^Ujc5ExZ;8Ru48ho~DG=h_$gDdTpuM0!{< zs&W2$GONb9@I6-kg|JU}ei9@Ldu{}DGC+cY+K5TxocDU;oH>zk&N_^79#rLxb5Tft z;rhANYX))=xUB-FHsEl*J?|R<= zo+ucj`_QGP@socTc#?+#)Snyb3V>H?}!P_{cVYJn%5wi*3${gtj@AN!y%; z1#NSh3u2qokj0OMCA+FO(q+ifHg@Wn zC&cmguUfKi1;pF7cyeIdzO90!g_il3fOM7*^w_rV0vxj(Z^pJ2XhE79+m>ue$hI$* zG1G`cV@fKxwF-|4sX|jz&xY8JG+4&Awa{SOT4=CWEi~A+7FvsIc|u3C_O_)x8v4`_ zv_RDweK$2)@ETd8Y^3eW(n1>RRP~7DY*VU}Z(#_1ZyryqYyzNG))QOVq=b#2Sppw*#xPT&0oF?-$sGnhl{>4C|P4ApkUaK z3jM6?J27naJ()#|;59m#MZv5lva$*8V`aacMZm0})fkkkR<@Q#3~OZ{-8foLX4%!) z6;5WMG-Yw4nWd%ZPV7B;GRq!!GRu9^>^`LmUM~mpf|<&c znyK$43k9$KWEON?e=>`em+~QetaS)|w}ra5u~$!KIks_ZbTZ3vX?9%sK~^*+ZI))o zmhb_+=*On)5GwjAMA*`TxN4#vmmQ}kvmB=nZ5;1TW;tHVbvim$ zPi8qbI+^8!G&`aEYt|mkfuY5jm+xbr0w+w+M8(q>tI5rsdoQN>k?yyeIz;90WESlR zeYLS4kR31=baeJ`<=`}@}pps#V51ulapD#2SX*>=TBxi2PN`k zmLqY;$t*8qTMTzT=*wp05=T*Voy@}Gd4xbRcM8e%WR|nZ8%|fbv!bm%nT6WuKAB}7 zNlE+DinjJ-7DpSM%yNRK9UpZ1Xx5(0;%FD;H$lXvp3HKbr#-f!tv#8=(JszkL|Q$W z{`3dpp8299=VXaOx>z+0*U zY7c2~+*gOR4B(KK-JbR{6>aS)EsnN2rDXu8wCwV<;S8SI(^edTv)&JBX8Y(OQr;opg>!T`7MXK&HfNhr=jPrzagNSrt#iv@ zwxv2pN67E0j^WvwZ3X$(TJo(*o)2bub&igZhjVncW!pf$t(JV7l1~q2)73dTLLSc1 znaO5AK2u9RqvYEMv+Z7A7+J&I<9&XaVS0UjDvnk@Ju{uD59ssP8w#wg^7)x)?!Y-Z zRU7df9airfif>yBJKpP$QN?O-ZAw(8t=oSD&(V=tP|Tq0i2S7(hx|D@CSyl_Gc%Iv z9GxG*QkaM7c@W?T@7Ye+>!CY8P4r_;(?AO^o(UXg=RpoxN zC)cjgF}FR3!6+`?uF+K}?WgwO^{ml-8s)*&3G&OOIYU^2Ftl;jJ z#G%h96@)m3kSa7a^=yb^1_sN-F)TF1F)TF1CM-0>F)Xwe*YeaA$FQ`^t5rV()fVbf zf!Dwp^%QKuZVHWx{2g-Ag4ZZ2LV%4PuubH^Au?ju=!j^d2h3)3gr*JAgTF^!T7;{Q z3fSlY>yhXI(GWf0&ErY*fBxx1M1osIc zdtMMqFwZ>b?N7(AxDOkXzW+@j{&)aOn{1aLC%Kg}VA?+W|IG$Fek=34zp~ zjik*sTK*F`)n>y&9Re-VY`Rd#ym+BbuwAp&E!3&p^q3&x;s`yx_gBnGAJs^pw2U)0-(h3$5FVsn~PEY+8 z>b}UzqgggII`i^a;KPQwDOu!r{oM3w2*2 zv${|xe2ZDocFvME-2PCl$vrrdQ<&Abx zNUzb(0%^33BZ?m?_XlJ5(p^lZ)WM^%(!-W}dvPWMDV=uRuGS-|U9U=LK z|4Nv&m~`8&g}RVYE!1I{@oRObF<1sW{515cY5e3LZF8>GO(Cys;F5{UYXRebW1Dl3 z?^&zc>TGk)CA7_{Puk`*0co4lY>>4&j>WQ8$KLAK>SW%4wNCzFtuv|CItDUY>jZ?g zI{$J_*Z0D3LMG;je+Ft={EJ-wm1KA!q!13Vo*0~O}x?C&Jf;8^P|u7p0V!q^a;f2bk( zRI^kh?bB64r4oEk%NC)|;EzyFTJRbkP6UaR!M7XOK6KC(a-Nn3!2l>piprJ8 zy?4KC6tWe}Y@U=hPIha}CoB4RNotgaQ5S2?Csk|BKV@N+ChHxo*HMozrwXgDfY{NA zHn)y1l%{gD>cv(^%ZP0pty3DO=vwosjZ?!~vx{E5E`Bb;oe0rLlUaH{raxgD=T1=^@^> zXX#q=S-RGImS1a@;tH11JTqy- z>{H-`33^#S7XqUuH;?Vzim*1;nysb|Q8`>|){f9u8!toQ>0t@kJUh+KE`LF8=V0;; zDC1-0e+&PF=O;ll8Og=X5|FrAL_ux5(aqvLcC*+q_8`Ka%zSUe0mnqS3u5@wdO^DXXp5}W^^@KYlh9lwPwuJTx))-FS~xNnL{#G)fVb< zjV?7~D24|!-1$I7TD#OtQY^g=>dNU5md1v3rH~(1h19M+JNc`xf-JySK``bE>2E61 z+NEblT748`0X_=yOh>wO*sqq?E;>8X=$jzdInw17Y3*{eBW>zJyM7bodLd<3c(UuI zd%vq6_SowU$7XhpH${ek7ZxO?1D;gXS-VWlI`J+#zA=IcV5BLXZ)T6{c~?IIt5?m5 z1WVViXYM3^`~`k!kD3~6!=fL^Cb2sG20*35dM;-_if@k`B8wMPEY_}QlSQnV`W0<{ zJOpkin$bOCkFLmT7quO^U)1KuLl7_t1Lli^ltX!ipSc;aqzhJU9f+^=C*D&TbCfib2^>OeFBU&X9n9}#2u^T zZzfyWbZ2nH4-MP1?N~qG-ZNcrK;EvKVP>p8y|kC1lAT5+=W>RcS(}|J z(^K>41S&uvYalyXYG}VjTj|_t$eR79xRuTgF&p5>8Tljp zmq>$`pwXccMBg}k|c1ul4p0pzqlYtzKXJMMf?Ts zpZu}j8xVUr6J>wFz+HCo8^HMA#BAwr&ClNknWn>j3V1WJpMq{3W484D8M9^Rg)v)N zx`@!e9aN<_Y>3cOM~KiesS#SZ28_@WkiQd{Wj@E&F&jif|3^5_zbVTC_jW-d;$D1z4u#gtN z1AZKD`h5jS3oY}vfYg0Mb{=a?3*Jn;NuUL3YT`{~YbWCueX-i_g6>R&g@~S@gGs|h zScJZ}m<@4&$6%Sw2o@SPBUoq%Bw1((I$3BfZfX>;sXtH8L>p+(NlMg+QA)KIyhaft zwiI8gkQRfIxYb2os-RA}aw8Nk46RC>pvdZ_im05w>Q@eyI(+XS&cVvT169w@TSGa- zIaoOuh3d=sSSW`$2P@|t{mS`=P!4epR?eIImGkXT4smMAVRP6BpKB)fyu6hGv3E+O ziHIh`$DY6rAD*BP;hT@VvI)*}%;Rue_|2<{W%3t1ZBlYtIX zO%>t07f+av@CEI!M)RhHR!0mQ;XAT%q(=CTY8(|Jd>rBVVN!Vbi1++2QjMe1e2>O^ zrtf|rX3Df+CcaNv`Q=MASa%v}@+BIqJ&nxrJHIOSu5xh@8!yqcyx12?V27FRC7LDp z_)B(-qC2s7X@n2&&@i*PJI!{NDtNsd%nK1drZmDgKo$yKeS{Bv+ei4Uyp#_SKCMIO zyCZyjVFogcG+T{U6ycLsT}D~aloP#GE@4tzyplm=H>f< zN=}$ygl|X)jGCO~u=jiLIuPNrnmR<~Fv6!Dp|3U`I7l82N64nUxid^|=kCD+tBjA8 zBf>x78sXyrCJ{aXoeXIO1+@{A5kB5yUM2%ig!40l3Aq&B$cNUL{A5ZrSik>O5=hSbLO9O)trXJ|A}!y&_+5DBS` z<~h>EO1cDrz$GpeGTaGKklJV-NfAxdXr76JEJGp7To`1y6CxnBaXnXm6xY)b$Z#h_ zKWgK8B)t}m-84S*3F1TV%1%%p8t&*g7^5M9gaFLHmFe{;t$u`Uzggz!r=wm9If)hN| z^Bl3KPHE_4Ibw#(eduGtgg#beD?q!VmUe~u-z!18(uY1KOz2}(whFYXYH3#~?P}1j z_Mwl7P6&Oh$<}~&O)o7&A8U+GPIRG<6SdjUt0pz{q3^Ev(8r0Pg&6uUEp%dNp%beX zqJkxG%9ePEhCU2UpH>Y~k9FBPu)nUCeW-k$ioPCweSJ*~dqcJXq#J5UHz?^wkZyD# zkKs;;c5KQvfpk+X=_ZYKYzFCOAMU_lR|z@)w-VnmLLMI!b9|*3H^k0gf~=4)(ZcdSPU)W`T2XnKA89Kwj7D) zk>}9S0B0aVyF(pVwlue%wF(?SPTLA`+;dvXrfedG`=QF?Ya>JMh+@aTEx)87>LE`vOjBfpD01}5{niV81 zw9E{U&JpPCUB|Xf0uE1%Hxr5xXhE8qPz>3Utv`LSf>T=(hfb+f5TY;<+!}|U8uYhnk;VU5P zdEdVbSH1!QM^84>e-MLXS}-qu1w^pNOA^<-0zAkOY9y)Oc0)DMXt)HP`Ui=1yU^}Vn-k?yq z>&0MR@cNljuYVOeD0uZ=KRWK-VJN0cTC~&B~*>CbT#6@_pLg1rv1o*9d{plAELa z%M-R=9HMUc@`QGSe#*EVjgTIejQaA#S~9CIPYB;*jPF`hyEmoSECbMlWi z=kP}`4y-Zv$}{(OWjxj!GDg26Vl2Gqbth zxION~#U6JeSDV`Zmz&z*k;MD+5t*Ce<2S>eD*N;Q1}M%J_51UMk7|GZbA0Xo)sE_Y z0@&?=->t%LPJVCo6oy}HEzIVA>-Z%u_$6}1@9)SjT%ed=JUlb`DZHHO_(e#pn_uCh z;`h0}_8xxGO#;8$gx_iM`zB9e_{Hd(&Hdi-OI+|vAwxMZwE?v*7UnO2%0k=)cP2D-d&w=H%*;P8NT55k@xKp4pRoll>;ltl*1Ht zr@YI!=Ie#|#xh|S8GNRQ{}BiPnN+@1-ebamlBN0Iirn)tT4Qz{8Q@U|=fOpoyA%Z1 z;;T*{6+)#`xm`Ulw@f`uv7V2`^_)q4N+XRFrxKvvZ$~AGbBqFcs9JOFxn_9 zTyVn!Q{G!?iJnDnrMV;mhG*s5CfC864^u^<#K4I8628;L$QTOc@+k7rMT|VX7Ag-QVCa z)r*5}Zg80D#X)y6I8628pt%hWQ`GC%q#3F{9s1f2di&aCRiBRf+FS)jSO2!_Yv0u7 z?P?=*55ogfhEGhO)IYj`!C}haINbu(;4o!y_Gvk|862hz4yI_GpvUEmOVnJ}AOrsu$n-L#|rs)q%^=XUyD*go#K2x?W?qFLS)vqlsjA)tamG|Kh z4pRmPU79>!6yY${i*s>=!<4~sbKN5%9HtD8YokX-I8628ToU0hWpIX-=SM|2Oi|C9 zL{-sv;_AIL!e`2q>2Mw$;V{*U^Oy*SsXqM&LjiSrS%lA2pZcwmY=ytkh|uI%L@(#I3E z5;JePc71YG4^uU=ZX=z@`sChv_(_n;&v{Z$J(wmaPbaE}sRPz?O>aGsJXiPBS5}D^*p_|o=Bdj^{eOVs2-+z>WO@&Ya)E6di&i|A{?d+4)qT`J~hH&iuFeQBC7Xk z5k6CtIN;#?cyFx87wL^w?K;_Q!bm@+tSZYv`krh0Ln5#capaGb858R0Nx zaGdPVig1|f#knrRVX7DB*%1y?y*SrLI7}HFH%HzO;V@-z9M8{*aG2`Fd2WQm6#K~y z(w(EZ7A6||)r}E8Q^bevNAT>U_-=dsc@aKSy*xZW!eOcx=LHcCQ+=Kzn18STFZN}pKP2aqpW zeoS|Ky*R3qsb0Qb65%k_i}TV5hbe=zLG^TVgu@i&84xREbS9zZ!ko93So zcr4Y!o()dD5QJW_Gq5aBRIS-97hF^12Pf1E~y4mkID{>D*6$UrgG z_~rV;TcUE9GIhCm=r1E2rh0MS8sRWya8Nb-!`mVprh0MS9^o)WUDb@&uFQ8t_)PVd z`OXN3DVC{YK%^5_=DQ+%rh3bKcZ9=KFV0^@I8628+!o<5)r<3<2#2X&9E{k;cW0^> z=dU9irh0MS7vV6~i}U^nhp9eobcwe62O@l?`t*Oe!t5u16X7#ucyM#b2O}J&432BZ z4@Edk*}3f>_*~#^6d;4Nn%gcF9&&829B6+5D1GKOEY-$y+g|1U!%>|~_40Llgu_%H z{lSf=K0XrRGiAzj`uJ#s!<4~s`uJFc!<5y>ozw?*HFfC&VFK`wV^7vV`-}bcfn5l( zJ}y(862i;oBSi&eP;Iw=ig1`RI8OGjML10L z;{0=j!<4~s&&I8628{A+~6RG(+nJrCcE@R>4YUam5JE5c#QmU%^*Uo5STxY0%Y z0XzFb?FQbyc6#`BR1Q<7t_@n(cOo3742~=3-y$5Q?DP2yKA)GGewZeBHl6=)nZTp| z`>3k_MsCH86*zJ$q6m!C0&yQBVlT`uakX~I{qGUKOj-SrwCJpAkM&Jv`X4=IOm{^}ec6(Al2m zv>o*K1g+)s-ll?~Nc{JiL$J3;lgv36`f#{dqbD z`s^uD+oMYb8c-^CQQHNt(fbbs*!Lf(VR`>Sv}O)QAfkEyf!S1UXsA_Sw!NH92on!g zg{yzBVI?xx9-*I{VLkHx1JUsQ18*J=C21k(z^o^J|ACb9{sXhz`wyNQmg3%jAV}YT z;4j||y54_~tg&)8F{A44uMkAbiz)>X48s+i4@86DVqmgoJHQ$0? zboVTV#qK}uPMrqs0N25`ld$5OvRf?*A0pfL3)5|f+g_BL~sKO2L zIxdK^W?2K?2&fl(2XZ5^j{sl-yJwS`=2&A)&pjA#jE8d%RP6B*cDNUNJk3w{V((r^ zv6A45X8_T0}4_2hvit+?jG$n18X3I;sC|>mCX?}(m z{aBQQ?OVvyS0M26ubz9bLeD)|;ZHV|;tH11T%I;ox^oX!YPn8F%k|uY<>F9}ZkJ zxP5f62X}TN(US!5+9cIC#5aBAfo9R2`(tisUx|tr4{skG?xEiMB2<*jVVJ@Z2wDJM zFbDnsjzD<0r>#Hal)`l%fdB^{bq{wgt4M2)Kyakd5eQcZsh9eis({*q5Lf^mvSIUr z_!@aZd?Vf^Z$sWD$5tw&4P$B`(}OepOX6$vb!e9ICA=iQ$eTIMYz^PzAbberplL^v zZ%{*8ls>`!l@sZJc%();JhrBNCVu&Hcich}N z%<4U}e3eAlIh!0Oc&9l+l|jYHMO2w`&T**tWXEE@(<~2(Ob*%N{430K?=+i?(HxFH zDwswcCp`vg!F}g2hIibrz`(b4yuj1;X>^j~4cuiXR{+NU zD*(XsG;g=gR`YYj670LkXkd9Cg_9!RN1GzK_BY74M@Ux-e48bcgp*CU9a&==!~gC(%ZqfAtuo!Y))GW1lHWUIB|V#9jxIbHOtn zy=-pYd}IvFFNuryC5T+TFOec|4uOb~=z9@ofs_2cyxb2LaF>7G^Ftp;-9Ok@GJIul$Ssqe+5}4gX?wTATvr@YT z;)3>dXWpHK0x^)^m$!lmJ`y-zHFyvk8XMGuAddGS^hXH<~1&@xX0q_Z5K z-0kup?guy;h&SUw2(%zg`&B(21lbY~qA!*)pNYdBAQc1;LP!;wntC>%dAf)_?H!e+ zZ)nXo7A!P)1r{1!w6@S%T+7p@{yaSgqpf-nQlh>keKs{(@EUmu0(d!x=W%pWj3xs3 zS{K0j5!AEz5iH!kM@>rOM=+Zz4$T$(h;xva7UAms1M5ey9`PfH20wx~k0*Wv0brQ* z#C`-R#gAZ?^CLVrByxTPLFz~Fmv7K6KSHv`%5#ZPJzsy6AE8C?8u<|lW;Kx?L2w^G z;!GB?MO!N|ypJ3nHxqK}uPMrqs0M`KgvN8F!2KW*6Vyhov z#5R7!mc|zKBepiS20uc@-daACoT}Jc(;V}siak3>v6nKZ{#r=sr^LzB4bN8s#b^&_^cAFiQkpYqW7hc* zvs$jx(Tw^LGm#&$Bh7Y{4`l7pY!X_WdHFtV@q!8Z5f2gqqb4^C?VW>B($zB#Q91M@ zv?KJ@#wKwn4@b!65ovZrc^Xtw-O~ImPn-xwkKuNh2VGg_)lJs4s9PD>LthQi@zabV;?E!r{Uqx^V z$7_#HbEHi@iAq0-02>3fvh88%j?k{#```LWgw@{8Yi38%DQ1l6f9ZcnzIpID=s4|zhHYF<4_Rxa0bRT7Glo=vho5N?W+((nKCcj%MsJ_v@ z8y3SP2AOkEtMwgk!Z3Xqrq!P<65j$WVbsR|M`JwuFlbi65Ai;wWa4rbVEk`R;d_2WHzT+?Z_>P2EzT=zG9!~+Elg+`jcsQ7A zj$|YB9XTqnfhOF4v|WO>fb?K$taU8tTK|m3YkirQFW`daON&RK2y{Y@9T;)BB(-!& zwIn6E?T>+3_EY5VeIrV9R041Rr)C=Z)9UEkKkC7IQ!U<4dhix4t>LHr^B%k>RCwMK zeiUSbDS~Bjv^o=>%W5rcv@xolFmb#mOa-W7Vo&&yz)?tAXqnh(u%Pob)Z66=KN@g! zH{Q&VV*)Km(|&D_CrsswC)^jyIJ3lIf0hb@CoH52O-(%;psFrnPkTq@2^(7D30o*e zQs<#sXz+wBv=-O$)a40V+V4Z3>In-}J>kbtqXn;#Crp6#bE!q~b4hCbTp}7jm)TTc zXpG?JUWPop*j8P=|7!hQ)+2r{(ctIu=JCYOB>>L}>xunbQi`9;Ea&HXZb;<(T!Pfk zVp#uoabvOize^fR zg8$1AFU^*eSMk38B3v6w()>IMHPIZr`*~uhFtfQNZ7g;E?@~n{FG-Ekwv&&>lFI*m z919yOAJ3b9Oa5~HObgx=tRvwkbkLEJaw8;RerM^jYPev2ejQczELPzM%8%5MZ3|?~ zuOYMJ?m7jX zDI7aCs`=o0u$9bx4|tE9_79m{h=Yjn$v6?)ag_zGz8-Ux1+KEd)g9mpE||8zG+1+Bu=8C)2NaqObQWe+ zml2jZIkwR`2X49qoyMp}iUGm;Is#ZI135^m-iFs-A>-u4i_WKlpN*VSy0&}5_&Y~~ zjm+IZqUYcOwaBCUTmo*yrSofU{dgXe&zJnM@(PfJ;RVqlc18Z@05dbv`ZL^GZ=UDu z2|LX)M4%HTE2$3EuOACEC}hS06BOc7`cYt~*=#gJP)NsuX89yCsAEAh%^&Q?g8kqT zFNY$t*-RT_E+{mn=x!`%YETFZ?n`*6{&<>=J9+Enpe{mCh$#&UJ%KC~yh>1L$5NO0 zJapqeMS_04cPX@l*oRes3arhfnwC<#Lq!vf2@MrZHYTG`(NvmEm2Fl(CBqw+$Dhok zDr7R{L0>vJJ^{6-1#vZ0gtMwOR5YcbqA4FLlHv-M(ws~iZdDme*;204+@ywzCZkZ1 ztbad|wMXVw=m*Tp_pxJv6DAlcx{?HQC7}AV5P)dYdusKqLA=VxVxl<&AFCQT=wnft z{yC-NB+5No7=Vuzp|T|`D$~}-8m5mWeNI%H4d*{*Ic|y0WDMmPT_NH0N&6utTKpZD zmC&Hcw{W*U)){z$(94sj;BMhp!M}PZ2$wIChYA>4&QeU?#{lgG)99aIp6VdKxgc9`2=2*aKvuV7?iv(dMLp@IjnA9-mJuHLe@9suhR4}fU!0C@9w;sFqV0f+U(9snuD17Mc(06aG&avlId z>H+YV?*?5SfMku8B{8bUtu6(4lKlRGuV!ABwtvZZFfzcw+GNtZ2$fzO;M}lPdXAiMqj-S#B5*rSZ^z??SwTuGSV(he+Q{6hSEj`}6)ja$2HxVb@YSFOcWXY2 zmG^0H=H>fP3prterp$FDP*X;J7J8-HyeU(!cH&j03=^aGTqV{CM++J<)FiDFrfJBC zX1yU3VM+rSOs0b!GbKBXd-jV{m*(v+45Hyzjpe*9P9Cdbmux z&5d`TKg=}bMiT1N;NXVu)m z_L3zGsL19D6}(;!<^^+uDK$4R%|Kba`dv2Y+kTggm6!6t+|W9NzT4d3hbYC|;D;#1 z+$h!D*qLTK%Rgg9Q?A92D*v2G6&>HDyx5CQ_Y{YfAXDuPd@Wqb zg-NzKgxK^@dyKT1M*Owf+D$gD+G>-{5H{KT5T!sKT?|lK1SPSDV^NPn$#S*HW(b>X z5Jgg2t`jJ2?Is&nZ}p+VA#Ae2`nA$BVz0Edn`}r+6K$#4?X*V%^tL-#C}UkcplZL(&zhn6(qLqO^f`x~Md2Je-@ z+O0gKxD1F{4})txgAFps^@Xe<-)d~5>AHB~H}MXE7cLnnFSUDvz{}n@u-DFA%x*cB z4P|3(1SHWpnzFv2w6%MDD93d2rAzP>s|t0uk5eJR&53LbJAW>cj*0@g{-6cc?)qVY z=rNP|iy&=t3ba%03x$^5JbbFJcF&I^_IrNN%U9HVs;_pxk0bT_eL%XZ=2LyEv(@P2 zt7|*?YW-B-8j!B3KGnCo>NtDv)lc=A_Szl#&hD!3=(yAgpXytitwo({d+WsJsI{u5 zb%Xe5;Y!hxBM+bI!xkivudgLvuY0RD4C2FutDTZ{(9;RiJDT+qE(gcT(PW~z2{H3Z zKDwHmD7=t#HD%)Pu4arXv#)!Wh{|;EHCHq@)2Wo%MCR0NGmj~)V&*1eQ~p2lpiH0i z3Uoho>-WIMIt%yT;BI5%{6h3Dz@LM=h3ANwFUBx_47@E1e+FQ$M&3AlIGCjJ$MX4N z_9)8OXW%Y7xe_q`UjcygS!n~#&#{%w$I{P5UV*WIv2>c6^jT?-(r4wY3t#nrfnAF6 z2w#=5!dGQdebq;RAH>iJ$bSb+*}nvv2{H5(b?-;nlZaszuLT0vG7r&LeI?{?ZH3US z4ZN)8WeOLX~vW2>(P~ZM7$Vm%cBj26?>)TVq;@h)W>)R92`1Z`EazjI{0<-#} z{a+$4EyC6N?AEtuJ>uIF4Zb~Z9uFmrlmy_ZVm+~MPfGFandN+Y&kc#3Z%>f=_Wb3W zvdg!Ztg-T~#Ha?C1N!y@97pEy!a!f}?X?JAb42i}^#cX7n#i{&xQ}livedVi=gIo^ zx3Z2ceB`Y5)wkE`h+%zu#+kQ)K;q2P_%Tc0p5tknEiK>6`~F*SZ6L7xND4L49J>2? z;^{Gy0pn%Pw_m2{<3f$7wfgpMe-Xx&x3RFX^6k9o4x)GPXIk*4U>!g^VE~=w4kG4v zbSn^t-!}8}>!`_RQB*s=`f+z1r!T)1Na$;}0!d*Ut@~{S3J4r#O_hTk-3k;C;ON9# zfkGBdanINFoDZt4KrxPP1=8I%>#^Gg%TWi~3gkB3u*-8R(2yUjo0)97A$$m>ILp0z zD^RG~%?vWx*{wh^hHeFFxUE2qzFUDBY8J9~ZUr)2VRwnns6$yJaCI14fdWH6;&AeC zG~7*>p!NH11?nQWfZYb9RkukC_Qhx`ko3_)9~J)Y-3lbn;B#5Zjkwfo1$rmQ!hmsr z5Z2og2Ix{m6sF`^c$2-D7DERqE6I4h&vt!AyKZvEj~?z@8sLcTe}2hOpd*q2@%IO_VBly&TL7 zAuOgeg!L}6Q1Dvq36jL;@tC+hLFh_;PmonWXrr{ynx)k4z!tXxNnnfTQP{xNa-KW! z*Q|cZDP*dAKa;AEsWg9-R|ukcPzZ4~umulI16#{Au(jL=wxqa%r8K9~#tIkMTA}4S z%}r@wYbpwCtxU6(<-1vXWOs#rz`T4P8jzeY!NAsE2|-X^!)a2Lhw)%$-b5m1sM}Lz z^>>KcVx&uFgTCsy7X3IqEUBAv?8a?mU%$;Ml8lw_5rGKTNEb&DiF66*WQZ>)sEwG6 zbnzZLfTY>rFvJOzZ*%fR09KNjuX6_Vd2g`3?-H-_2AOCM!yBwdHhP0prXSwu;)!z4 zmgd3^stA?+)}qRIa*jjAAqOM$21Vo25pf~}yr{|>G#U2Wns9_T;e8n)Bs>7gAm(T5 z-(7_?Mup^cUGP`J=lc$x_NR`@AOs98=P|HhPC(up4O}vD`A5L`-}rsB529~z!ca&` z=l9VFq~AyDlYSouWv*4yc4;I_7L@Fia0Jg|>x!iTN04H|5oA&w!Arp)96L0OZpKavS{pw1DMPt>|mLp8%xu z@S&byz-Iu*1I?QW1_-nuO&exh*QtACU4j99v5Y579F7=L!L5};FQf`hO+6dXf?dR( z_KrGQ6AUmVnqYv1hG2k&hG2k!TAnub=L!4STyR5ZrD-_-P(y3H)Y@WQQu)lz8C^xN zEo+J(xL*-pMU(4JM&*KyUsD9ZJw<4Y;HzaZ~3W797 z!C$_Ib;T$oYpnb{F{(kKUyR~Tj7BZYR!IvX+N1@K)x;>Y2wtQ82MT62bLjWg{sV&R zV-)-UmPNP_L{P4VAha}M*boG_?Mn!PwmL>Z4MA{-<39Z_^S=M%xHhm)|8nv?(Oh=- zMKE>Jf|=ZY4{I8P^RUZb(8o(sqqOZPEoor?J##U>{R0cD6mJ~)#`<T0uc=#H7>3d+c&Iu)dR{Qt#cR~3)&A8N-tEKrQXS?ef+IN01muIj6c3f_rhhY< zB+nH;Vr5!<4cW~#*_uQ2BhCVC>lXSEujb`tyu1h($nN&|egg$!OuU=7f(bS!M(WvW z32|Lxo%#{PiT#Lw1tj((zHT7uNBo}(k``LazW`FV5BMIyVK(t*yas_5q^a>5$f$S? zeX)#jN*r2{QbF(}p|!Y{r!KF-(gv?V zpamO(Pa-uWUPA!)Q%Ud|6qhYmQv|{Nins1VLKx8aV<4SVw@IiX%W$ z>j)6hI0DROGlnh^9D#2kFD=5=8~D}{U_Igp5Dkt1Zyrw^0Rk`}v7XowAf-40%yN!^ z=Y~Yi5g6?=1)Fn6Ar}@*qUZrOBK9c4(0_% zfGKqZ{*5dYyn06fUDrDTR$j^nM?mWk`ff*nZ+OUZ4EL1V<(O%1CI1grG$n1ulLvpu zq>8>R&D&n|Ux^PyTy+GdvuSk%rqvOc_KtuQSFn`kHrayCt;E=ZF6BBMZBs{JTjU7H z(SrZZ+M_uvv^ewfePW2D1ru}xzAFSqO>XYny9Z_h909ATLsSkO0qqEVwebUSiw;Lf zY)sE)%kPofx$|JUD&u42_l1AL)e+$MB#wZ9#1SA0x*czH1bC0_OLmMiU=bv9=c8me z0#wRi`$4pj75{*z`H_4PEvsms@ebK%{7Lv1*$%(Yn0^NL89x|zxCO(s*$#S|AB+DC zOBX-Go#rR522SJ)zDDgvV`>B2H>1=1)Y$-S@HT2U8avuy^)^OuBHxH}H$WTwjoOXI zj<(up%+vgw!(mV4tKDeqXsgrw7Qh`)XTzSzSG&*Hkw%C4siQI62|h;c4q!(b9p>kp z47A^q@zl_a*n8x?fA|A-2(0uLVl&&}&4VG}xqS=1*Zi_Nr?GaYFYAO?=1&0}#6Dkt zA|E@cIgzh+v#%q!2l{!ZOvuBDe6?G99l1Tw&pTy89u!u)xz~~V&Ao%z+w1fN>BFev zoiZ6adYv+sLZ^&Yw2r|Cbjs?d0M=GHWlS_z!6~cSh)x-+_YFl)OV~ME#zHt{5vt4w z&T1qo)7B|lO{Yx8HyP!#)%ggYV|QAF$yk*yVg{Wuf1dlhu>5ithJ+gdwria!W`}LC z31;A{c%O_T%GWU}m7qD_z&RA~?|Q)a-}q{@Gv?=`s19l9L!DUD z#PSckLv;7jQf|yqPe7Knv2e-`lfzNNq|O zpf8qjSc$_&Qz{5y03lUqYUdnY<;}yWF`Z-nScOEAPg4>7$86hQ1poz<2Yf;V&tSac@Gj_Ud2@6XRl8T4rUz9%Q*!5 zuLjQ*c)peZ$8wJVyBl*3Tf-_E*^1$H-8HOI*O&yZcMWT_l*WC6{mS&nYBu}bu&?AX z<#`~mKiZL*xdqp-MsCYa&?T%bJ<}un=0v7PxKus3hSjuXN@Wr?HEoGKF6X&zxd+ys z6Cl&>amg7FENB;T+m1z z-twBhYMRGnB#G3XBjMqAGDpH4{k(G|>5ebGGLgA8mfpzSSCR=$`C*)05iCEN#0gN= z%#pxpGIJ#9W{xD?ogR~;v%#mc6bZteYnK=@isYhmpzaLu5Yy*hBo>BD3 z)kU7a6r$9GfO8~q62VhfuKfU08FCfg>N?5F;T(zS4fWQ>vq;?eO@%Zon&YXhS)nS5 zXH+JL{tP#BBpi8Vjzoe6ptK@_+$hO868?tIkuXl4m5}#vvO+c42{4a@@&&L*SQi3K zzj8f4sgb }}eKN8`!~)Djv7o%~3!LwNJice1?>Q+A)b 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 OiiYd|{QZ9?f&UFaoAN6F literal 172032 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≺& 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 pX~So``4$E~`^;^{{Q2^{{?~Elq>)M From 92ff96663e6b90987fcf58b0697d7beed381ceea Mon Sep 17 00:00:00 2001 From: panbha Date: Thu, 23 Jul 2015 00:11:30 +0530 Subject: [PATCH 27/58] backup --- .../Cmdlets/Backup/TriggerBackUp.cs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs index ef81c10d353e..9b52ece5317a 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Backup/TriggerBackUp.cs @@ -22,12 +22,6 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets { - // ToDo: - // Correct the Commandlet - // Correct the OperationResponse - // Get Tracking API from Piyush and Get JobResponse - // Get JobResponse Object from Aditya - /// /// Get list of containers /// @@ -45,8 +39,8 @@ public override void ExecuteCmdlet() WriteDebug(string.Format("Triggered backup. Converting response {0}", operationId)); - //var operationStatus = TrackOperation(operationId); - //WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.Jobs).FirstOrDefault()); + var operationStatus = TrackOperation(operationId); + WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), operationStatus.JobList).FirstOrDefault()); }); } } From 33868fcca4a30d762bc8bcc58e4a0ed08dd28464 Mon Sep 17 00:00:00 2001 From: panbha Date: Thu, 23 Jul 2015 00:12:05 +0530 Subject: [PATCH 28/58] recovery --- .../Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs index e6b8071777c3..74f35c7b9b3d 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/RecoveryPoint/GetAzureBackupRecoveryPoint.cs @@ -68,6 +68,10 @@ public override void ExecuteCmdlet() WriteAzureBackupRecoveryPoint(recoveryPointObjects.FirstOrDefault(), Item); } } + else + { + WriteDebug("No recovery point found"); + } } }); } From 6eea9df79ed99ce539862f8f566fdf7ce00f55c3 Mon Sep 17 00:00:00 2001 From: panbha Date: Thu, 23 Jul 2015 00:12:37 +0530 Subject: [PATCH 29/58] restore --- .../Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs index 98b2bc691de6..1a2d3aeedb37 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Restore/TriggerRestore.cs @@ -69,8 +69,8 @@ public override void ExecuteCmdlet() Guid operationId = AzureBackupClient.TriggerRestore(RecoveryPoint.ContainerUniqueName, RecoveryPoint.ItemName, RecoveryPoint.RecoveryPointName, csmRestoreRequest); WriteDebug(string.Format("Triggered Restore. Converting response {0}", operationId)); - //var operationStatus = TrackOperation(operationId); - //WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(RecoveryPoint.ResourceGroupName, RecoveryPoint.ResourceName, RecoveryPoint.Location), operationStatus.Jobs).FirstOrDefault()); + var operationStatus = TrackOperation(operationId); + WriteObject(GetCreatedJobs(new Models.AzurePSBackupVault(RecoveryPoint.ResourceGroupName, RecoveryPoint.ResourceName, RecoveryPoint.Location), operationStatus.JobList).FirstOrDefault()); }); } From cbef8461441da3608e8291ad954d6db462776984 Mon Sep 17 00:00:00 2001 From: panbha Date: Thu, 23 Jul 2015 00:13:02 +0530 Subject: [PATCH 30/58] dll --- ...re.Management.BackupServicesManagement.dll | Bin 192000 -> 192000 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll index b84d923cefe6f2ededb76493f47e2b0981c81e27..ae3efb8089e767b4e93c4f8275adee303b654a71 100644 GIT binary patch delta 1425 zcmbVMjZa%u6o2Qw(kI1*foqkIcC=j>paF{8iZB%1;x;uyJ{mGiNVcl|FtXw#N*EE0 zBy+(5yMr6!5HLDTByPxlrYEcQX)XW{Z%Z$SUFvB1mkCfOnsOn74`!8vpHF9% zLW?M`1qc7#sqhM?jd7WG#O!+5hT*Wx3j#)X#%Y6de9~D8KM3%y9Pzkpu*~ILJ-yBH^#_}bTv@K@JvW;OBQpq)SF&cbs|?)$NxN8M#urY^WIG1$n*vK=f% zR%6)(02Qh&XAB^qUdf#_LkEAqP=7XFSO9Fm#5+89sHsKcR4{Yzq8Yy7KbGhPH%pq= zz&vl<>0lj_dSvG%3$0JqSWMtoBXtvI3M(2KEYQM-g3klzr`!%c8dP{$s2YLwgh~k5 zh0uM3|JotD{_O6sj=wcrh9zghI`*Zoj=lKl37L8(?oXx>X$Q;}BH?UnOr^EA`;`=0 zGly@jVSbq>Tdiv0$v-Vv>N=YYXhqSv2@Kdr57;ank`&2Fkt9nSZ@QSKK5_B78Msm1oL6m;;`xh%4@_ja`OEbdW`sN1eC%^folq3-$FBwCx7BDdkH#Q{D~rp-tS zd~qlE>9)<`?D{+)xy1Q)u#10lK@p>QkVfN|S2NnJJUD1sp(gq^!wNTXV>5h|>8*K=R78!%ceUVNL1^`X zlhOpvM|%UD*5`vonS^0VW&^K zz(=DpsBNGf9ELq8?h(}Iy>?hfPtmAioTs5Zy8s2%9(oCGG9pmk2@G%GYWHpbzwvfZ zj-$TMqFvZMU#sYbfAkS$M_Kv9}*Nx3L0X(79uhLX`*}|x)B(Fd4`p~ zA(+8R?=Y-Ga|oLjcpEk_)*{pAN9;ZUiWYqbc3gu4+EOp;V&bn}mZfzbV+#No!ZFCw zwNw4vc>m#AOYq^3-*WwZC1>x;+QfK8hFKKGuU z^Z9aLJEv1Sr&D_mvdBpI^$TlRm!v#uD*(RJX6A2X6oX3{&iE!7+@je9nS3zE173bP zrwr`0MVYq;%dzBKP$Rz-)X10Y8<(kR%5!F#VQV#*NQI-LDV^57p4ZZ7 z%{p;=74yp6Y_TYXXZ|!{Y3_M5U>3!njU!;6KWH^UvJ~2oCP}6a-aKhjo|?R7fL5hu zsyLY@9QY;An27P)D|(D}o)^nbMEOq4$OExj5=Ge&j3UICC^dq0af%63BXxROv^^fz zvf`7IDJ+ryuTi18E>ln34Fy4O@{t>JVe}TVDy-V2;#iSUp?cpZ_M*#AlfT_+y%}RdKN!8Xq%Y% z=~-u{4*21wOs>3H2ff;ub$ejhpxcuvHU*%D%!#_toKpd6C%y|1aq`VB?hXPOubHPl z6NF#2UX@L-#Yk7FcPc|2Yy*q7`{|4Dg#p~WW-3!ObVHH&>J>=GDp3=_=3jP$pC)DI zBWUadyB-Z1dkD?>pcB^6DTY*n^HhxHVL&t0?XSWuM*KYofZ^Rsboc)M#@oR7Hrm^Q zQDOJ{)QTSXM;lRo7_wxj6!ime8G|W10?9^Gmy~!RMCcgUgl7*Vsg1|rI>So;afo82 z`vk1PY>1oMcoNn#R;T^(h^kXyRKusC@+$b$r9Rfp)RX;e0mNb-%YjT`A7mNo$4A&T z%j)<09$((?`TLR6@#&V9$-kadhlbb<_q~ykGkys_48K_*NoScXotn Wyyx~PzenTq`_{goUYubMr2Gflo$yZp From 4b9a0240e700fd0a3681ab7aa9ec31757b4b0925 Mon Sep 17 00:00:00 2001 From: AditTulasi Date: Thu, 23 Jul 2015 11:19:30 +0530 Subject: [PATCH 31/58] Jobs CSM changes --- .../AzureBackupClientAdapter/ItemAdapter.cs | 39 +++++++----- .../OperationStatusAdapter.cs | 5 +- .../AzureBackupCmdletBase.cs | 9 +-- .../Cmdlets/Backup/TriggerBackUp.cs | 3 +- .../Container/RegisterAzureBackupContainer.cs | 14 ++--- .../UnregisterAzureBackupContainer.cs | 4 +- .../Item/Disable-AzureBackupProtection .cs | 35 +++++------ .../Item/Enable-AzureBackupProtection .cs | 16 +++-- .../Cmdlets/Item/GetAzureBackupItem.cs | 20 +++--- .../Cmdlets/Jobs/GetAzureBackupJob.cs | 4 +- .../Cmdlets/Jobs/GetAzureBackupJobDetails.cs | 4 +- .../Cmdlets/Jobs/StopAzureBackukpJob.cs | 6 +- .../SetAzureBackupProtectionPolicy.cs | 2 +- .../Commands.AzureBackup.csproj | 58 +++++++++++++----- .../Models/AzureBackupBaseObjects.cs | 4 +- .../Models/AzureBackupEnums.cs | 31 ++++++++++ .../Models/AzureBackupItem.cs | 22 +++---- ...re.Management.BackupServicesManagement.dll | Bin 176640 -> 176640 bytes 18 files changed, 168 insertions(+), 108 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs index 45f3853e8a80..37b0ce677848 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs @@ -36,11 +36,10 @@ public partial class AzureBackupClientAdapter ///
public string ProtectionStatus { get; set; } - /// - /// DataSourceId of Azure Backup Item - /// - public string DataSourceId { get; set; } - /// /// Type of Azure Backup Item /// @@ -75,7 +70,7 @@ public AzureBackupItem(CSMProtectedItemResponse datasource, AzureBackupContainer ProtectionPolicyName = datasource.Properties.ProtectionPolicyId.Split('/').Last(); ProtectionPolicyId = datasource.Properties.ProtectionPolicyId; RecoveryPointsCount = datasource.Properties.RecoveryPointsCount; - Type = datasource.Type; + Type = datasource.Properties.ItemType; } public AzureBackupItem(CSMItemResponse pPOItem, AzureBackupContainer azureBackupContainer) @@ -83,7 +78,7 @@ public AzureBackupItem(CSMItemResponse pPOItem, AzureBackupContainer azureBackup { ProtectionStatus = pPOItem.Properties.Status; ItemName = pPOItem.Name; - Type = pPOItem.Type; + Type = pPOItem.Properties.ItemType; } } } \ No newline at end of file From 662a06d85ced1b343be2c512bd745c17833a22d7 Mon Sep 17 00:00:00 2001 From: pragrawa Date: Tue, 28 Jul 2015 03:43:42 +0530 Subject: [PATCH 51/58] LTR Policy changes --- .../SetAzureBackupProtectionPolicy.cs | 4 +- .../Commands.AzureBackup.csproj | 76 +++++++++---------- .../Helpers/ProtectionPolicyHelpers.cs | 10 +-- .../Models/AzureBackupEnums.cs | 6 ++ .../Models/ProtectionPolicy.cs | 22 +++--- 5 files changed, 60 insertions(+), 58 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs index 0ffa9c8f0e0c..67a5bb387db4 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/SetAzureBackupProtectionPolicy.cs @@ -88,13 +88,13 @@ public override void ExecuteCmdlet() { updateProtectionPolicyRequest.Properties.LtrRetentionPolicy = protectionPolicy.ConvertToCSMRetentionPolicyObject(RetentionPolicies, backupSchedule); - ProtectionPolicyHelpers.ValidateRetentionPolicy(RetentionPolicies, backupSchedule.scheduleRun); + ProtectionPolicyHelpers.ValidateRetentionPolicy(RetentionPolicies, backupSchedule.ScheduleRun); } else { updateProtectionPolicyRequest.Properties.LtrRetentionPolicy = protectionPolicy.ConvertToCSMRetentionPolicyObject(policyInfo.RetentionPolicyList, backupSchedule); - ProtectionPolicyHelpers.ValidateRetentionPolicy(policyInfo.RetentionPolicyList, backupSchedule.scheduleRun); + ProtectionPolicyHelpers.ValidateRetentionPolicy(policyInfo.RetentionPolicyList, backupSchedule.ScheduleRun); } var operationId = AzureBackupClient.UpdateProtectionPolicy(policyInfo.Name, updateProtectionPolicyRequest); diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj index b8112627d6e8..7de292d2e57e 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj @@ -56,10 +56,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll - - False - Resources\Microsoft.Azure.Management.BackupServicesManagement.dll - ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.14.201151115\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll @@ -78,6 +74,11 @@ ..\..\..\packages\Microsoft.WindowsAzure.Management.4.1.1\lib\net40\Microsoft.WindowsAzure.Management.dll + + False + ..\..\..\..\..\azure-sdk-for-net\src\ResourceManagement\AzureBackup\BackupServicesManagment\bin\Net45-Release\Microsoft.WindowsAzure.Management.BackupServicesManagment.dll + + False Cmdlets\VaultCredentials\Microsoft.WindowsAzure.Management.Common.dll @@ -108,7 +109,6 @@ - @@ -127,49 +127,36 @@ - - - - - + - - + - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - + + + + + + + + + + + - + @@ -188,11 +175,24 @@ + + + {5ee72c53-1720-4309-b54b-5fb79703195f} + Commands.Common + + + {52643bd5-6378-49bd-9f6e-dac9dd8a867b} + Commands.Compute + + Always Designer + + Always + Designer @@ -205,19 +205,11 @@ - + - - - {5ee72c53-1720-4309-b54b-5fb79703195f} - Commands.Common - - - - - + diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs index a6edf1d11dc4..ca8c580db727 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs @@ -53,7 +53,7 @@ public static AzureBackupProtectionPolicy GetCmdletPolicy(CmdletModel.AzurePSBac return null; } - return new AzureBackupProtectionPolicy(vault, sourcePolicy.Properties); + return new AzureBackupProtectionPolicy(vault, sourcePolicy.Properties, sourcePolicy.Id); } public static IEnumerable GetCmdletPolicies(CmdletModel.AzurePSBackupVault vault, IEnumerable sourcePolicyList) @@ -78,19 +78,19 @@ public static CSMBackupSchedule FillCSMBackupSchedule(string scheduleType, DateT { var backupSchedule = new CSMBackupSchedule(); - backupSchedule.backupType = BackupType.Full.ToString(); + backupSchedule.BackupType = BackupType.Full.ToString(); scheduleType = FillScheduleType(scheduleType, scheduleRunDays); - backupSchedule.scheduleRun = scheduleType; + backupSchedule.ScheduleRun = scheduleType; if (string.Compare(scheduleType, ScheduleType.Weekly.ToString(), true) == 0) { - backupSchedule.scheduleRunDays = ParseScheduleRunDays(scheduleRunDays); + backupSchedule.ScheduleRunDays = ParseScheduleRunDays(scheduleRunDays); } DateTime scheduleRunTime = ParseScheduleRunTime(scheduleStartTime); - backupSchedule.scheduleRunTimes = new List { scheduleRunTime }; + backupSchedule.ScheduleRunTimes = new List { scheduleRunTime }; return backupSchedule; } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs index 3bca86591ac6..3d08d0224502 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs @@ -116,6 +116,12 @@ public enum WorkloadType VM = 1 } + public enum RetentionFormat + { + Daily, + Weekly + } + public enum BackupType { Invalid = 0, diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs index 4c12689d7a68..923ce41e6359 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs @@ -26,6 +26,9 @@ public class AzureBackupProtectionPolicy : AzureBackupVaultContextObject /// /// Name of the azurebackup object /// + + public string PolicyId { get; set; } + public string Name { get; set; } public string WorkloadType { get; set; } @@ -42,15 +45,16 @@ public AzureBackupProtectionPolicy() { } - public AzureBackupProtectionPolicy(AzurePSBackupVault vault, CSMProtectionPolicyProperties sourcePolicy) + public AzureBackupProtectionPolicy(AzurePSBackupVault vault, CSMProtectionPolicyProperties sourcePolicy, string policyId) : base(vault) { + PolicyId = policyId; Name = sourcePolicy.PolicyName; WorkloadType = sourcePolicy.WorkloadType; - ScheduleType = sourcePolicy.backupSchedule.scheduleRun; - ScheduleRunTimes = ConvertScheduleRunTimes(sourcePolicy.backupSchedule.scheduleRunTimes); - ScheduleRunDays = ConvertScheduleRunDays(sourcePolicy.backupSchedule.scheduleRunDays); - RetentionPolicyList = ConvertCSMRetentionPolicyListToPowershell(sourcePolicy.LTRRetentionPolicy); + ScheduleType = sourcePolicy.BackupSchedule.ScheduleRun; + ScheduleRunTimes = ConvertScheduleRunTimes(sourcePolicy.BackupSchedule.ScheduleRunTimes); + ScheduleRunDays = ConvertScheduleRunDays(sourcePolicy.BackupSchedule.ScheduleRunDays); + RetentionPolicyList = ConvertCSMRetentionPolicyListToPowershell(sourcePolicy.LtrRetentionPolicy); } private IList ConvertCSMRetentionPolicyListToPowershell(CSMLongTermRetentionPolicy LTRRetentionPolicy) @@ -223,22 +227,22 @@ public CSMLongTermRetentionPolicy ConvertToCSMRetentionPolicyObject(IList Date: Tue, 28 Jul 2015 03:55:49 +0530 Subject: [PATCH 52/58] LTR Policy changes --- .../Commands.AzureBackup.csproj | 75 +++++++++++-------- 1 file changed, 42 insertions(+), 33 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj index 7de292d2e57e..513724653c0a 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj @@ -56,6 +56,10 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + False + Resources\Microsoft.Azure.Management.BackupServicesManagement.dll + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.14.201151115\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll @@ -74,11 +78,6 @@ ..\..\..\packages\Microsoft.WindowsAzure.Management.4.1.1\lib\net40\Microsoft.WindowsAzure.Management.dll - - False - ..\..\..\..\..\azure-sdk-for-net\src\ResourceManagement\AzureBackup\BackupServicesManagment\bin\Net45-Release\Microsoft.WindowsAzure.Management.BackupServicesManagment.dll - - False Cmdlets\VaultCredentials\Microsoft.WindowsAzure.Management.Common.dll @@ -109,6 +108,7 @@ + @@ -127,36 +127,50 @@ + - + + + + + + - - - - - - - - - - - + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + - + @@ -175,24 +189,11 @@ - - - {5ee72c53-1720-4309-b54b-5fb79703195f} - Commands.Common - - - {52643bd5-6378-49bd-9f6e-dac9dd8a867b} - Commands.Compute - - Always Designer - - Always - Designer @@ -205,11 +206,19 @@ - + - + + + {5ee72c53-1720-4309-b54b-5fb79703195f} + Commands.Common + + + + + From 76bc3810b2afa46616856378d60200e4061c97bc Mon Sep 17 00:00:00 2001 From: pikumarmsft Date: Tue, 28 Jul 2015 10:52:38 +0530 Subject: [PATCH 53/58] minor fix in Enable-AzureBackupProtection --- .../Item/Enable-AzureBackupProtection .cs | 2 +- .../Models/ProtectionPolicy.cs | 2 +- ...re.Management.BackupServicesManagement.dll | Bin 176640 -> 212480 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs index 1c56ca639115..5aa36a2edab2 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs @@ -45,7 +45,7 @@ public override void ExecuteCmdlet() string itemName = string.Empty; CSMSetProtectionRequest input = new CSMSetProtectionRequest(); - input.Properties.PolicyId = Policy.InstanceId; + input.Properties.PolicyId = Policy.PolicyId; if (Item.GetType() == typeof(AzureBackupItem)) { diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs index 923ce41e6359..9c696f40a82f 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/ProtectionPolicy.cs @@ -54,7 +54,7 @@ public AzureBackupProtectionPolicy(AzurePSBackupVault vault, CSMProtectionPolicy ScheduleType = sourcePolicy.BackupSchedule.ScheduleRun; ScheduleRunTimes = ConvertScheduleRunTimes(sourcePolicy.BackupSchedule.ScheduleRunTimes); ScheduleRunDays = ConvertScheduleRunDays(sourcePolicy.BackupSchedule.ScheduleRunDays); - RetentionPolicyList = ConvertCSMRetentionPolicyListToPowershell(sourcePolicy.LtrRetentionPolicy); + RetentionPolicyList = ConvertCSMRetentionPolicyListToPowershell(sourcePolicy.LTRRetentionPolicy); } private IList ConvertCSMRetentionPolicyListToPowershell(CSMLongTermRetentionPolicy LTRRetentionPolicy) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll index e286472349ef785e87bbc8e645970af6c364ae57..d861821e0dbebe0c92e706b6ffbeae53f283963d 100644 GIT binary patch literal 212480 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

~uTPS$2l>&vH9+lBb>JXhi0A7Smad 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 literal 176640 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 From b712e421238de16677c27009df9fc10eac763b63 Mon Sep 17 00:00:00 2001 From: pikumarmsft Date: Tue, 28 Jul 2015 15:33:16 +0530 Subject: [PATCH 54/58] checking for null response --- .../Cmdlets/Item/GetAzureBackupItem.cs | 17 +++++++++++++---- ...re.Management.BackupServicesManagement.dll | Bin 212480 -> 212480 bytes 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs index cf43973ea308..64f40ccc756f 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs @@ -68,12 +68,18 @@ public override void ExecuteCmdlet() var azureBackupDatasourceListResponse = AzureBackupClient.ListDataSources(DSQueryParam); - azureBackupDatasourceObjects = azureBackupDatasourceListResponse.Where(x => x.Properties.ContainerId.Split('/').Last().Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); + if (azureBackupDatasourceListResponse != null) + { + azureBackupDatasourceObjects = azureBackupDatasourceListResponse.Where(x => x.Properties.ContainerId.Split('/').Last().Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); + } if (this.Status == null) { var azureBackupPOListResponse = AzureBackupClient.ListProtectableObjects(POQueryParam); - azureBackupPOObjects = azureBackupPOListResponse.Where(x => x.Properties.ContainerId.Split('/').Last().Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); + if (azureBackupPOListResponse != null) + { + azureBackupPOObjects = azureBackupPOListResponse.Where(x => x.Properties.ContainerId.Split('/').Last().Equals(Container.ContainerUniqueName, System.StringComparison.InvariantCultureIgnoreCase)).ToList(); + } } WriteDebug("Received azure backup item response"); @@ -90,9 +96,12 @@ public void WriteAzureBackupItem(List sourceDataSource { List targetList = new List(); - foreach (var item in sourceDataSourceList) + if (sourceDataSourceList != null) { - targetList.Add(new AzureBackupItem(item, azureBackupContainer)); + foreach (var item in sourceDataSourceList) + { + targetList.Add(new AzureBackupItem(item, azureBackupContainer)); + } } if (sourcePOList != null) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll index d861821e0dbebe0c92e706b6ffbeae53f283963d..e6b211fb2822db7016a61a285923a594670cfee4 100644 GIT binary patch delta 2519 zcmZuz3s98T75=~b@6S6dup%t5@>0a|mX|2XSfCUm0R_uoCLG(G=r3E1YJ*?aDu@1Do~ z&bfDP(<7gzM?P)8Ri9fT+gmMos{K&8?}IW`DOc#LRFx97J<{aUq$)o2|5T}}gz-og z&nqw!W&9;HBAJ7kv|SsZK%C7`GaV%?;!Reril$V|Cb(8BfUNSW36i`I}e+Q7hm3lIDYZ+Qsi^Z;H-~_&Hxq7#1~(Go+!9*y;P^*BPRtk5(P981s^5qbsGLy zFAxv8m4$9c*{vo|@;rPe7yS_lI;^t}F8%T{5B}Tnq#9{fZ7wiTMh&Fo>SVz7BjX~boXI#nl79127R8sx1&7!Al5_sp0DyDp}P#1MGkx^wPjRftO3 z%)%gX-wczd)!_R7hNumpT=QjL2xikI9i1zoWwpcKOEaICMR&|?(J z&KR_~>#-8?w1y3$F%_H9EXGnXo7Dx=wxUEy8oXI+FfZu|6*(K>E*f>kzF^n6?i_I! zM@d0}Pp08{J#bn&Iw*t|m_k1wz;QWdvxa)UyD4E!(C zFN!~8AtykO!0grJn`Vlao6S?+&vMaHH4obvasJi(|KmJ)fs^wRUF;Jz3!I#fEqILc z9n^Bf`KcUudsx1tRG6KQhhg^DY0B(7X|$b}pBCUPz+ZM2qE(|}&nl*3my2KM!Y-SO z@smty@k2xFe zS7QAN)Fry|85+;W&33?fFI^s2F#9{s1TW|b9+SS6&IHBaN@U?fiC1!S>(CjB2Gjbsb!0*HzZ}P`pV0okiSThpCjI+j^7)=$6d>xxTj-Iq)G5W>ttk_Ns8eM}TydrCBKquQSzTSXu2)w%yv(YT0 z>hL6EcPzqMk7APYOg(qp7*pF`U0>@A2W;wuNp@VmUBf{MrL2SH`FRpgMEN*dV#Dn)Pbn7|w z?Z$1|;-+q5r&*ragSQ#^+R}*>l#1R?93_`4x|}YzcR5`i?4k?6EQY!;o&0>&^&@@+ z`Qb8SKOVr`Lczx?w$VTZDWda46+0_(57M2{BAO3U=vlJ&pnivXiid}s8xDLEuQ8O% zgGUgg#WzGwIN3=~$bR?#sH{s|ey@trK01ZE1+%}Z2XuA7ZjpVQ0>#O-$0-o2h!QCd zn8Y~;Jx7Y<7Ylo&@_gO58t5mGTyr z0n&zxMY>25^#iD&%l6#?>~%AjMJr15vQlMN3KTzj1VtAtE6gML$E_{rAY0C{WDAR| z5w$m%N&fvN`-jPI%XV}1vr9kt+38Ect3HmqJ1p=0lRa3NKu@e?WT!Ctg+Wn9=ruKx zt}07Q^GefJzgRhP_H=QdF?>yK(r}w9{WDZ|1cWV9bra{eK%YmnM^06fm+7xEu{2XX Y#gkct^qr%QsjMVj`e&V!Z delta 2525 zcmZuzdr*|u75{$s+vTaO%R+E@Ka65|C?X(=QmYR2LBSyDXvT^)Eh;ICtN7Y9;81H( zo4C0(r^qbnKln&R!R_R#G{xv3F4U@N9Y|)ZI*rpBrZKjfq-bl;w_A#~`DXT>Z_n>L zkNZ34+_{a9$2C44ci<;_RPwv-eF>;_ANzL1#7bSO(D zmnkAsuEZ2VW|9Cds zGPxrgN|tqGiyIcY9gR47s3TICC&;d$jF2nPf~;oeRC&82SCmYk&$eK4=s-ZZVSIQU)$&H)ax}?lm+JYw{n8B4YL)JU6ghIKKwPlOhy1$2SAape z-MX9{l{{pI|eIOey`AuHkavQJ5 zyoU$Ap~L6B`@5~cO<8rd48yYXYLw7z^5WI>m|&Y$CtL$UGdbR7f9W<&3v)7NzLp-7 zF^07~jV)ws@fb!=V@-^$9>ZFn#?CY58p94gjp2iopo5G#k9gBR7%>|pq;yP{ONR29 zgk3|~OhV_7LEpzivzP>beL@TdxM+ED*@xSig5D1+3<^H-Q@|@zz$;VmQMOU1>wh!~ zBx7$CqR+eHR%0l8zJ7NB2EF!Aa$&j4(KoN-?e8>Yg*(6SzBF7LW|tg7>9kx)1De(USZHnbwt5sJlHUU{GEgl;MD(Uq^&fP)XiO3tjd!kks>}cW~f}KSF zOhghoC?SbOFU?ItGwxDf5*#AbPBq0yW*$~1V;V|Sb28SN;HKe89K)?Lo;PCDD9>c< z4mM(C<0Uf=QbR6wqMb%^F+4B915#?i0xF;hIT%PLGn=3uX2&Oe>|f1FRB=jXiK5WQ44&(HbDyk|JyU+m}n z*To1ANwCBlVdQ8S;d+Z-h3gGoop;p7B{&V_D$ioip5G;1^8O;S*unLjF6aU}hs2!`IOn68+YY;C|5~yqq;;@Hm)}TH+ zkcn?JlOU&$r%Sl{M-{?#*`Hdkk=ivCQRPpK`qrWl|4{fYmI+LuZ@tVrU!-bZ#tLrZ z#4(=#!e(40!)ai+h09Pm=0Xc&eNrOb+lc2lx1bu7M;eyG^=IRQ0Q){#U&EU&Q3q=< z8*r$ruVAO(30msFG7Qqs9oWmQnO28VoK&0Yz%%Wk&o|>s2Jdab4797%dMp(pJdqsR zP{vZ7+lKEOzNYNJ6|(_+`I;Y~#SO^79aY~Dh}GGMwPtn~`C~i~gEopS$Mcl6hx@u+ z74G4lHEh>62W-zYv+X@~ry0}1jsDy|Cd8rg_hG7;d#36DR%18)<^WrHl8nPdS={Ia zdg%I_IE+4eRpM)WrW}z-;F0Tl+#jWkk zPP;mH2=58@^_mAcsHaX3PO!^0ZGM+~+x#w%w(;oCAzvFNv7b-dzQPZ&AF1*W;{ohP zIQVGAwwSmer94Sou|Ls*qkLK%p{Ao8da3F>YMh=K^zfK}!_n{HO@STi=yAlDGh0)} zoV>wK*uMLJRF35VzxQdli|5a<5U$safPoI^rlM0Es8nq@#esw?m2$kW(RnXlL>%f9 zFKPu^)XH~pMn?z1it>Hl~gWX$nw&j-RGfppBK{;#)rSCt<_%9>b37_ zS~OX2h$vl4siRFdgiZC|6o0ctYMS*_(ffOAeTzJGwu^4Mn9`o($ah|TdP_eLLX7vxNhTiWf>#`)RUoh?Z0jR&`>A@KPb-tR7KHnh}=y7^^ arA}!D`hbdBsD^m}km5B@hC(Ewfm From a3bd7e98ebe8535556116e31659ee750286de80c Mon Sep 17 00:00:00 2001 From: pikumarmsft Date: Wed, 29 Jul 2015 13:10:23 +0530 Subject: [PATCH 55/58] checking if ds is not havning any policy associated. --- .../Cmdlets/Item/Enable-AzureBackupProtection .cs | 3 ++- .../Commands.AzureBackup/Models/AzureBackupItem.cs | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs index 5aa36a2edab2..4083e09348c9 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs @@ -45,6 +45,7 @@ public override void ExecuteCmdlet() string itemName = string.Empty; CSMSetProtectionRequest input = new CSMSetProtectionRequest(); + input.Properties = new CSMSetProtectionRequestProperties(); input.Properties.PolicyId = Policy.PolicyId; if (Item.GetType() == typeof(AzureBackupItem)) @@ -70,7 +71,7 @@ public override void ExecuteCmdlet() throw new Exception("Uknown item type"); } - var operationId = AzureBackupClient.EnableProtection(Item.ContainerUniqueName,itemName, input); + var operathookionId = AzureBackupClient.EnableProtection(Item.ContainerUniqueName,itemName, input); WriteDebug("Received enable azure backup protection response"); var operationStatus = GetOperationStatus(operationId); diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs index e0557480c178..1d22b9c89925 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupItem.cs @@ -67,7 +67,12 @@ public AzureBackupItem(CSMProtectedItemResponse datasource, AzureBackupContainer DataSourceStatus = datasource.Properties.ProtectionStatus; ProtectionStatus = datasource.Properties.Status; ItemName = datasource.Name; - ProtectionPolicyName = datasource.Properties.ProtectionPolicyId.Split('/').Last(); + + if (datasource.Properties.ProtectionPolicyId != null) + { + ProtectionPolicyName = datasource.Properties.ProtectionPolicyId.Split('/').Last(); + } + ProtectionPolicyId = datasource.Properties.ProtectionPolicyId; RecoveryPointsCount = datasource.Properties.RecoveryPointsCount; Type = datasource.Properties.ItemType; From 0a6792ade0c77a59d0f99beffde718931e8c8371 Mon Sep 17 00:00:00 2001 From: pikumarmsft Date: Wed, 29 Jul 2015 13:14:08 +0530 Subject: [PATCH 56/58] minor fix --- .../Cmdlets/Item/Enable-AzureBackupProtection .cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs index 4083e09348c9..a282dc04eae4 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Enable-AzureBackupProtection .cs @@ -71,7 +71,7 @@ public override void ExecuteCmdlet() throw new Exception("Uknown item type"); } - var operathookionId = AzureBackupClient.EnableProtection(Item.ContainerUniqueName,itemName, input); + var operationId = AzureBackupClient.EnableProtection(Item.ContainerUniqueName,itemName, input); WriteDebug("Received enable azure backup protection response"); var operationStatus = GetOperationStatus(operationId); From 1edb83bba09163cc9033eeef41669de47405ba1e Mon Sep 17 00:00:00 2001 From: pikumarmsft Date: Wed, 29 Jul 2015 20:06:16 +0530 Subject: [PATCH 57/58] minor fix in filter --- .../Cmdlets/Item/GetAzureBackupItem.cs | 4 ++-- ...re.Management.BackupServicesManagement.dll | Bin 212480 -> 212992 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs index 64f40ccc756f..bc818dc7bd41 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/GetAzureBackupItem.cs @@ -55,8 +55,8 @@ public override void ExecuteCmdlet() WriteDebug("Making client call"); CSMProtectedItemQueryObject DSQueryParam = new CSMProtectedItemQueryObject() { - ProtectionStatus = this.Status, - Status = this.ProtectionStatus, + ProtectionStatus = this.ProtectionStatus, + Status = this.Status, Type = this.Type }; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll index e6b211fb2822db7016a61a285923a594670cfee4..e7ccddf93e16f3526be85c46e29889fbce005f47 100644 GIT binary patch delta 57750 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 From 22df790451aa29d5fa0c1d92aeeaf07fca7bcac8 Mon Sep 17 00:00:00 2001 From: swatimadhukar Date: Mon, 20 Jul 2015 00:33:13 -0700 Subject: [PATCH 17/58] Adding End To End Test case. --- .../Commands.AzureBackup.Test.csproj | 2 + .../ScenarioTests/AzureBackupScenarioTests.cs | 32 +++++ .../AzureBackupScenarioTests.ps1 | 116 ++++++++++++++++++ 3 files changed, 150 insertions(+) create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs create mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.ps1 diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj index f74bac57ba18..fb7c893d38d7 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj @@ -130,6 +130,7 @@ + @@ -166,6 +167,7 @@ + Always diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs new file mode 100644 index 000000000000..a829d1247c31 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs @@ -0,0 +1,32 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Xunit; + +namespace Microsoft.Azure.Commands.AzureBackup.Test.ScenarioTests +{ + public class AzureBackupContainerTests : AzureBackupTestsBase + { + [Fact] + public void AzureBackupEndToEndTests() + { + this.RunPowerShellTest("Test-AzureBackupEndToEnd"); + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.ps1 new file mode 100644 index 000000000000..6b95c211e97a --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.ps1 @@ -0,0 +1,116 @@ +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +$ResourceGroupName = "backuprg" +$ResourceName = "backuprn" +$Location = "westus" +$VirtualMachineName = "e2etest" +$ProtectionPolicyName = "e2epolicy" +$ManagedResourceGroupName = "powershellbvt" +$ManagedResourceName = "powershellbvt" + +function Test-AzureBackupEndToEnd +{ + New-AzureBackupVault -ResourceGroupName $ResourceGroupName -Name $ResourceName -Region "SouthEast Asia" + $vault = Get-AzureBackupVault -Name $ResourceName; + $Job = Register-AzureBackupContainer -Vault $vault -Name $VirtualMachineName -ServiceName $VirtualMachineName; + Wait-AzureBackupJob -Job $Job; + $JobDetails = Get-AzureBackupJobDetails -Vault $vault -JobId $Job.InstanceId; + Assert-AreEqual $JobDetails.Status "Completed"; + + $protectionpolicy = New-AzureBackupProtectionPolicy -Vault $vault -Name $ProtectionPolicyName -WorkloadType "VM" -BackupType "Full" -ScheduleRunTimes ((Get-Date -Hour 15 -Minute 30 -Second 0).ToUniversalTime()) -Daily -RetentionType "Days" -RetentionDuration 20; + Assert-AreEqual $protectionpolicy.Name $ProtectionPolicyName; + Assert-AreEqual $protectionpolicy.WorkloadType "VM"; + Assert-AreEqual $protectionpolicy.BackupType "Type"; + Assert-AreEqual $protectionpolicy.RetentionType "Days"; + Assert-AreEqual $protectionpolicy.RetentionDuration "20"; + Assert-AreEqual $protectionpolicy.ResourceGroupName $ResourceGroupName; + Assert-AreEqual $protectionpolicy.ResourceName $ResourceName; + Assert-AreEqual $protectionpolicy.Location $Location; + + $container = Get-AzureBackupContainer -Vault $vault; + Assert-AreEqual $container.ManagedResourceGroupName $VirtualMachineName; + Assert-AreEqual $container.ManagedResourceName $VirtualMachineName; + Assert-AreEqual $container.HealthStatus "Healthy"; + Assert-AreEqual $container.RegisrationStatus "Registered"; + Assert-AreEqual $container.ContainerType "IaasVMContainer"; + Assert-AreEqual $container.ResourceGroupName $ResourceGroupName; + Assert-AreEqual $container.ResourceName $ResourceName; + Assert-AreEqual $container.Location $Location; + + $Job = Enable-AzureBackupProtection -Item $container[0] -Policy $protectionpolicy[0]; + Wait-AzureBackupJob -Job $Job; + $JobDetails = Get-AzureBackupJobDetails -Vault $vault -JobID $Job.InstanceId; + Assert-AreEqual $JobDetails.Operation "ConfigureBackup"; + Assert-AreEqual $JobDetails.Status "Completed"; + Assert-AreEqual $JobDetails.WorkloadName $VirtualMachineName; + Assert-AreEqual $JobDetails.Properties.Values.Contains($VirtualMachineName) "True"; + Assert-AreEqual $JobDetails.Properties.Values.Contains($ProtectionPolicyName) "True"; + Assert-AreEqual $JobDetails.ResourceGroupName $ResourceGroupName; + Assert-AreEqual $JobDetails.ResourceName $ResourceName; + Assert-AreEqual $JobDetails.Location $ResourceGroupName; + + $item = Get-AzureBackupItem -Container $container[0]; + Assert-AreEqual $item.ProtectionStatus "Protected"; + Assert-AreEqual $item.ProtectionPolicyName $ProtectionPolicyName; + Assert-AreEqual $item.ContainerType "IaasVMContainer"; + Assert-AreEqual $item.Type "VM"; + Assert-AreEqual $item.ResourceGroupName $ResourceGroupName; + Assert-AreEqual $item.ResourceName $ResourceName; + Assert-AreEqual $item.Location $Location; + + $Job = Backup-AzureBackupItem -Item $item[0]; + Wait-AzureBackupJob -Job $Job; + $JobDetails = Get-AzureBackupJobDetails -Vault $vault -JobID $Job.InstanceId; + Assert-AreEqual $JobDetails.Operation "Backup"; + Assert-AreEqual $JobDetails.Status "Completed"; + Assert-AreEqual $JobDetails.WorkloadName $VirtualMachineName; + Assert-AreEqual $JobDetails.Properties.Values.Contains($VirtualMachineName) "True"; + Assert-AreEqual $JobDetails.ResourceGroupName $ResourceGroupName; + Assert-AreEqual $JobDetails.ResourceName $ResourceName; + Assert-AreEqual $JobDetails.Location $ResourceGroupName; + + $item = Get-AzureBackupItem -Container $container[0]; + Assert-AreEqual $item.ProtectionStatus "Protected"; + Assert-AreEqual $item.ProtectionPolicyName $ProtectionPolicyName; + Assert-AreEqual $item.WorkloadName $VirtualMachineName; + Assert-AreEqual $item.RecoveryPointsCount "1"; + Assert-AreEqual $item.ResourceGroupName $ResourceGroupName; + Assert-AreEqual $item.ResourceName $ResourceName; + Assert-AreEqual $item.Location $ResourceGroupName; + + #ToDo: Swatim to verify output Assert after this. + $recoveryPoints = Get-AzureBackupRecoveryPoint -Item $item[0]; + $Job = Disable-AzureBackupProtection -RemoveRecoveryPoints -Item $item[0]; + Wait-AzureBackupJob -Job $Job; + $JobDetails = Get-AzureBackupJobDetails -Vault $vault -JobID $Job.InstanceId; + Assert-AreEqual $JobDetails.Operation "ConfigureBackup"; + Assert-AreEqual $JobDetails.Status "Completed"; + Assert-AreEqual $JobDetails.WorkloadName $VirtualMachineName; + Assert-AreEqual $JobDetails.Properties.Values.Contains($VirtualMachineName) "True"; + Assert-AreEqual $JobDetails.Properties.Values.Contains($ProtectionPolicyName) "True"; + Assert-AreEqual $JobDetails.ResourceGroupName $ResourceGroupName; + Assert-AreEqual $JobDetails.ResourceName $ResourceName; + Assert-AreEqual $JobDetails.Location $ResourceGroupName; + + $Job = Unregister-AzureBackupContainer -Container $container[0]; + Wait-AzureBackupJob -Job $Job; + $JobDetails = Get-AzureBackupJobDetails -Vault $vault -JobId $Job.InstanceId; + Assert-AreEqual $JobDetails.Status "Completed"; + + Remove-AzureBackupProtectionPolicy -ProtectionPolicy $protectionpolicy; + + Remove-AzureBackupVault -Vault $vault; + +} \ No newline at end of file From 53f1a9fdeb327e979ced13fe86c1131b8f00e3cf Mon Sep 17 00:00:00 2001 From: swatimadhukar Date: Mon, 20 Jul 2015 23:17:51 -0700 Subject: [PATCH 18/58] Renaming ScenarioTest class name --- .../ScenarioTests/AzureBackupScenarioTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs index a829d1247c31..23e71b845a13 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs @@ -21,7 +21,7 @@ namespace Microsoft.Azure.Commands.AzureBackup.Test.ScenarioTests { - public class AzureBackupContainerTests : AzureBackupTestsBase + public class AzureBackupScenarioTests : AzureBackupTestsBase { [Fact] public void AzureBackupEndToEndTests() From a61bdc1ea68a963c98194819761457a3ef5f1b2a Mon Sep 17 00:00:00 2001 From: panbha Date: Tue, 21 Jul 2015 15:46:49 +0530 Subject: [PATCH 19/58] pikumarandmychanges --- .../AzureBackupClientAdapter/ItemAdapter.cs | 20 +++++++++++------- .../OperationStatusAdapter.cs | 3 ++- .../Cmdlets/Backup/TriggerBackUp.cs | 6 +++--- .../Cmdlets/Restore/TriggerRestore.cs | 6 +++--- ...re.Management.BackupServicesManagement.dll | Bin 183808 -> 191488 bytes 5 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs index 781eeb26ae52..92c291fee473 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs @@ -38,8 +38,9 @@ public partial class AzureBackupClientAdapter /// public IEnumerable ListDataSources(DataSourceQueryParameter query) { - var response = AzureBackupClient.DataSource.ListAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; - return (response != null) ? response.DataSources.Objects : null; + return null; + //var response = AzureBackupClient.DataSource.ListAsync(query, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + //return (response != null) ? response.DataSources.Objects : null; } ///

diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs index c7d6bddb8400..94ba6447e4d2 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs @@ -59,7 +59,7 @@ public override void ExecuteCmdlet() WriteDebug(string.Format("Fetched {0} containers", containerList.Count())); - List containerInfos = containerList.ToList(); + List containerInfos = containerList.ToList(); // When resource group name is specified, remove all containers whose resource group name // doesn't match the given resource group name @@ -67,7 +67,8 @@ public override void ExecuteCmdlet() { containerInfos.RemoveAll(containerInfo => { - return containerInfo.ParentContainerName != ManagedResourceGroupName; + // TODO: Parse ManagedResourceGroupName from ParentContainerId by getting the last segment + return containerInfo.Properties.ParentContainerId != ManagedResourceGroupName; }); WriteDebug(string.Format("Count of containers after resource group filter = {0}", containerInfos.Count)); } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj index 5b74a39c9903..b6185da673ca 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj @@ -131,7 +131,6 @@ - diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs index eacc3110e4fa..fcade48e15ec 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupBaseObjects.cs @@ -79,10 +79,10 @@ public AzureBackupContainerContextObject(AzureBackupContainer azureBackupContain ContainerUniqueName = azureBackupContainer.ContainerUniqueName; } - public AzureBackupContainerContextObject(AzurePSBackupVault vault, ContainerInfo containerInfo) + public AzureBackupContainerContextObject(AzurePSBackupVault vault, CSMContainerResponse containerInfo) : base(vault.ResourceGroupName, vault.Name, vault.Region) { - ContainerType = containerInfo.ContainerType; + ContainerType = containerInfo.Properties.ContainerType; ContainerUniqueName = containerInfo.Name; } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupContainer.cs index 1aa5cb29615c..9fabb5e17afb 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupContainer.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupContainer.cs @@ -48,13 +48,14 @@ public class AzureBackupContainer : AzureBackupContainerContextObject public AzureBackupContainer() : base() { } - public AzureBackupContainer(AzurePSBackupVault vault, ContainerInfo containerInfo) + public AzureBackupContainer(AzurePSBackupVault vault, CSMContainerResponse containerInfo) : base(vault, containerInfo) { - ManagedResourceGroupName = containerInfo.ParentContainerFriendlyName; - ManagedResourceName = containerInfo.FriendlyName; - HealthStatus = containerInfo.HealthStatus; - RegistrationStatus = containerInfo.RegistrationStatus; + // TODO: Parse ManagedResourceGroupName from ParentContainerId by getting the last segment + //ManagedResourceGroupName = containerInfo.Properties.ParentContainerId; + ManagedResourceName = containerInfo.Properties.FriendlyName; + HealthStatus = containerInfo.Properties.HealthStatus; + RegistrationStatus = containerInfo.Properties.Status; } } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.Azure.Management.BackupServicesManagement.dll index ca702f6452f2309af8c01c55a5de0f56c7a50196..cf512f80b6d7e51d889b022dd8d99514031139e1 100644 GIT binary patch literal 169984 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 literal 176128 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 diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.WindowsAzure.Management.BackupServicesManagment.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/Microsoft.WindowsAzure.Management.BackupServicesManagment.dll deleted file mode 100644 index 3d16ad367de06d36c1539691f208cdf4931229f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152576 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 From 2c72b63b5508fc43abc1689af98ecb34d8fe5c14 Mon Sep 17 00:00:00 2001 From: mkherani Date: Wed, 8 Jul 2015 17:04:36 +0530 Subject: [PATCH 09/58] CSM related changes for Reg\unreg cmdlet-part1 (build wont work) --- .../ContainerAdapter.cs | 12 +++--- .../Container/RegisterAzureBackupContainer.cs | 10 ++--- .../Helpers/ContainerHelpers.cs | 40 +++++++++++++++++-- 3 files changed, 46 insertions(+), 16 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs index ac13b989177e..c01ed7759e1d 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs @@ -46,22 +46,22 @@ public IEnumerable ListContainers(string filter) /// /// Register container /// - /// + /// /// - public Guid RegisterContainer(RegisterContainerRequestInput request) + public Guid RegisterContainer(string containerName) { - var response = AzureBackupClient.Container.RegisterAsync(request, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + var response = AzureBackupClient.Container.RegisterAsync(containerName, GetCustomRequestHeaders(), CmdletCancellationToken).Result; return response.OperationId; } /// /// UnRegister container /// - /// + /// /// - public Guid UnRegisterContainer(UnregisterContainerRequestInput request) + public Guid UnRegisterContainer(string containerName) { - var response = AzureBackupClient.Container.UnregisterAsync(request, GetCustomRequestHeaders(), CmdletCancellationToken).Result; + var response = AzureBackupClient.Container.UnregisterAsync(containerName, GetCustomRequestHeaders(), CmdletCancellationToken).Result; return response.OperationId; } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs index b4edbe2df201..453d8db14429 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs @@ -101,10 +101,7 @@ public override void ExecuteCmdlet() //Container is discovered. Register the container WriteDebug(String.Format("Going to register VM {0}", vmName)); - List containerNameList = new List(); - containerNameList.Add(container.Name); - RegisterContainerRequestInput registrationRequest = new RegisterContainerRequestInput(containerNameList, AzureBackupContainerType.IaasVMContainer.ToString()); - var operationId = AzureBackupClient.RegisterContainer(registrationRequest); + var operationId = AzureBackupClient.RegisterContainer(container.Name); var operationStatus = GetOperationStatus(operationId); WriteObject(GetCreatedJobs(Vault, operationStatus.Jobs).FirstOrDefault()); @@ -178,9 +175,8 @@ private bool IsDiscoveryNeeded(string vmName, string rgName, out ContainerInfo c else { - //We can have multiple container with same friendly name. - //Look for resourceGroup name in the container unoque name - container = containers.Where(c => c.ParentContainerFriendlyName.ToLower().Equals(rgName.ToLower())).FirstOrDefault(); + //We can have multiple container with same friendly name. + container = containers.Where(c => ContainerHelpers.GetRGNameFromId(c.ParentContainerId).Equals(rgName.ToLower())).FirstOrDefault(); //TODO need to change. if (container == null) { //Container is not in list of registered container diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ContainerHelpers.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ContainerHelpers.cs index a898af793140..ee64a0482c7c 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ContainerHelpers.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ContainerHelpers.cs @@ -30,11 +30,14 @@ using CmdletModel = Microsoft.Azure.Commands.AzureBackup.Models; using System.Collections.Specialized; using System.Web; +using System.Text.RegularExpressions; namespace Microsoft.Azure.Commands.AzureBackup.Helpers { internal class ContainerHelpers { + private static readonly Regex ResourceGroupRegex = + new Regex(@"/resourceGroups/(?.+)/providers/", RegexOptions.Compiled); internal static string GetQueryFilter(ListContainerQueryParameter queryParams) { NameValueCollection collection = new NameValueCollection(); @@ -58,10 +61,41 @@ internal static string GetQueryFilter(ListContainerQueryParameter queryParams) return String.Empty; } - var httpValueCollection = HttpUtility.ParseQueryString(String.Empty); - httpValueCollection.Add(collection); + return CreateQueryString(collection); + } - return "&" + httpValueCollection.ToString(); + internal static string GetRGNameFromId(string id) + { + var match = ResourceGroupRegex.Match(id); + if (match.Success) + { + var resourceGroupNameGroup = match.Groups["resourceGroupName"]; + if (resourceGroupNameGroup != null && resourceGroupNameGroup.Success) + { + return resourceGroupNameGroup.Value; + } + } + + return null; + } + private static string CreateQueryString(NameValueCollection collection) + { + string filterValue = string.Empty; + + if (collection == null) + { + throw new ArgumentNullException("collection"); + } + + if (collection.Count > 0) + { + foreach (string key in collection.Keys) + { + filterValue += key + " eq '" + collection[key] + "' and "; + } + filterValue = filterValue.Remove(filterValue.Length - 5); + } + return filterValue; } } } From 29d200790c4d9eb5b4220fe764e9b9d70d750512 Mon Sep 17 00:00:00 2001 From: mkherani Date: Thu, 9 Jul 2015 17:31:29 +0530 Subject: [PATCH 10/58] CSM changes for Reg\unreg cmdlet --- .../ContainerAdapter.cs | 6 +++--- .../Container/GetAzureBackupContainer.cs | 5 +++-- .../Container/RegisterAzureBackupContainer.cs | 6 +++--- .../UnregisterAzureBackupContainer.cs | 3 +-- .../Models/AzureBackupBaseObjects.cs | 4 ++-- .../Models/AzureBackupContainer.cs | 11 ++++++----- ...re.Management.BackupServicesManagement.dll | Bin 176128 -> 167424 bytes 7 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs index c01ed7759e1d..8509de8d8697 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs @@ -37,10 +37,10 @@ public partial class AzureBackupClientAdapter ///