Skip to content

Commit 38c6cfa

Browse files
ankursood23ANKUR SOODCopilot
authored
AVNM UDR Management update to support RouteTableUsageMode (#28670)
Co-authored-by: ANKUR SOOD <[email protected]> Co-authored-by: Copilot <[email protected]>
1 parent 8011544 commit 38c6cfa

File tree

8 files changed

+3801
-1222
lines changed

8 files changed

+3801
-1222
lines changed

src/Network/Network.Test/ScenarioTests/NetworkManagerTests.ps1

Lines changed: 79 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -964,6 +964,7 @@ function Test-NetworkManagerRoutingRuleCRUD
964964
$subnetNetworkGroupName = Get-ResourceName
965965
$staticMemberName = Get-ResourceName
966966
$RoutingConfigurationName = Get-ResourceName
967+
$RoutingConfigurationName2 = Get-ResourceName
967968
$RuleCollectionName = Get-ResourceName
968969
$RuleName1 = Get-ResourceName
969970
$rglocation = "centraluseuap"
@@ -1000,43 +1001,100 @@ function Test-NetworkManagerRoutingRuleCRUD
10001001
$vnetNetworkGroup = Get-AzNetworkManagerGroup -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -Name $vnetNetworkGroupName
10011002
$subnetNetworkGroup = Get-AzNetworkManagerGroup -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -Name $subnetNetworkGroupName
10021003

1003-
# Create a Routing Configuration
1004-
New-AzNetworkManagerRoutingConfiguration -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -Name $RoutingConfigurationName -Description "Sample Routing Configuration"
1004+
#region RouteTableUsageMode Tests - New Configuration
1005+
1006+
# Test 1: Create Routing Configuration with explicit ManagedOnly mode
1007+
New-AzNetworkManagerRoutingConfiguration -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -Name $RoutingConfigurationName -Description "Sample Routing Configuration" -RouteTableUsageMode "ManagedOnly"
10051008

10061009
$routingConfig = Get-AzNetworkManagerRoutingConfiguration -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -Name $RoutingConfigurationName
10071010
Assert-NotNull $routingConfig;
10081011
Assert-AreEqual $RoutingConfigurationName $routingConfig.Name;
1012+
Assert-AreEqual "ManagedOnly" $routingConfig.RouteTableUsageMode;
1013+
Assert-AreEqual "Sample Routing Configuration" $routingConfig.Description;
1014+
1015+
# Test 2: Create Routing Configuration without specifying RouteTableUsageMode (should default to ManagedOnly)
1016+
New-AzNetworkManagerRoutingConfiguration -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -Name $RoutingConfigurationName2 -Description "Default mode test"
1017+
1018+
$routingConfig2 = Get-AzNetworkManagerRoutingConfiguration -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -Name $RoutingConfigurationName2
1019+
Assert-NotNull $routingConfig2;
1020+
Assert-AreEqual $RoutingConfigurationName2 $routingConfig2.Name;
1021+
Assert-AreEqual "ManagedOnly" $routingConfig2.RouteTableUsageMode;
1022+
Assert-AreEqual "Default mode test" $routingConfig2.Description;
1023+
1024+
# Test 3: Create Routing Configuration with UseExisting mode
1025+
$RoutingConfigurationName3 = Get-ResourceName
1026+
New-AzNetworkManagerRoutingConfiguration -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -Name $RoutingConfigurationName3 -Description "UseExisting mode test" -RouteTableUsageMode "UseExisting"
1027+
1028+
$routingConfig3 = Get-AzNetworkManagerRoutingConfiguration -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -Name $RoutingConfigurationName3
1029+
Assert-NotNull $routingConfig3;
1030+
Assert-AreEqual "UseExisting" $routingConfig3.RouteTableUsageMode;
1031+
1032+
#endregion
10091033

10101034
# Validate List Routing config command
10111035
$routingConfigs = Get-AzNetworkManagerRoutingConfiguration -ResourceGroupName $rgname -NetworkManagerName $networkManagerName
10121036
Assert-NotNull $routingConfigs
1013-
Assert-AreEqual 1 $routingConfigs.Count
1037+
Assert-AreEqual 3 $routingConfigs.Count
10141038

1015-
# Get by resourceId
1039+
#region RouteTableUsageMode Tests - Get by ResourceId
1040+
1041+
# Test 4: Get by resourceId and verify RouteTableUsageMode is preserved
10161042
$resourceId = $routingConfig.Id
10171043
$routingConfig = Get-AzNetworkManagerRoutingConfiguration -ResourceId $resourceId
10181044
Assert-NotNull $routingConfig
10191045
Assert-AreEqual $resourceId $routingConfig.Id
1046+
Assert-AreEqual "ManagedOnly" $routingConfig.RouteTableUsageMode
10201047

1021-
# Set by InputObject
1048+
#endregion
1049+
1050+
#region RouteTableUsageMode Tests - Set/Update Operations
1051+
1052+
# Test 5: Set by InputObject - update description and route table usage mode to UseExisting
10221053
$routingConfig.Description = "A different description."
1054+
$routingConfig.RouteTableUsageMode = "UseExisting"
10231055
$routingConfig = Set-AzNetworkManagerRoutingConfiguration -InputObject $routingConfig
10241056
Assert-NotNull $routingConfig;
10251057
Assert-AreEqual "A different description." $routingConfig.Description;
10261058
Assert-AreEqual $RoutingConfigurationName $routingConfig.Name;
1059+
Assert-AreEqual "UseExisting" $routingConfig.RouteTableUsageMode;
10271060

1028-
# Set by resourceId
1061+
# Test 6: Set by resourceId - update description only (RouteTableUsageMode should be preserved as UseExisting)
10291062
$resourceId = $routingConfig.Id
10301063
$routingConfig = Set-AzNetworkManagerRoutingConfiguration -ResourceId $resourceId -Description "Updated description."
10311064
Assert-NotNull $routingConfig;
10321065
Assert-AreEqual "Updated description." $routingConfig.Description;
10331066
Assert-AreEqual $RoutingConfigurationName $routingConfig.Name;
1067+
Assert-AreEqual "UseExisting" $routingConfig.RouteTableUsageMode;
10341068

1035-
# Set by Name
1036-
$routingConfig = Set-AzNetworkManagerRoutingConfiguration -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -Name $RoutingConfigurationName -Description "Updated description again."
1069+
# Test 7: Set by Name - update description and explicitly change back to ManagedOnly mode
1070+
$routingConfig = Set-AzNetworkManagerRoutingConfiguration -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -Name $RoutingConfigurationName -Description "Updated description again." -RouteTableUsageMode "ManagedOnly"
10371071
Assert-NotNull $routingConfig;
10381072
Assert-AreEqual "Updated description again." $routingConfig.Description;
10391073
Assert-AreEqual $RoutingConfigurationName $routingConfig.Name;
1074+
Assert-AreEqual "ManagedOnly" $routingConfig.RouteTableUsageMode;
1075+
1076+
# Test 8: Set by Name - update only description (RouteTableUsageMode should remain ManagedOnly)
1077+
$routingConfig = Set-AzNetworkManagerRoutingConfiguration -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -Name $RoutingConfigurationName -Description "Description update without mode change"
1078+
Assert-NotNull $routingConfig;
1079+
Assert-AreEqual "Description update without mode change" $routingConfig.Description;
1080+
Assert-AreEqual "ManagedOnly" $routingConfig.RouteTableUsageMode;
1081+
1082+
# Test 9: Set by InputObject - change mode to UseExisting
1083+
$routingConfig.RouteTableUsageMode = "UseExisting"
1084+
$routingConfig = Set-AzNetworkManagerRoutingConfiguration -InputObject $routingConfig
1085+
Assert-AreEqual "UseExisting" $routingConfig.RouteTableUsageMode;
1086+
1087+
# Test 10: Set by resourceId - explicitly set mode to ManagedOnly
1088+
$resourceId = $routingConfig.Id
1089+
$routingConfig = Set-AzNetworkManagerRoutingConfiguration -ResourceId $resourceId -RouteTableUsageMode "ManagedOnly"
1090+
Assert-AreEqual "ManagedOnly" $routingConfig.RouteTableUsageMode;
1091+
1092+
# Test 11: Verify that the second config (created without explicit mode) can be updated
1093+
$routingConfig2 = Set-AzNetworkManagerRoutingConfiguration -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -Name $RoutingConfigurationName2 -RouteTableUsageMode "UseExisting"
1094+
Assert-AreEqual "UseExisting" $routingConfig2.RouteTableUsageMode;
1095+
Assert-AreEqual "Default mode test" $routingConfig2.Description;
1096+
1097+
#endregion
10401098

10411099
# Create a Routing Rule Collection
10421100
[System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerRoutingGroupItem]]$configGroup = @()
@@ -1154,6 +1212,10 @@ function Test-NetworkManagerRoutingRuleCRUD
11541212

11551213
#endregion - End Routing Rule Set-* cmdlets tests
11561214

1215+
# Verify RouteTableUsageMode persists through configuration operations
1216+
$finalRoutingConfig = Get-AzNetworkManagerRoutingConfiguration -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -Name $RoutingConfigurationName
1217+
Assert-AreEqual "ManagedOnly" $finalRoutingConfig.RouteTableUsageMode;
1218+
11571219
$configIds = @($routingConfig.Id)
11581220
$regions = @($rglocation)
11591221
Deploy-AzNetworkManagerCommit -ResourceGroupName $rgname -Name $networkManagerName -TargetLocation $regions -ConfigurationId $configIds -CommitType "Routing"
@@ -1187,6 +1249,15 @@ function Test-NetworkManagerRoutingRuleCRUD
11871249
$job | Wait-Job;
11881250
$removeResult = $job | Receive-Job;
11891251

1252+
# Remove additional routing configurations
1253+
$job = Remove-AzNetworkManagerRoutingConfiguration -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -Name $RoutingConfigurationName2 -ForceDelete -PassThru -Force -AsJob;
1254+
$job | Wait-Job;
1255+
$removeResult = $job | Receive-Job;
1256+
1257+
$job = Remove-AzNetworkManagerRoutingConfiguration -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -Name $RoutingConfigurationName3 -ForceDelete -PassThru -Force -AsJob;
1258+
$job | Wait-Job;
1259+
$removeResult = $job | Receive-Job;
1260+
11901261
$job = Remove-AzNetworkManagerStaticMember -ResourceGroupName $rgname -NetworkManagerName $networkManagerName -NetworkGroupName $vnetNetworkGroupName -Name $staticMemberName -PassThru -Force -AsJob;
11911262
$job | Wait-Job;
11921263
$removeResult = $job | Receive-Job;

0 commit comments

Comments
 (0)