From 3f2cb13d5d4ef1854758c777acf682086c5da8b1 Mon Sep 17 00:00:00 2001 From: pragrawa Date: Wed, 26 Aug 2015 16:14:24 +0530 Subject: [PATCH 01/18] Policy Fix for Monthly Retention --- .../Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs index 97044655a262..41a26ccef932 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs @@ -763,7 +763,7 @@ private static IList ConvertToCSMDayList(List DaysOfMonth) foreach (string DayOfMonth in DaysOfMonth) { Day day = new Day(); - if (string.Compare(DayOfMonth,"IsLast", true) == 0) + if (string.Compare(DayOfMonth,"Last", true) == 0) { day.IsLast = true; } From b151fa3e9ca585c0d296b36825c205a5b9a11910 Mon Sep 17 00:00:00 2001 From: swatimadhukar Date: Tue, 8 Sep 2015 06:28:54 -0700 Subject: [PATCH 02/18] Scenario Tests improvement --- .../ScenarioTests/AzureBackupScenarioTests.cs | 4 +- .../AzureBackupScenarioTests.ps1 | 251 +++++++++++++++++- 2 files changed, 247 insertions(+), 8 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs index b5578d5037d8..8ee22afe6c4b 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs @@ -20,10 +20,10 @@ namespace Microsoft.Azure.Commands.AzureBackup.Test.ScenarioTests public class AzureBackupScenarioTests : AzureBackupTestsBase { [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] + //[Trait(Category.AcceptanceType, Category.CheckIn)] public void AzureBackupEndToEndTests() { - //this.RunPowerShellTest("Test-AzureBackupEndToEnd"); + 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 index a807675645ce..97d0fd915675 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.ps1 @@ -12,22 +12,87 @@ # limitations under the License. # ---------------------------------------------------------------------------------- -$ResourceGroupName = "backuprg" -$ResourceName = "backuprn" +$ResourceGroupName = "scenariorg" +$ResourceName = "scenariorn" $Location = "southeastasia" -$VirtualMachineName = "hydrarecordvm" -$ProtectionPolicyName = "e2epolicy1" +$VirtualMachineName = "e2epowershell2" +$ProtectionPolicyName = "e2epolicy2" $RestoreStorageAccount = "e2estore" +$ResultTxtFile = "EndToEndScenarioTest.txt" +$ResultCsvFile = "EndToEndScenarioTest.csv" + function Test-AzureBackupEndToEnd { + $FailFlag = 0; + $FailedAt = ""; + + Try + { + $startTime = Get-Date -format G; + New-AzureResourceGroup -Name $ResourceGroupName -Location $Location -Force; + $endTime = Get-Date -format G; + "New-AzureResourceGroup", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "New-AzureResourceGroup", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("New-AzureResourceGroup : " + $_); + } + + Try + { + $startTime = Get-Date -format G; New-AzureRMBackupVault -ResourceGroupName $ResourceGroupName -Name $ResourceName -Region $Location; + $endTime = Get-Date -format G; + "New-AzureRMBackupVault", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "New-AzureRMBackupVault", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("New-AzureRMBackupVault : " + $_); + } + + Try + { + $startTime = Get-Date -format G; $vault = Get-AzureRMBackupVault -Name $ResourceName; + $endTime = Get-Date -format G; + "Get-AzureRMBackupVault", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "Get-AzureRMBackupVault", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("Get-AzureRMBackupVault : " + $_); + } + + Try + { + $startTime = Get-Date -format G; $Job = Register-AzureRMBackupContainer -Vault $vault -Name $VirtualMachineName -ServiceName $VirtualMachineName; Wait-AzureRMBackupJob -Job $Job; $JobDetails = Get-AzureRMBackupJobDetails -Vault $vault -JobId $Job.InstanceId; Assert-AreEqual $JobDetails.Status "Completed"; + $endTime = Get-Date -format G; + "Register-AzureRMBackupContainer", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "Register-AzureRMBackupContainer", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("Register-AzureRMBackupContainer : " + $_); + } + Try + { + $startTime = Get-Date -format G; $r1 = New-AzureRMBackupRetentionPolicyObject -DailyRetention -Retention 20; $r2 = New-AzureRMBackupRetentionPolicyObject -WeeklyRetention -DaysOfWeek "Monday" -Retention 10; $r3 = New-AzureRMBackupRetentionPolicyObject -MonthlyRetentionInDailyFormat -DaysOfMonth "10" -Retention 10; @@ -42,7 +107,20 @@ function Test-AzureBackupEndToEnd Assert-AreEqual $protectionpolicy.ResourceGroupName $ResourceGroupName; Assert-AreEqual $protectionpolicy.ResourceName $ResourceName; Assert-AreEqual $protectionpolicy.Location $Location; - + $endTime = Get-Date -format G; + "New-AzureRMBackupProtectionPolicy", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "New-AzureRMBackupProtectionPolicy", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("New-AzureRMBackupProtectionPolicy : " + $_); + } + + Try + { + $startTime = Get-Date -format G; $container = Get-AzureRMBackupContainer -Vault $vault -Name $VirtualMachineName -Type "AzureVM"; Assert-AreEqual $container.ContainerType "AzureVM"; Assert-AreEqual $container.ContainerUniqueName.Contains("iaasvmcontainer") "True"; @@ -51,7 +129,20 @@ function Test-AzureBackupEndToEnd Assert-AreEqual $container.ResourceGroupName $ResourceGroupName; Assert-AreEqual $container.ResourceName $ResourceName; Assert-AreEqual $container.Location $Location; + $endTime = Get-Date -format G; + "Get-AzureRMBackupContainer", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "Get-AzureRMBackupContainer", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("Get-AzureRMBackupContainer : " + $_); + } + Try + { + $startTime = Get-Date -format G; $Job = Enable-AzureRMBackupProtection -Item $container[0] -Policy $protectionpolicy[0]; Wait-AzureRMBackupJob -Job $Job; $JobDetails = Get-AzureRMBackupJobDetails -Vault $vault -JobID $Job.InstanceId; @@ -63,7 +154,20 @@ function Test-AzureBackupEndToEnd Assert-AreEqual $JobDetails.ResourceGroupName $ResourceGroupName; Assert-AreEqual $JobDetails.ResourceName $ResourceName; Assert-AreEqual $JobDetails.Location $Location; + $endTime = Get-Date -format G; + "Enable-AzureRMBackupProtection", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "Enable-AzureRMBackupProtection", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("Enable-AzureRMBackupProtection : " + $_); + } + Try + { + $startTime = Get-Date -format G; $item = Get-AzureRMBackupItem -Container $container[0]; Assert-AreEqual $item.ProtectionStatus "Protected"; Assert-AreEqual $item.DataSourceStatus "IRPending"; @@ -75,7 +179,20 @@ function Test-AzureBackupEndToEnd Assert-AreEqual $item.ResourceGroupName $ResourceGroupName; Assert-AreEqual $item.ResourceName $ResourceName; Assert-AreEqual $item.Location $Location; + $endTime = Get-Date -format G; + "Get-AzureRMBackupItem", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "Get-AzureRMBackupItem", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("Get-AzureRMBackupItem : " + $_); + } + Try + { + $startTime = Get-Date -format G; $Job = Backup-AzureRMBackupItem -Item $item[0]; Wait-AzureRMBackupJob -Job $Job; $JobDetails = Get-AzureRMBackupJobDetails -Vault $vault -JobID $Job.InstanceId; @@ -87,7 +204,20 @@ function Test-AzureBackupEndToEnd Assert-AreEqual $JobDetails.ResourceGroupName $ResourceGroupName; Assert-AreEqual $JobDetails.ResourceName $ResourceName; Assert-AreEqual $JobDetails.Location $Location; + $endTime = Get-Date -format G; + "Backup-AzureRMBackupItem", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "Backup-AzureRMBackupItem", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("Backup-AzureRMBackupItem : " + $_); + } + Try + { + $startTime = Get-Date -format G; $item = Get-AzureRMBackupItem -Container $container[0]; Assert-AreEqual $item.ProtectionStatus "Protected"; Assert-AreEqual $item.DataSourceStatus "Protected"; @@ -96,7 +226,20 @@ function Test-AzureBackupEndToEnd Assert-AreEqual $item.ResourceGroupName $ResourceGroupName; Assert-AreEqual $item.ResourceName $ResourceName; Assert-AreEqual $item.Location $Location; + $endTime = Get-Date -format G; + "Get-AzureRMBackupItemPostBackup", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "Get-AzureRMBackupItemPostBackup", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("Get-AzureRMBackupItemPostBackup : " + $_); + } + Try + { + $startTime = Get-Date -format G; $recoveryPoints = Get-AzureRMBackupRecoveryPoint -Item $item[0]; Assert-NotNull $recoveryPoints.RecoveryPointTime; Assert-NotNull $recoveryPoints.RecoveryPointName; @@ -104,7 +247,20 @@ function Test-AzureBackupEndToEnd Assert-AreEqual $recoveryPoints.ContainerType "AzureVM"; Assert-AreEqual $recoveryPoints.ItemName.Contains($VirtualMachineName) "True"; Assert-AreEqual $recoveryPoints.ItemName.Contains("iaasvmcontainer") "True"; + $endTime = Get-Date -format G; + "Get-AzureRMBackupRecoveryPoint", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "Get-AzureRMBackupRecoveryPoint", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("Get-AzureRMBackupRecoveryPoint : " + $_); + } + Try + { + $startTime = Get-Date -format G; $Job = Restore-AzureRMBackupItem -RecoveryPoint $recoveryPoints -StorageAccountName $RestoreStorageAccount; Wait-AzureRMBackupJob -Job $Job; $JobDetails = Get-AzureRMBackupJobDetails -Vault $vault -JobID $Job.InstanceId; @@ -117,7 +273,20 @@ function Test-AzureBackupEndToEnd Assert-AreEqual $JobDetails.ResourceGroupName $ResourceGroupName; Assert-AreEqual $JobDetails.ResourceName $ResourceName; Assert-AreEqual $JobDetails.Location $Location; + $endTime = Get-Date -format G; + "Restore-AzureRMBackupItem", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "Restore-AzureRMBackupItem", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("Restore-AzureRMBackupItem : " + $_); + } + Try + { + $startTime = Get-Date -format G; $Job = Disable-AzureRMBackupProtection -RemoveRecoveryPoints -Item $item[0]; Wait-AzureRMBackupJob -Job $Job; $JobDetails = Get-AzureRMBackupJobDetails -Vault $vault -JobID $Job.InstanceId; @@ -129,18 +298,88 @@ function Test-AzureBackupEndToEnd Assert-AreEqual $JobDetails.ResourceGroupName $ResourceGroupName; Assert-AreEqual $JobDetails.ResourceName $ResourceName; Assert-AreEqual $JobDetails.Location $Location; + $endTime = Get-Date -format G; + "Disable-AzureRMBackupProtection", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "Disable-AzureRMBackupProtection", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("Disable-AzureRMBackupProtection : " + $_); + } + Try + { + $startTime = Get-Date -format G; $Job = Unregister-AzureRMBackupContainer -Container $container[0]; Wait-AzureRMBackupJob -Job $Job; $JobDetails = Get-AzureRMBackupJobDetails -Vault $vault -JobId $Job.InstanceId; Assert-AreEqual $JobDetails.Operation "UnRegister"; Assert-AreEqual $JobDetails.Status "Completed"; Assert-AreEqual $JobDetails.WorkloadName $VirtualMachineName; + $endTime = Get-Date -format G; + "Unregister-AzureRMBackupContaine", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "Unregister-AzureRMBackupContaine", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("Unregister-AzureRMBackupContaine : " + $_); + } + Try + { + $startTime = Get-Date -format G; Remove-AzureRMBackupProtectionPolicy -ProtectionPolicy $protectionpolicy; + $endTime = Get-Date -format G; + "Remove-AzureRMBackupProtectionPolicy", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "Remove-AzureRMBackupProtectionPolicy", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("Remove-AzureRMBackupProtectionPolicy : " + $_); + } + Try + { + $startTime = Get-Date -format G; Remove-AzureRMBackupVault -Vault $vault; - $deletedVault = Get-AzureRMBackupVault -Name $ResourceName; Assert-Null $deletedVault; + $endTime = Get-Date -format G; + "Remove-AzureRMBackupVault", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "Remove-AzureRMBackupVault", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("Remove-AzureRMBackupVault : " + $_); + } + + Try + { + $startTime = Get-Date -format G; + Remove-AzureResourceGroup -Name $ResourceGroupName -Force; + $endTime = Get-Date -format G; + "Remove-AzureResourceGroup", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; + } + Catch + { + $endTime = Get-Date -format G; + "Remove-AzureResourceGroup", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; + $FailFlag = 1; + $FailedAt = $FailedAt + ("Remove-AzureResourceGroup : " + $_); + } + + import-csv $ResultTxtFile -delimiter "," | export-csv $ResultCsvFile -NoTypeInformation; + + if ($FailFlag -eq 1) + { + throw $FailedAt; + } } \ No newline at end of file From 01271f67f2f726bed79df3c49b2ecf893a123fc1 Mon Sep 17 00:00:00 2001 From: mkherani Date: Tue, 22 Sep 2015 19:10:29 +0530 Subject: [PATCH 03/18] Bug #4674630: Register-AzureRMBackupContainer failing with mixed case names --- .../Cmdlets/Container/RegisterAzureRMBackupContainer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureRMBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureRMBackupContainer.cs index 60b2bba83617..2cbf0c61b33b 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureRMBackupContainer.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureRMBackupContainer.cs @@ -176,7 +176,7 @@ private bool IsDiscoveryNeeded(string vmName, string rgName, out CSMContainerRes else { //We can have multiple container with same friendly name. - container = containers.Where(c => ContainerHelpers.GetRGNameFromId(c.Properties.ParentContainerId).Equals(rgName.ToLower())).FirstOrDefault(); //TODO need to change. + container = containers.Where(c => ContainerHelpers.GetRGNameFromId(c.Properties.ParentContainerId).Equals(rgName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (container == null) { //Container is not in list of registered container From 045092b1e4b079f92f7dc919e8b393e6439f7e2d Mon Sep 17 00:00:00 2001 From: AditTulasi Date: Tue, 22 Sep 2015 19:19:46 +0530 Subject: [PATCH 04/18] fixing datetime tostring locale issue --- .../Cmdlets/Jobs/GetAzureRMBackupJob.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureRMBackupJob.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureRMBackupJob.cs index 2e3f297ac8e7..0be5932dba45 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureRMBackupJob.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureRMBackupJob.cs @@ -13,6 +13,7 @@ // ---------------------------------------------------------------------------------- using System; +using System.Globalization; using System.Management.Automation; using System.Collections.Generic; using System.Xml; @@ -139,10 +140,12 @@ protected override void ProcessRecord() WriteDebug(String.Format(Resources.TypeFilter, Type)); WriteDebug(String.Format(Resources.JobIdFilter, JobId)); + DateTimeFormatInfo format = new CultureInfo("en-US").DateTimeFormat; 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"), + + StartTime = From.Value.ToString("yyyy-MM-dd hh:mm:ss tt", format), + EndTime = To.Value.ToString("yyyy-MM-dd hh:mm:ss tt", format), Operation = Operation, Status = Status, WorkloadType = Type, From 378af92445e18964693f1147f8e112accea6806a Mon Sep 17 00:00:00 2001 From: AditTulasi Date: Wed, 23 Sep 2015 11:28:35 +0530 Subject: [PATCH 05/18] incorporating comments from CR --- .../Cmdlets/Jobs/GetAzureRMBackupJob.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureRMBackupJob.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureRMBackupJob.cs index 0be5932dba45..de54121fc7be 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureRMBackupJob.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/GetAzureRMBackupJob.cs @@ -133,14 +133,14 @@ protected override void ProcessRecord() To = DateTime.UtcNow; } - WriteDebug(String.Format(Resources.StartTimeFilter, System.Uri.EscapeDataString(From.Value.ToString("yyyy-MM-dd hh:mm:ss tt")))); - WriteDebug(String.Format(Resources.EndTimeFilter, System.Uri.EscapeDataString(To.Value.ToString("yyyy-MM-dd hh:mm:ss tt")))); + DateTimeFormatInfo format = new CultureInfo("en-US").DateTimeFormat; + WriteDebug(String.Format(Resources.StartTimeFilter, System.Uri.EscapeDataString(From.Value.ToString("yyyy-MM-dd hh:mm:ss tt", format)))); + WriteDebug(String.Format(Resources.EndTimeFilter, System.Uri.EscapeDataString(To.Value.ToString("yyyy-MM-dd hh:mm:ss tt", format)))); WriteDebug(String.Format(Resources.OperationFilter, Operation)); WriteDebug(String.Format(Resources.StatusFilter, Status)); WriteDebug(String.Format(Resources.TypeFilter, Type)); WriteDebug(String.Format(Resources.JobIdFilter, JobId)); - DateTimeFormatInfo format = new CultureInfo("en-US").DateTimeFormat; Mgmt.CSMJobQueryObject queryParams = new Mgmt.CSMJobQueryObject() { From d3576533474638971087e011e31b97f9104d3cd9 Mon Sep 17 00:00:00 2001 From: AditTulasi Date: Wed, 23 Sep 2015 19:08:42 +0530 Subject: [PATCH 06/18] Commenting out a test case which is not relevant --- .../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 8ee22afe6c4b..c1a2a78c6876 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs @@ -23,7 +23,7 @@ public class AzureBackupScenarioTests : AzureBackupTestsBase //[Trait(Category.AcceptanceType, Category.CheckIn)] public void AzureBackupEndToEndTests() { - this.RunPowerShellTest("Test-AzureBackupEndToEnd"); + //this.RunPowerShellTest("Test-AzureBackupEndToEnd"); } } } From 6f62d3a2351395d1f81e67f7ab2739adbcac413f Mon Sep 17 00:00:00 2001 From: pragrawa Date: Wed, 23 Sep 2015 20:43:24 +0530 Subject: [PATCH 07/18] Adding Force Option for Remove Commandlets --- .../AzureBackupItemTestCases.ps1 | 2 +- .../ScenarioTests/AzureBackupPolicyTests.ps1 | 2 +- .../RemoveAzureRMBackupProtectionPolicy.cs | 43 ++++--- .../Properties/Resources.Designer.cs | 106 ++++++++++++------ .../Properties/Resources.resx | 12 ++ 5 files changed, 114 insertions(+), 51 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 index b2c9869ebc92..54a4144e943f 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 @@ -80,5 +80,5 @@ function Test-DisableAzureBackupProtection $azureBackUpItem.Type = $DataSourceType $azureBackUpItem.ItemName = $itemName $azureBackUpItem.Name = $POName - $jobId1 = Disable-AzureRMBackupProtection -Item $azureBackUpItem + $jobId1 = Disable-AzureRMBackupProtection -Item $azureBackUpItem -Force } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 index 824ae6637d0f..2920f63c8f99 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 @@ -92,7 +92,7 @@ function Test-SetAzureBackupProtectionPolicyTests function Test-RemoveAzureBackupProtectionPolicyTests { - $vault = Get-AzureRMBackupVault -Name $ResourceName; + $vault = Get-AzureRMBackupVault -Name $ResourceName -Force; $protectionPolicy = Get-AzureRMBackupProtectionPolicy -vault $vault -Name $PolicyName Remove-AzureRMBackupProtectionPolicy -ProtectionPolicy $protectionPolicy diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/RemoveAzureRMBackupProtectionPolicy.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/RemoveAzureRMBackupProtectionPolicy.cs index a1e0712d986c..c36308698317 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/RemoveAzureRMBackupProtectionPolicy.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/ProtectionPolicy/RemoveAzureRMBackupProtectionPolicy.cs @@ -29,26 +29,37 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets [Cmdlet(VerbsCommon.Remove, "AzureRMBackupProtectionPolicy")] public class RemoveAzureRMBackupProtectionPolicy : AzureBackupPolicyCmdletBase { + [Parameter(Mandatory = false, HelpMessage = "Don't ask for confirmation.")] + public SwitchParameter Force { get; set; } + protected override void ProcessRecord() { - ExecutionBlock(() => - { - base.ProcessRecord(); + ConfirmAction( + Force.IsPresent, + string.Format(Resources.RemoveProtectionPolicyWarning, ProtectionPolicy.Name), + Resources.RemoveProtectionPolicyMessage, + ProtectionPolicy.Name, () => + { + ExecutionBlock(() => + { + base.ProcessRecord(); + + WriteDebug(Resources.MakingClientCall); - WriteDebug(Resources.MakingClientCall); + var policyInfo = AzureBackupClient.GetProtectionPolicyByName(ProtectionPolicy.ResourceGroupName, ProtectionPolicy.ResourceName, ProtectionPolicy.Name); + if (policyInfo != null) + { + AzureBackupClient.DeleteProtectionPolicy(ProtectionPolicy.ResourceGroupName, ProtectionPolicy.ResourceName, policyInfo.Name); + WriteDebug(Resources.ProtectionPolicyDeleted); + } + else + { + var exception = new ArgumentException(string.Format(Resources.PolicyNotFound, ProtectionPolicy.Name)); + throw exception; + } + }); - var policyInfo = AzureBackupClient.GetProtectionPolicyByName(ProtectionPolicy.ResourceGroupName, ProtectionPolicy.ResourceName, ProtectionPolicy.Name); - if (policyInfo != null) - { - AzureBackupClient.DeleteProtectionPolicy(ProtectionPolicy.ResourceGroupName, ProtectionPolicy.ResourceName, policyInfo.Name); - WriteDebug(Resources.ProtectionPolicyDeleted); - } - else - { - var exception = new ArgumentException(string.Format(Resources.PolicyNotFound, ProtectionPolicy.Name)); - throw exception; - } - }); + }); } } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Properties/Resources.Designer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Properties/Resources.Designer.cs index 5f78194dd775..a26fb69fc7f8 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Properties/Resources.Designer.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Properties/Resources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.18449 +// Runtime Version:4.0.30319.34209 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -139,7 +139,7 @@ internal static string BackupItemCmdletCalled { } /// - /// Looks up a localized string similar to For daily backup schedule, protection policy cannot have DaysOfWeek param in backup schedule. + /// Looks up a localized string similar to For a daily backup schedule, using the DaysOfWeek parameter is not allowed. /// internal static string BackupScheduleDailyParamException { get { @@ -148,7 +148,7 @@ internal static string BackupScheduleDailyParamException { } /// - /// Looks up a localized string similar to For weekly backup schedule, DaysOfWeek in backup schedule is mandatory and cannot be empty. + /// Looks up a localized string similar to For a weekly backup schedule, using the DaysOfWeek parameter is mandatory. /// internal static string BackupScheduleWeeklyParamException { get { @@ -265,7 +265,7 @@ internal static string CreatingBackupVault { } /// - /// Looks up a localized string similar to Only one AzureBackupDailyRetentionPolicy in RetentionPolicies is allowed. + /// Looks up a localized string similar to Only one daily retention policy is allowed for a Protection Policy. /// internal static string DailyRetentionPolicyException { get { @@ -274,7 +274,7 @@ internal static string DailyRetentionPolicyException { } /// - /// Looks up a localized string similar to For AzureBackupDailyRetentionPolicy , valid values of retention are {0} to {1}. + /// Looks up a localized string similar to The daily retention value should be between {0} and {1}. /// internal static string DailyRetentionPolicyValueException { get { @@ -283,7 +283,7 @@ internal static string DailyRetentionPolicyValueException { } /// - /// Looks up a localized string similar to For Daily Schedule, AzureBackupDailyRetentionPolicy in RetentionPolicies param is mandatory. + /// Looks up a localized string similar to For a daily backup schedule, setting a daily retention policy is mandatory. /// internal static string DailyScheduleException { get { @@ -292,7 +292,7 @@ internal static string DailyScheduleException { } /// - /// Looks up a localized string similar to Days of the month in Monthly/Yearly retention is not allowed for weekly backup Schedules. + /// Looks up a localized string similar to Using the DaysOfMonth parameter in retention policies is not allowed when weekly backup schedules are used. /// internal static string DaysOfMonthsNotAllowedinMonthlyYearlyFormat { get { @@ -301,7 +301,7 @@ internal static string DaysOfMonthsNotAllowedinMonthlyYearlyFormat { } /// - /// Looks up a localized string similar to DaysofTheWeek list in Weekly retention schedule must be same of backup schedule DaysOfTheWeek. + /// Looks up a localized string similar to The DaysOfWeek specified in a weekly retention schedule should be same as of DaysOfWeek value specified in the backup schedule. /// internal static string DaysofTheWeekInWeeklyRetentionException { get { @@ -310,7 +310,7 @@ internal static string DaysofTheWeekInWeeklyRetentionException { } /// - /// Looks up a localized string similar to DaysOfTheWeek of retention schedule must be same of backup schedule DaysOfTheWeek. + /// Looks up a localized string similar to The DaysOfWeek specified in a weekly retention schedule should be same as of DaysOfWeek value specified in the backup schedule. /// internal static string DaysOfTheWeekOfRetentionScheduleException { get { @@ -463,7 +463,7 @@ internal static string MakingClientCall { } /// - /// Looks up a localized string similar to For AzureBackupMonthlyRetentionPolicy and RetentionFormat in Days, DaysOfMonth param is mandatory and can not be empty. + /// Looks up a localized string similar to For a monthly retention policy specified in days, using the DaysOfMonth parameter is mandatory. /// internal static string MonthlyRetentionPolicyDaysOfMonthParamException { get { @@ -472,7 +472,7 @@ internal static string MonthlyRetentionPolicyDaysOfMonthParamException { } /// - /// Looks up a localized string similar to For AzureBackupMonthlyRetentionPolicy and RetentionFormat in Weeks, DaysOfMonth param is not allowed.. + /// Looks up a localized string similar to For a monthly retention policy specified in weeks, using the DaysOfMonth parameter is not allowed. /// internal static string MonthlyRetentionPolicyDaysOfMonthsException { get { @@ -481,7 +481,7 @@ internal static string MonthlyRetentionPolicyDaysOfMonthsException { } /// - /// Looks up a localized string similar to For AzureBackupMonthlyRetentionPolicy and RetentionFormat in Weeks, DaysOfWeek param is mandatory and can not be empty. + /// Looks up a localized string similar to For a monthly retention policy specified in weeks, using the DaysOfWeek parameter is mandatory. /// internal static string MonthlyRetentionPolicyDaysOfWeekException { get { @@ -490,7 +490,7 @@ internal static string MonthlyRetentionPolicyDaysOfWeekException { } /// - /// Looks up a localized string similar to For AzureBackupMonthlyRetentionPolicy and RetentionFormat in Days, DaysOfWeek or WeekNumber params are not allowed. + /// Looks up a localized string similar to For a monthly retention policy specified in days, using the DaysOfWeek and WeekNumber parameters is not allowed. /// internal static string MonthlyRetentionPolicyDaysOfWeekParamException { get { @@ -499,7 +499,7 @@ internal static string MonthlyRetentionPolicyDaysOfWeekParamException { } /// - /// Looks up a localized string similar to Only one AzureBackupMonthlyRetentionPolicy in RetentionPolicies is allowed. + /// Looks up a localized string similar to Only one monthly retention policy is allowed for a Protection Policy. /// internal static string MonthlyRetentionPolicyException { get { @@ -508,7 +508,7 @@ internal static string MonthlyRetentionPolicyException { } /// - /// Looks up a localized string similar to For AzureBackupMonthlyRetentionPolicy , valid values of retention are {0} to {1}. + /// Looks up a localized string similar to The monthly retention value should be between {0} and {1}. /// internal static string MonthlyRetentionPolicyValueException { get { @@ -517,7 +517,7 @@ internal static string MonthlyRetentionPolicyValueException { } /// - /// Looks up a localized string similar to For AzureBackupMonthlyRetentionPolicy and RetentionFormat in Weeks, WeekNumber param is mandatory and can not be empty. + /// Looks up a localized string similar to For a monthly retention policy specified in weeks, using the WeekNumber parameter is mandatory. /// internal static string MonthlyRetentionPolicyWeekNumException { get { @@ -526,7 +526,7 @@ internal static string MonthlyRetentionPolicyWeekNumException { } /// - /// Looks up a localized string similar to Days of the week list in Monthly/Yearly retention schedule should be subset of Day of week list in Backup Schedule. + /// Looks up a localized string similar to The DaysOfWeek specified for monthly and yearly retention policies should be a subset of the DaysOfWeek value specified in the backup schedule. /// internal static string MonthlyYearlyRetentionArgumentException { get { @@ -580,7 +580,7 @@ internal static string OperationStatus { } /// - /// Looks up a localized string similar to A protection policy with the specified name already exists.. + /// Looks up a localized string similar to A protection policy with the specified name already exists. /// internal static string PolicyAlreadyExist { get { @@ -589,7 +589,7 @@ internal static string PolicyAlreadyExist { } /// - /// Looks up a localized string similar to For DaysOfWeek, weekly switch param is required. + /// Looks up a localized string similar to The DaysOfWeek parameter should be used in conjunction with the –Weekly switch parameter. /// internal static string PolicyArgumentException { get { @@ -723,6 +723,46 @@ internal static string RegisteringVM { } } + /// + /// Looks up a localized string similar to Remove Protection Policy Message. + /// + internal static string RemoveProtectionPolicyMessage { + get { + return ResourceManager.GetString("RemoveProtectionPolicyMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove Protection Policy Warning;. + /// + internal static string RemoveProtectionPolicyWarning { + get { + return ResourceManager.GetString("RemoveProtectionPolicyWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Disable Protection Message. + /// + internal static string DisableProtectionMessage + { + get + { + return ResourceManager.GetString("DisableProtectionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Disable Protection Warning;. + /// + internal static string DisableProtectionWarning + { + get + { + return ResourceManager.GetString("DisableProtectionWarning", resourceCulture); + } + } + /// /// Looks up a localized string similar to Going to retry Discovery if retry count is not exceeded. /// @@ -949,7 +989,7 @@ internal static string WebException { } /// - /// Looks up a localized string similar to For AzureBackupWeeklyRetentionPolicy , DaysOfWeek param is mandatory and can not be empty. + /// Looks up a localized string similar to For a weekly retention policy, using the DaysOfWeek parameter is mandatory. /// internal static string WeeklyRetentionPolicyDaysOfWeekException { get { @@ -958,7 +998,7 @@ internal static string WeeklyRetentionPolicyDaysOfWeekException { } /// - /// Looks up a localized string similar to Only one AzureBackupWeeklyRetentionPolicy in RetentionPolicies is allowed. + /// Looks up a localized string similar to Only one weekly retention policy is allowed for a Protection Policy. /// internal static string WeeklyRetentionPolicyException { get { @@ -967,7 +1007,7 @@ internal static string WeeklyRetentionPolicyException { } /// - /// Looks up a localized string similar to For AzureBackupWeeklyRetentionPolicy , valid values of retention are {0} to {1}. + /// Looks up a localized string similar to The weekly retention value should be between {0} and {1}. /// internal static string WeeklyRetentionPolicyValueException { get { @@ -976,7 +1016,7 @@ internal static string WeeklyRetentionPolicyValueException { } /// - /// Looks up a localized string similar to For Weekly Schedule, AzureBackupWeeklyRetentionPolicy in RetentionPolicies param is mandatory. + /// Looks up a localized string similar to For a weekly backup schedule, setting a weekly retention policy is mandatory. /// internal static string WeeklyScheduleException { get { @@ -985,7 +1025,7 @@ internal static string WeeklyScheduleException { } /// - /// Looks up a localized string similar to For weekly scheduletype , ScheduleRunDays param is mandatory and can not be empty.. + /// Looks up a localized string similar to For a weekly backup schedule, using the DaysOfWeek parameter is mandatory. /// internal static string WeeklyScheduleRunDaysException { get { @@ -994,7 +1034,7 @@ internal static string WeeklyScheduleRunDaysException { } /// - /// Looks up a localized string similar to For Weekly Schedule, AzureBackupDailyRetentionPolicy in RetentionPolicies param is not allowed. + /// Looks up a localized string similar to For a weekly backup schedule, setting a daily retention policy is not allowed. /// internal static string WeeklyScheduleWithDailyException { get { @@ -1003,7 +1043,7 @@ internal static string WeeklyScheduleWithDailyException { } /// - /// Looks up a localized string similar to For AzureBackupYearlyRetentionPolicy and RetentionFormat in Weeks, DaysOfMonth param is not allowed. + /// Looks up a localized string similar to For a yearly retention policy specified in days, using the MonthsOfYear and DaysOfMonth parameters is not allowed. /// internal static string YearlyRetentionPolicyDaysOfMonthInWeekFormatException { get { @@ -1012,7 +1052,7 @@ internal static string YearlyRetentionPolicyDaysOfMonthInWeekFormatException { } /// - /// Looks up a localized string similar to For AzureBackupYearlyRetentionPolicy and RetentionFormat in Days, DaysOfMonth param is mandatory and can not be empty. + /// Looks up a localized string similar to For a yearly retention policy specified in days, using the MonthsOfYear and DaysOfMonth parameters is mandatory. /// internal static string YearlyRetentionPolicyDaysOfMonthParamException { get { @@ -1021,7 +1061,7 @@ internal static string YearlyRetentionPolicyDaysOfMonthParamException { } /// - /// Looks up a localized string similar to For AzureBackupYearlyRetentionPolicy and RetentionFormat in Weeks, DaysOfWeek param is mandatory and can not be empty. + /// Looks up a localized string similar to For a yearly retention policy specified in weeks, using the DaysOfWeek and WeekNumber parameters is mandatory. /// internal static string YearlyRetentionPolicyDaysOfWeekInWeeksFormatParamException { get { @@ -1030,7 +1070,7 @@ internal static string YearlyRetentionPolicyDaysOfWeekInWeeksFormatParamExceptio } /// - /// Looks up a localized string similar to For AzureBackupYearlyRetentionPolicy and RetentionFormat in Days, DaysOfWeek or WeekNumber params are not allowed. + /// Looks up a localized string similar to For a yearly retention policy specified in days, using the DaysOfWeek and WeekNumber parameters is not allowed. /// internal static string YearlyRetentionPolicyDaysOfWeekParamException { get { @@ -1039,7 +1079,7 @@ internal static string YearlyRetentionPolicyDaysOfWeekParamException { } /// - /// Looks up a localized string similar to Only one AzureBackupYearlyRetentionPolicy in RetentionPolicies is allowed. + /// Looks up a localized string similar to Only one yearly retention policy is allowed for a Protection Policy. /// internal static string YearlyRetentionPolicyException { get { @@ -1048,7 +1088,7 @@ internal static string YearlyRetentionPolicyException { } /// - /// Looks up a localized string similar to For AzureBackupYearlyRetentionPolicy and RetentionFormat in days, MonthsOfYear param is mandatory and can not be empty. + /// Looks up a localized string similar to For a yearly retention policy specified in days, using the MonthsOfYear and DaysOfMonth parameters is mandatory. /// internal static string YearlyRetentionPolicyMonthOfYearParamException { get { @@ -1057,7 +1097,7 @@ internal static string YearlyRetentionPolicyMonthOfYearParamException { } /// - /// Looks up a localized string similar to For AzureBackupYearlyRetentionPolicy , valid values of retention are {0} to {1}. + /// Looks up a localized string similar to Yearly retention value should be between {0} and {1}. /// internal static string YearlyRetentionPolicyValueException { get { @@ -1066,7 +1106,7 @@ internal static string YearlyRetentionPolicyValueException { } /// - /// Looks up a localized string similar to For AzureBackupYearlyRetentionPolicy and RetentionFormat in Weeks, WeekNumber param is mandatory and can not be empty. + /// Looks up a localized string similar to For a yearly retention policy specified in weeks, using the DaysOfWeek and WeekNumber parameters is mandatory. /// internal static string YearlyRetentionPolicyWeekNumParamException { get { diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Properties/Resources.resx b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Properties/Resources.resx index b6bca7072396..e300ab5acf9b 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Properties/Resources.resx +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Properties/Resources.resx @@ -493,4 +493,16 @@ Please contact Microsoft for further assistant. For a yearly retention policy specified in weeks, using the DaysOfWeek and WeekNumber parameters is mandatory Scrubbed + + Disabling protection for item + + + Are you sure you want to disable protection for item '{0}' + + + Removing protection policy + + + Are you sure you want to remove protection policy '{0}' + \ No newline at end of file From a3fbfe58f62ab10575807b75e36888466a603a7d Mon Sep 17 00:00:00 2001 From: pragrawa Date: Wed, 23 Sep 2015 20:48:47 +0530 Subject: [PATCH 08/18] Adding Force Option for Remove Commandlets --- .../Item/Disable-AzureRMBackupProtection .cs | 61 +++++++++++-------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureRMBackupProtection .cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureRMBackupProtection .cs index 750de6953a4d..21adff32d317 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureRMBackupProtection .cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Item/Disable-AzureRMBackupProtection .cs @@ -38,41 +38,52 @@ public SwitchParameter RemoveRecoveryPoints get { return DeleteBackupData; } set { DeleteBackupData = value; } } + + [Parameter(Mandatory = false, HelpMessage = "Don't ask for confirmation.")] + public SwitchParameter Force { get; set; } + private bool DeleteBackupData; protected override void ProcessRecord() { - ExecutionBlock(() => - { - base.ProcessRecord(); - Guid operationId = Guid.Empty; - WriteDebug(Resources.MakingClientCall); - - if (!this.DeleteBackupData) + ConfirmAction( + Force.IsPresent, + string.Format(Resources.DisableProtectionWarning, Item.Name), + Resources.DisableProtectionMessage, + Item.Name, () => { - //Calling update protection with policy Id as empty. - CSMUpdateProtectionRequest input = new CSMUpdateProtectionRequest() + ExecutionBlock(() => { - Properties = new CSMUpdateProtectionRequestProperties(string.Empty) - }; + base.ProcessRecord(); + Guid operationId = Guid.Empty; + WriteDebug(Resources.MakingClientCall); - operationId = AzureBackupClient.UpdateProtection(Item.ResourceGroupName, Item.ResourceName, Item.ContainerUniqueName, Item.ItemName, input); - } + if (!this.DeleteBackupData) + { + //Calling update protection with policy Id as empty. + CSMUpdateProtectionRequest input = new CSMUpdateProtectionRequest() + { + Properties = new CSMUpdateProtectionRequestProperties(string.Empty) + }; - else - { - //Calling disable protection - operationId = AzureBackupClient.DisableProtection(Item.ResourceGroupName, Item.ResourceName, Item.ContainerUniqueName, Item.ItemName); - } + operationId = AzureBackupClient.UpdateProtection(Item.ResourceGroupName, Item.ResourceName, Item.ContainerUniqueName, Item.ItemName, input); + } + + else + { + //Calling disable protection + operationId = AzureBackupClient.DisableProtection(Item.ResourceGroupName, Item.ResourceName, Item.ContainerUniqueName, Item.ItemName); + } - WriteDebug(Resources.DisableAzureBackupProtection); - var operationStatus = TrackOperation(Item.ResourceGroupName, Item.ResourceName, operationId); - this.WriteObject(GetCreatedJobs(Item.ResourceGroupName, - Item.ResourceName, - new Models.AzureRMBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), - operationStatus.JobList).FirstOrDefault()); - }); + WriteDebug(Resources.DisableAzureBackupProtection); + var operationStatus = TrackOperation(Item.ResourceGroupName, Item.ResourceName, operationId); + this.WriteObject(GetCreatedJobs(Item.ResourceGroupName, + Item.ResourceName, + new Models.AzureRMBackupVault(Item.ResourceGroupName, Item.ResourceName, Item.Location), + operationStatus.JobList).FirstOrDefault()); + }); + }); } } } \ No newline at end of file From ad719bea947734fd2ab467436f87cd8ee5959681 Mon Sep 17 00:00:00 2001 From: pragrawa Date: Wed, 23 Sep 2015 21:56:59 +0530 Subject: [PATCH 09/18] Merge Conflict --- .../ScenarioTests/AzureBackupItemTestCases.ps1 | 4 ---- .../ScenarioTests/AzureBackupPolicyTests.ps1 | 8 ++------ 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 index d5d7a0af3afb..79f7e505f86f 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 @@ -80,9 +80,5 @@ function Test-DisableAzureBackupProtection $azureBackUpItem.Type = $DataSourceType $azureBackUpItem.ItemName = $itemName $azureBackUpItem.Name = $POName -<<<<<<< HEAD $jobId1 = Disable-AzureRMBackupProtection -Item $azureBackUpItem -Force -======= - $jobId1 = Disable-AzureRmBackupProtection -Item $azureBackUpItem ->>>>>>> 06dd1ed62c72c0cf77f77233dda1c5c619cbe1eb } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 index 4816570b5e30..a6e172604406 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 @@ -95,10 +95,6 @@ function Test-RemoveAzureBackupProtectionPolicyTests <<<<<<< HEAD $vault = Get-AzureRMBackupVault -Name $ResourceName -Force; $protectionPolicy = Get-AzureRMBackupProtectionPolicy -vault $vault -Name $PolicyName -======= - $vault = Get-AzureRmBackupVault -Name $ResourceName; - $protectionPolicy = Get-AzureRmBackupProtectionPolicy -vault $vault -Name $PolicyName ->>>>>>> 06dd1ed62c72c0cf77f77233dda1c5c619cbe1eb - - Remove-AzureRmBackupProtectionPolicy -ProtectionPolicy $protectionPolicy + + Remove-AzureRmBackupProtectionPolicy -ProtectionPolicy $protectionPolicy -Force } From ca64e18d74bb839fa22447f251d8ea8459f70aec Mon Sep 17 00:00:00 2001 From: pragrawa Date: Wed, 23 Sep 2015 21:59:01 +0530 Subject: [PATCH 10/18] Merge Conflict --- .../ScenarioTests/AzureBackupPolicyTests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 index a6e172604406..8bfec5a3f1f4 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 @@ -92,7 +92,7 @@ function Test-SetAzureBackupProtectionPolicyTests function Test-RemoveAzureBackupProtectionPolicyTests { -<<<<<<< HEAD + $vault = Get-AzureRMBackupVault -Name $ResourceName -Force; $protectionPolicy = Get-AzureRMBackupProtectionPolicy -vault $vault -Name $PolicyName From 58dfc04df2bb2f0ba5804ae8a9268be7bcbaab45 Mon Sep 17 00:00:00 2001 From: pragrawa Date: Wed, 23 Sep 2015 22:00:12 +0530 Subject: [PATCH 11/18] Merge Conflict --- .../ScenarioTests/AzureBackupPolicyTests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 index 8bfec5a3f1f4..c6000d4eb642 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 @@ -93,7 +93,7 @@ function Test-SetAzureBackupProtectionPolicyTests function Test-RemoveAzureBackupProtectionPolicyTests { - $vault = Get-AzureRMBackupVault -Name $ResourceName -Force; + $vault = Get-AzureRMBackupVault -Name $ResourceName; $protectionPolicy = Get-AzureRMBackupProtectionPolicy -vault $vault -Name $PolicyName Remove-AzureRmBackupProtectionPolicy -ProtectionPolicy $protectionPolicy -Force From 8da70da8f02681cd5a8cf565822f3e8d5f29110d Mon Sep 17 00:00:00 2001 From: pragrawa Date: Thu, 24 Sep 2015 12:39:34 +0530 Subject: [PATCH 12/18] Merge Conflict --- .../ScenarioTests/AzureBackupItemTestCases.ps1 | 2 +- .../ScenarioTests/AzureBackupPolicyTests.ps1 | 4 ++-- .../ScenarioTests/AzureBackupScenarioTests.ps1 | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 index 79f7e505f86f..7d798efdee15 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 @@ -80,5 +80,5 @@ function Test-DisableAzureBackupProtection $azureBackUpItem.Type = $DataSourceType $azureBackUpItem.ItemName = $itemName $azureBackUpItem.Name = $POName - $jobId1 = Disable-AzureRMBackupProtection -Item $azureBackUpItem -Force + $jobId1 = Disable-AzureRmBackupProtection -Item $azureBackUpItem -Force } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 index c6000d4eb642..dd6ab6348991 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 @@ -93,8 +93,8 @@ function Test-SetAzureBackupProtectionPolicyTests function Test-RemoveAzureBackupProtectionPolicyTests { - $vault = Get-AzureRMBackupVault -Name $ResourceName; - $protectionPolicy = Get-AzureRMBackupProtectionPolicy -vault $vault -Name $PolicyName + $vault = Get-AzureRmBackupVault -Name $ResourceName; + $protectionPolicy = Get-AzureRmBackupProtectionPolicy -vault $vault -Name $PolicyName Remove-AzureRmBackupProtectionPolicy -ProtectionPolicy $protectionPolicy -Force } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.ps1 index 1fc676f33a9d..3c50b376f733 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.ps1 @@ -287,7 +287,7 @@ function Test-AzureBackupEndToEnd Try { $startTime = Get-Date -format G; - $Job = Disable-AzureRmBackupProtection -RemoveRecoveryPoints -Item $item[0]; + $Job = Disable-AzureRmBackupProtection -RemoveRecoveryPoints -Item $item[0] -Force; Wait-AzureRmBackupJob -Job $Job; $JobDetails = Get-AzureRmBackupJobDetails -Vault $vault -JobID $Job.InstanceId; Assert-AreEqual $JobDetails.Operation "Unprotect"; @@ -332,7 +332,7 @@ function Test-AzureBackupEndToEnd Try { $startTime = Get-Date -format G; - Remove-AzureRmBackupProtectionPolicy -ProtectionPolicy $protectionpolicy; + Remove-AzureRmBackupProtectionPolicy -ProtectionPolicy $protectionpolicy -Force; $endTime = Get-Date -format G; "Remove-AzureRmBackupProtectionPolicy", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; } From 2eec8839de05fe26848e592263298e262e4b65e2 Mon Sep 17 00:00:00 2001 From: pragrawa Date: Thu, 24 Sep 2015 12:59:07 +0530 Subject: [PATCH 13/18] Merge Conflict --- .../ScenarioTests/AzureBackupPolicyTests.ps1 | 2 +- .../Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 index dd6ab6348991..ab3e4a480995 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 @@ -95,6 +95,6 @@ function Test-RemoveAzureBackupProtectionPolicyTests $vault = Get-AzureRmBackupVault -Name $ResourceName; $protectionPolicy = Get-AzureRmBackupProtectionPolicy -vault $vault -Name $PolicyName - + Remove-AzureRmBackupProtectionPolicy -ProtectionPolicy $protectionPolicy -Force } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs index 41a26ccef932..9980dfcdf7a5 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs @@ -763,7 +763,7 @@ private static IList ConvertToCSMDayList(List DaysOfMonth) foreach (string DayOfMonth in DaysOfMonth) { Day day = new Day(); - if (string.Compare(DayOfMonth,"Last", true) == 0) + if (string.Compare(DayOfMonth, LastDayOfTheMonth, true) == 0) { day.IsLast = true; } From 323db1bbff1e134f815e80aba31fd1da923d791c Mon Sep 17 00:00:00 2001 From: pragrawa Date: Thu, 24 Sep 2015 14:23:34 +0530 Subject: [PATCH 14/18] Scrub strings --- .../Commands.AzureBackup/Properties/Resources.resx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Properties/Resources.resx b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Properties/Resources.resx index e300ab5acf9b..2cd8f7ffdf93 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Properties/Resources.resx +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Properties/Resources.resx @@ -494,15 +494,15 @@ Please contact Microsoft for further assistant. Scrubbed - Disabling protection for item + Disabling protection for the item - Are you sure you want to disable protection for item '{0}' + Are you sure you want to disable protection for the item '{0}' - Removing protection policy + Removing the protection policy - Are you sure you want to remove protection policy '{0}' + Are you sure you want to remove the protection policy '{0}' \ No newline at end of file From cfacd2b9e61b07aa67d6b6d23cbf9ab85f843ec2 Mon Sep 17 00:00:00 2001 From: pragrawa Date: Thu, 24 Sep 2015 18:46:08 +0530 Subject: [PATCH 15/18] TestCases --- .../AzureBackupItemTestCases.ps1 | 12 +- .../ScenarioTests/AzureBackupPolicyTests.ps1 | 4 +- .../ScenarioTests/AzureBackupScenarioTests.cs | 29 -- .../AzureBackupScenarioTests.ps1 | 385 ------------------ 4 files changed, 8 insertions(+), 422 deletions(-) delete mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs delete mode 100644 src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.ps1 diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 index 7d798efdee15..3a7a0aa0ad49 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupItemTestCases.ps1 @@ -13,16 +13,16 @@ # ---------------------------------------------------------------------------------- $ResourceGroupName = "backuprg" -$ResourceName = "backuprn" -$ContainerName = "iaasvmcontainer;hydrarecordvm;hydrarecordvm" +$ResourceName = "backuprn2" +$ContainerName = "iaasvmcontainer;powershellbvt1;powershellbvt1" $ContainerType = "IaasVMContainer" $DataSourceType = "IaasVM" $DataSourceId = "17593283453810" -$Location = "SouthEast Asia" +$Location = "westus" $PolicyName = "ProtPolicy01"; -$PolicyId = "/subscriptions/f5303a0b-fae4-4cdb-b44d-0e4c032dde26/resourceGroups/backuprg/providers/Microsoft.Backup/BackupVault/backuprn/protectionPolicies/DefaultPolicy"; -$POName = "hydrarecordvm" -$itemName = "iaasvmcontainer;hydrarecordvm;hydrarecordvm" +$PolicyId = "/subscriptions/f5303a0b-fae4-4cdb-b44d-0e4c032dde26/resourceGroups/backuprg/providers/Microsoft.Backup/BackupVault/backuprn2/protectionPolicies/DefaultPolicy"; +$POName = "powershellbvt1" +$itemName = "iaasvmcontainer;powershellbvt1;powershellbvt1" function Test-GetAzureBackupItemTests diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 index ab3e4a480995..55be49cf5939 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupPolicyTests.ps1 @@ -13,9 +13,9 @@ # ---------------------------------------------------------------------------------- $ResourceGroupName = "backuprg" -$ResourceName = "backuprn" +$ResourceName = "backuprn2" $DataSourceType = "VM" -$Location = "SouthEast Asia" +$Location = "westus" $PolicyName = "Policy10"; $PolicyId = "c87bbada-6e1b-4db2-b76c-9062d28959a4"; $POName = "iaasvmcontainer;hydrarecordvm;hydrarecordvm" diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs deleted file mode 100644 index 8ee22afe6c4b..000000000000 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.cs +++ /dev/null @@ -1,29 +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.WindowsAzure.Commands.ScenarioTest; -using Xunit; - -namespace Microsoft.Azure.Commands.AzureBackup.Test.ScenarioTests -{ - public class AzureBackupScenarioTests : AzureBackupTestsBase - { - [Fact] - //[Trait(Category.AcceptanceType, Category.CheckIn)] - 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 deleted file mode 100644 index 3c50b376f733..000000000000 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupScenarioTests.ps1 +++ /dev/null @@ -1,385 +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. -# ---------------------------------------------------------------------------------- - -$ResourceGroupName = "scenariorg" -$ResourceName = "scenariorn" -$Location = "southeastasia" -$VirtualMachineName = "e2epowershell2" -$ProtectionPolicyName = "e2epolicy2" -$RestoreStorageAccount = "e2estore" -$ResultTxtFile = "EndToEndScenarioTest.txt" -$ResultCsvFile = "EndToEndScenarioTest.csv" - - -function Test-AzureBackupEndToEnd -{ - $FailFlag = 0; - $FailedAt = ""; - - Try - { - $startTime = Get-Date -format G; - New-AzureResourceGroup -Name $ResourceGroupName -Location $Location -Force; - $endTime = Get-Date -format G; - "New-AzureResourceGroup", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "New-AzureResourceGroup", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("New-AzureResourceGroup : " + $_); - } - - Try - { - $startTime = Get-Date -format G; - New-AzureRmBackupVault -ResourceGroupName $ResourceGroupName -Name $ResourceName -Region $Location; - $endTime = Get-Date -format G; - "New-AzureRmBackupVault", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "New-AzureRmBackupVault", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("New-AzureRmBackupVault : " + $_); - } - - Try - { - $startTime = Get-Date -format G; - $vault = Get-AzureRmBackupVault -Name $ResourceName; - $endTime = Get-Date -format G; - "Get-AzureRmBackupVault", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "Get-AzureRmBackupVault", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("Get-AzureRmBackupVault : " + $_); - } - - Try - { - $startTime = Get-Date -format G; - $Job = Register-AzureRmBackupContainer -Vault $vault -Name $VirtualMachineName -ServiceName $VirtualMachineName; - Wait-AzureRmBackupJob -Job $Job; - $JobDetails = Get-AzureRmBackupJobDetails -Vault $vault -JobId $Job.InstanceId; - Assert-AreEqual $JobDetails.Status "Completed"; - $endTime = Get-Date -format G; - "Register-AzureRmBackupContainer", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "Register-AzureRmBackupContainer", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("Register-AzureRmBackupContainer : " + $_); - } - - Try - { - $startTime = Get-Date -format G; - $r1 = New-AzureRmBackupRetentionPolicyObject -DailyRetention -Retention 20; - $r2 = New-AzureRmBackupRetentionPolicyObject -WeeklyRetention -DaysOfWeek "Monday" -Retention 10; - $r3 = New-AzureRmBackupRetentionPolicyObject -MonthlyRetentionInDailyFormat -DaysOfMonth "10" -Retention 10; - $r = ($r1, $r2, $r3); - $backupTime = (Get-Date("17 August 2015 15:30:00")).ToUniversalTime(); - $protectionpolicy = New-AzureRmBackupProtectionPolicy -Vault $vault -Name $ProtectionPolicyName -Type "AzureVM" -Daily -BackupTime $backupTime -RetentionPolicy $r; - - Assert-AreEqual $protectionpolicy.Name $ProtectionPolicyName; - Assert-AreEqual $protectionpolicy.Type "AzureVM"; - Assert-AreEqual $protectionpolicy.ScheduleType "Daily"; - Assert-AreEqual $protectionpolicy.RetentionPolicy.Count 3; - Assert-AreEqual $protectionpolicy.ResourceGroupName $ResourceGroupName; - Assert-AreEqual $protectionpolicy.ResourceName $ResourceName; - Assert-AreEqual $protectionpolicy.Location $Location; - $endTime = Get-Date -format G; - "New-AzureRmBackupProtectionPolicy", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "New-AzureRmBackupProtectionPolicy", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("New-AzureRmBackupProtectionPolicy : " + $_); - } - - Try - { - $startTime = Get-Date -format G; - $container = Get-AzureRmBackupContainer -Vault $vault -Name $VirtualMachineName -Type "AzureVM"; - Assert-AreEqual $container.ContainerType "AzureVM"; - Assert-AreEqual $container.ContainerUniqueName.Contains("iaasvmcontainer") "True"; - Assert-AreEqual $container.ContainerUniqueName.Contains($VirtualMachineName) "True"; - Assert-AreEqual $container.Status "Registered"; - Assert-AreEqual $container.ResourceGroupName $ResourceGroupName; - Assert-AreEqual $container.ResourceName $ResourceName; - Assert-AreEqual $container.Location $Location; - $endTime = Get-Date -format G; - "Get-AzureRmBackupContainer", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "Get-AzureRmBackupContainer", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("Get-AzureRmBackupContainer : " + $_); - } - - Try - { - $startTime = Get-Date -format G; - $Job = Enable-AzureRmBackupProtection -Item $container[0] -Policy $protectionpolicy[0]; - Wait-AzureRmBackupJob -Job $Job; - $JobDetails = Get-AzureRmBackupJobDetails -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 $Location; - $endTime = Get-Date -format G; - "Enable-AzureRmBackupProtection", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "Enable-AzureRmBackupProtection", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("Enable-AzureRmBackupProtection : " + $_); - } - - Try - { - $startTime = Get-Date -format G; - $item = Get-AzureRmBackupItem -Container $container[0]; - Assert-AreEqual $item.ProtectionStatus "Protected"; - Assert-AreEqual $item.DataSourceStatus "IRPending"; - Assert-AreEqual $item.ProtectionPolicyName $ProtectionPolicyName; - Assert-AreEqual $item.ContainerType "AzureVM"; - Assert-NotNull $item.Type; - Assert-AreEqual $item.ItemName.Contains("iaasvmcontainer") "True"; - Assert-AreEqual $item.ItemName.Contains($VirtualMachineName) "True"; - Assert-AreEqual $item.ResourceGroupName $ResourceGroupName; - Assert-AreEqual $item.ResourceName $ResourceName; - Assert-AreEqual $item.Location $Location; - $endTime = Get-Date -format G; - "Get-AzureRmBackupItem", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "Get-AzureRmBackupItem", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("Get-AzureRmBackupItem : " + $_); - } - - Try - { - $startTime = Get-Date -format G; - $Job = Backup-AzureRmBackupItem -Item $item[0]; - Wait-AzureRmBackupJob -Job $Job; - $JobDetails = Get-AzureRmBackupJobDetails -Vault $vault -JobID $Job.InstanceId; - Assert-AreEqual $JobDetails.Operation "Backup"; - Assert-AreEqual $JobDetails.Status "Completed"; - Assert-NotNull $JobDetails.WorkloadType; - 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 $Location; - $endTime = Get-Date -format G; - "Backup-AzureRmBackupItem", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "Backup-AzureRmBackupItem", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("Backup-AzureRmBackupItem : " + $_); - } - - Try - { - $startTime = Get-Date -format G; - $item = Get-AzureRmBackupItem -Container $container[0]; - Assert-AreEqual $item.ProtectionStatus "Protected"; - Assert-AreEqual $item.DataSourceStatus "Protected"; - Assert-AreEqual $item.ProtectionPolicyName $ProtectionPolicyName; - Assert-AreEqual $item.RecoveryPointsCount "1"; - Assert-AreEqual $item.ResourceGroupName $ResourceGroupName; - Assert-AreEqual $item.ResourceName $ResourceName; - Assert-AreEqual $item.Location $Location; - $endTime = Get-Date -format G; - "Get-AzureRmBackupItemPostBackup", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "Get-AzureRmBackupItemPostBackup", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("Get-AzureRmBackupItemPostBackup : " + $_); - } - - Try - { - $startTime = Get-Date -format G; - $recoveryPoints = Get-AzureRmBackupRecoveryPoint -Item $item[0]; - Assert-NotNull $recoveryPoints.RecoveryPointTime; - Assert-NotNull $recoveryPoints.RecoveryPointName; - # Assert-AreEqual $recoveryPoints.RecoveryPointType "FileSystemConsistent"; - Assert-AreEqual $recoveryPoints.ContainerType "AzureVM"; - Assert-AreEqual $recoveryPoints.ItemName.Contains($VirtualMachineName) "True"; - Assert-AreEqual $recoveryPoints.ItemName.Contains("iaasvmcontainer") "True"; - $endTime = Get-Date -format G; - "Get-AzureRmBackupRecoveryPoint", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "Get-AzureRmBackupRecoveryPoint", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("Get-AzureRmBackupRecoveryPoint : " + $_); - } - - Try - { - $startTime = Get-Date -format G; - $Job = Restore-AzureRmBackupItem -RecoveryPoint $recoveryPoints -StorageAccountName $RestoreStorageAccount; - Wait-AzureRmBackupJob -Job $Job; - $JobDetails = Get-AzureRmBackupJobDetails -Vault $vault -JobID $Job.InstanceId; - Assert-AreEqual $JobDetails.Operation "Restore"; - Assert-AreEqual $JobDetails.Status "Completed"; - Assert-NotNull $JobDetails.WorkloadType; - Assert-AreEqual $JobDetails.WorkloadName $VirtualMachineName; - Assert-AreEqual $JobDetails.Properties.Values.Contains($RestoreStorageAccount) "True"; - Assert-AreEqual $JobDetails.Properties.Values.Contains("Recover disks") "True"; - Assert-AreEqual $JobDetails.ResourceGroupName $ResourceGroupName; - Assert-AreEqual $JobDetails.ResourceName $ResourceName; - Assert-AreEqual $JobDetails.Location $Location; - $endTime = Get-Date -format G; - "Restore-AzureRmBackupItem", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "Restore-AzureRmBackupItem", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("Restore-AzureRmBackupItem : " + $_); - } - - Try - { - $startTime = Get-Date -format G; - $Job = Disable-AzureRmBackupProtection -RemoveRecoveryPoints -Item $item[0] -Force; - Wait-AzureRmBackupJob -Job $Job; - $JobDetails = Get-AzureRmBackupJobDetails -Vault $vault -JobID $Job.InstanceId; - Assert-AreEqual $JobDetails.Operation "Unprotect"; - Assert-AreEqual $JobDetails.Status "Completed"; - Assert-AreEqual $JobDetails.WorkloadName $VirtualMachineName; - Assert-AreEqual $JobDetails.Properties.Values.Contains($VirtualMachineName) "True"; - Assert-AreEqual $JobDetails.Properties.Keys.Contains("Delete Backup Data") "True"; - Assert-AreEqual $JobDetails.ResourceGroupName $ResourceGroupName; - Assert-AreEqual $JobDetails.ResourceName $ResourceName; - Assert-AreEqual $JobDetails.Location $Location; - $endTime = Get-Date -format G; - "Disable-AzureRmBackupProtection", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "Disable-AzureRmBackupProtection", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("Disable-AzureRmBackupProtection : " + $_); - } - - Try - { - $startTime = Get-Date -format G; - $Job = Unregister-AzureRmBackupContainer -Container $container[0]; - Wait-AzureRmBackupJob -Job $Job; - $JobDetails = Get-AzureRmBackupJobDetails -Vault $vault -JobId $Job.InstanceId; - Assert-AreEqual $JobDetails.Operation "UnRegister"; - Assert-AreEqual $JobDetails.Status "Completed"; - Assert-AreEqual $JobDetails.WorkloadName $VirtualMachineName; - $endTime = Get-Date -format G; - "Unregister-AzureRmBackupContaine", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "Unregister-AzureRmBackupContaine", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("Unregister-AzureRmBackupContaine : " + $_); - } - - Try - { - $startTime = Get-Date -format G; - Remove-AzureRmBackupProtectionPolicy -ProtectionPolicy $protectionpolicy -Force; - $endTime = Get-Date -format G; - "Remove-AzureRmBackupProtectionPolicy", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "Remove-AzureRmBackupProtectionPolicy", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("Remove-AzureRmBackupProtectionPolicy : " + $_); - } - - Try - { - $startTime = Get-Date -format G; - Remove-AzureRmBackupVault -Vault $vault; - $deletedVault = Get-AzureRmBackupVault -Name $ResourceName; - Assert-Null $deletedVault; - $endTime = Get-Date -format G; - "Remove-AzureRmBackupVault", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "Remove-AzureRmBackupVault", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("Remove-AzureRmBackupVault : " + $_); - } - - Try - { - $startTime = Get-Date -format G; - Remove-AzureResourceGroup -Name $ResourceGroupName -Force; - $endTime = Get-Date -format G; - "Remove-AzureResourceGroup", "Pass", $startTime, $endTime -join "," >> $ResultTxtFile; - } - Catch - { - $endTime = Get-Date -format G; - "Remove-AzureResourceGroup", "Fail", $startTime, $endTime -join "," >> $ResultTxtFile; - $FailFlag = 1; - $FailedAt = $FailedAt + ("Remove-AzureResourceGroup : " + $_); - } - - import-csv $ResultTxtFile -delimiter "," | export-csv $ResultCsvFile -NoTypeInformation; - - if ($FailFlag -eq 1) - { - throw $FailedAt; - } -} \ No newline at end of file From af0e6b621e0ec83ff54d5459894514b434b1c170 Mon Sep 17 00:00:00 2001 From: pragrawa Date: Thu, 24 Sep 2015 19:49:12 +0530 Subject: [PATCH 16/18] TestCases --- .../Commands.AzureBackup.Test.csproj | 6 +- .../AzureBackupItemTestCases.ps1 | 2 +- .../ScenarioTests/AzureBackupPolicyTests.ps1 | 2 +- .../DisableAzureBackupProtectionTest.json | 138 ++++++++---- .../EnableAzureBackupProtectionTest.json | 206 ++++++++++++------ .../ListAzureBackupItemTests.json | 52 ++--- .../ListProtectionPolicyByNameTests.json | 70 +++--- .../ListProtectionPolicyTests.json | 70 +++--- .../NewProtectionPolicyTests.json | 118 +++++----- .../RemoveProtectionPolicyTests.json | 118 +++++----- .../SetProtectionPolicyTests.json | 144 ++++++------ 11 files changed, 525 insertions(+), 401 deletions(-) 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 0d7daab37859..550f54aafcd1 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj @@ -130,7 +130,6 @@ - @@ -172,9 +171,6 @@ Always - - Always - Always @@ -259,7 +255,7 @@ -