Skip to content

Commit c0f336b

Browse files
[Recovery Services] Bug fix for update cmdlet in HyperV to Azure provider scenario of Azure Site recovery (#26528)
* Fix the issue that UXMetadata generate null in example.parameters (#26505) * Fixing bug for update RPI with UseManagedDiskForReplication * More changes * Updated changelog * Minor fix --------- Co-authored-by: Yunchi Wang <[email protected]>
1 parent 9f4d71b commit c0f336b

File tree

6 files changed

+1347
-5
lines changed

6 files changed

+1347
-5
lines changed

src/RecoveryServices/RecoveryServices.SiteRecovery.Test/ScenarioTests/B2A/AsrB2ATests.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,5 +146,14 @@ public void CreateRPIWithMangedDisksForReplication()
146146
$"Import-Module {_testModule.AsAbsoluteLocation()}",
147147
$"Test-CreateRPIWithMangedDisksForReplication -vaultSettingsFilePath \"{_credModule.AsAbsoluteLocation()}\"");
148148
}
149+
150+
[Fact]
151+
[Trait(Category.AcceptanceType, Category.CheckIn)]
152+
public void UpdateRPIWithMangedDisksForReplication()
153+
{
154+
TestRunner.RunTestScript(
155+
$"Import-Module {_testModule.AsAbsoluteLocation()}",
156+
$"Test-UpdateRPIWithMangedDisksForReplication -vaultSettingsFilePath \"{_credModule.AsAbsoluteLocation()}\"");
157+
}
149158
}
150159
}

src/RecoveryServices/RecoveryServices.SiteRecovery.Test/ScenarioTests/B2A/AsrB2ATests.ps1

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -949,4 +949,30 @@ function Test-CreateRPIWithMangedDisksForReplication
949949
WaitForJobCompletion -JobId $EnableDRjob.Name
950950
$Job = Get-AzRecoveryServicesAsrJob -Name $EnableDRjob.Name
951951
Assert-True { $Job.State -eq "Succeeded" }
952+
}
953+
954+
<#
955+
.SYNOPSIS
956+
Site Recovery Update RPI with managed disks for replication
957+
#>
958+
function Test-UpdateRPIWithMangedDisksForReplication
959+
{
960+
param([string] $vaultSettingsFilePath)
961+
962+
Import-AzRecoveryServicesAsrVaultSettingsFile -Path $vaultSettingsFilePath
963+
$PrimaryFabricName = "powershelltest"
964+
$fabric = Get-AsrFabric -FriendlyName $PrimaryFabricName
965+
$pc = Get-ASRProtectionContainer -Fabric $fabric
966+
$ProtectionContainerMapping = Get-ASRProtectionContainerMapping -ProtectionContainer $pc
967+
$policy = Get-AzRecoveryServicesAsrPolicy -Name $PolicyName
968+
$VMName = "powershellvm2"
969+
970+
$rpi = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $pc -FriendlyName $VMName
971+
$Updatejob = Set-AzRecoveryServicesAsrReplicationProtectedItem `
972+
-InputObject $rpi `
973+
-SqlServerLicenseType AHUB
974+
975+
WaitForJobCompletion -JobId $Updatejob.Name
976+
$Job = Get-AzRecoveryServicesAsrJob -Name $Updatejob.Name
977+
Assert-True { $Job.State -eq "Succeeded" }
952978
}

src/RecoveryServices/RecoveryServices.SiteRecovery.Test/SessionRecords/RecoveryServices.SiteRecovery.Test.AsrB2ATests/UpdateRPIWithMangedDisksForReplication.json

Lines changed: 1296 additions & 0 deletions
Large diffs are not rendered by default.

src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/SetAzureRmRecoveryServicesAsrReplicationProtectedItem.cs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -513,11 +513,17 @@ public override void ExecuteSiteRecoveryCmdlet()
513513
useManagedDisk));
514514
}
515515

516-
var deploymentType = Utilities.GetValueFromArmId(
517-
providerSpecificDetails.RecoveryAzureStorageAccount,
518-
ARMResourceTypeConstants.Providers);
519-
if (deploymentType.ToLower()
520-
.Contains(Constants.Classic.ToLower()))
516+
string deploymentType = Constants.ResourceManager;
517+
518+
if (!string.IsNullOrEmpty(providerSpecificDetails.RecoveryAzureStorageAccount))
519+
{
520+
deploymentType = Utilities.GetValueFromArmId(
521+
providerSpecificDetails.RecoveryAzureStorageAccount,
522+
ARMResourceTypeConstants.Providers);
523+
}
524+
525+
if (!string.IsNullOrEmpty(deploymentType) && deploymentType.ToLower()
526+
.Contains(Constants.Classic.ToLower()))
521527
{
522528
providerSpecificInput =
523529
new HyperVReplicaAzureUpdateReplicationProtectedItemInput

src/RecoveryServices/RecoveryServices/ChangeLog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
- Additional information about change #1
1919
-->
2020
## Upcoming Release
21+
* Fixed bug in `Set-ASRReplicationProtectedItem` cmdlet of H2A for replication to MD scenario.
2122

2223
## Version 7.2.0
2324
* Fixed bug for making RecoveryAzureStorageAccountId parameter optional in `New-ASRReplicationProtectedItem` cmdlet of H2A.

tools/StaticAnalysis/UXMetadataAnalyzer/UXMetadataAnalyzer.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,10 @@ private void ValidateMetadata(IssueLoggerContext context, string UXMetadataConte
178178

179179
private void ValidateExample(IssueLoggerContext context, UXMetadataCommand command, CmdletMetadata cmdletMetadata, UXMetadataCommandExample example, ReportLogger<UXMetadataIssue> issueLogger)
180180
{
181+
if (example.Parameters == null)
182+
{
183+
return;
184+
}
181185
List<string> parameterListConvertedFromAlias = example.Parameters.Select(x =>
182186
{
183187
string parameterNameInExample = x.Name.Trim('-');

0 commit comments

Comments
 (0)