Skip to content

Commit fb17222

Browse files
Support Route Map CRUD (#21270)
* Route Map changes * Update ChangeLog.md * Resolve comments * Remove unused ssh * Resolve more comments * Add routing configuration and inbound/outbound connections in routemap object * Add helper files * Fix static analysis * Add tests and new fix * Fix more * Fix typo * Fix * Fix tests * Fix more * Fix * Add Session records --------- Co-authored-by: Yabo Hu <[email protected]>
1 parent 5deeb61 commit fb17222

33 files changed

+11255
-5
lines changed

src/Network/Network.Test/ScenarioTests/CortexTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,14 @@ public void TestStaticRoutesConfig()
5151
TestRunner.RunTestScript("Test-StaticRoutesConfigCRUD");
5252
}
5353

54+
[Fact]
55+
[Trait(Category.AcceptanceType, Category.CheckIn)]
56+
[Trait(Category.Owner, NrpTeamAlias.virtualwan)]
57+
public void TestRouteMapCRUD()
58+
{
59+
TestRunner.RunTestScript("Test-RouteMapCRUD");
60+
}
61+
5462
[Fact]
5563
[Trait(Category.AcceptanceType, Category.CheckIn)]
5664
[Trait(Category.Owner, NrpTeamAlias.brooklynft)]

src/Network/Network.Test/ScenarioTests/CortexTests.ps1

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -489,6 +489,84 @@ function Test-RoutingIntentCRUD
489489
}
490490
}
491491

492+
function Test-RouteMapCRUD
493+
{
494+
# Setup
495+
$rgName = Get-ResourceName
496+
$rglocation = Get-ProviderLocation ResourceManagement "centraluseuap"
497+
$virtualWanName = Get-ResourceName
498+
$virtualHubName = Get-ResourceName
499+
$routeMapName = "testRouteMap"
500+
$virtualNetworkName = "testVirtualNetwork"
501+
$virtualNetworkConnectionName = "testVirtualNetworkConnection"
502+
503+
try
504+
{
505+
# Create the resource group
506+
$resourceGroup = New-AzResourceGroup -Name $rgName -Location $rglocation
507+
508+
# Create the Virtual Wan
509+
$createdVirtualWan = New-AzVirtualWan -ResourceGroupName $rgName -Name $virtualWanName -Location $rglocation -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic
510+
$virtualWan = Get-AzVirtualWan -ResourceGroupName $rgName -Name $virtualWanName
511+
Assert-AreEqual $rgName $virtualWan.ResourceGroupName
512+
Assert-AreEqual $virtualWanName $virtualWan.Name
513+
514+
# Create the Virtual Hub
515+
$createdVirtualHub = New-AzVirtualHub -ResourceGroupName $rgName -Name $virtualHubName -Location $rglocation -AddressPrefix "192.168.1.0/24" -VirtualWan $virtualWan -HubRoutingPreference "ASPath"
516+
$virtualHub = Get-AzVirtualHub -ResourceGroupName $rgName -Name $virtualHubName
517+
Assert-AreEqual $rgName $virtualHub.ResourceGroupName
518+
Assert-AreEqual $virtualHubName $virtualHub.Name
519+
Assert-AreEqual "192.168.1.0/24" $virtualHub.AddressPrefix
520+
521+
# Create a route map in the Virtual hub
522+
$routeMapMatchCriterion1 = New-AzRouteMapRuleCriterion -MatchCondition "Contains" -RoutePrefix @("10.0.0.0/16")
523+
$routeMapActionParameter1 = New-AzRouteMapRuleActionParameter -AsPath @("12345")
524+
$routeMapAction1 = New-AzRouteMapRuleAction -Type "Add" -Parameter @($routeMapActionParameter1)
525+
$routeMapRule1 = New-AzRouteMapRule -Name "rule1" -MatchCriteria @($routeMapMatchCriterion1) -RouteMapRuleAction @($routeMapAction1) -NextStepIfMatched "Continue"
526+
527+
$routeMapMatchCriterion2 = New-AzRouteMapRuleCriterion -MatchCondition "Equals" -AsPath @("12345")
528+
$routeMapAction2 = New-AzRouteMapRuleAction -Type "Drop"
529+
$routeMapRule2 = New-AzRouteMapRule -Name "rule2" -MatchCriteria @($routeMapMatchCriterion2) -RouteMapRuleAction @($routeMapAction2) -NextStepIfMatched "Terminate"
530+
531+
New-AzRouteMap -ResourceGroupName $rgName -VirtualHubName $virtualHubName -Name $routeMapName -RouteMapRule @($routeMapRule1, $routeMapRule2)
532+
$routeMap = Get-AzRouteMap -ResourceGroupName $rgName -VirtualHubName $virtualHubName -Name $routeMapName
533+
Assert-AreEqual $routeMap.Rules.Count 2
534+
535+
Update-AzRouteMap -ResourceGroupName $rgName -VirtualHubName $virtualHubName -Name $routeMapName -RouteMapRule @($routeMapRule2)
536+
$routeMap = Get-AzRouteMap -ResourceGroupName $rgName -VirtualHubName $virtualHubName -Name $routeMapName
537+
Assert-AreEqual $routeMap.Rules.Count 1
538+
Assert-AreEqual $routeMap.AssociatedInboundConnections.Count 0
539+
540+
$rt1 = Get-AzVHubRouteTable -ResourceGroupName $rgName -VirtualHubName $virtualHubName -Name "defaultRouteTable"
541+
$testRoutingConfiguration =New-AzRoutingConfiguration -AssociatedRouteTable $rt1.Id -Label @("testLabel") -Id @($rt1.Id) -InboundRouteMap $routeMap.Id
542+
543+
# creating virtual network and a virtual hub vnet connection resource
544+
$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.2.1.0/24"
545+
$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.2.2.0/24"
546+
$remoteVirtualNetwork = New-AzVirtualNetwork -Name $virtualNetworkName -ResourceGroupName $rgName -Location $rglocation -AddressPrefix "10.2.0.0/16" -Subnet $frontendSubnet,$backendSubnet
547+
New-AzVirtualHubVnetConnection -ResourceGroupName $rgName -VirtualHubName $virtualHubName -Name $virtualNetworkConnectionName -RemoteVirtualNetwork $remoteVirtualNetwork -RoutingConfiguration $testRoutingConfiguration
548+
549+
$routeMap = Get-AzRouteMap -ResourceGroupName $rgName -VirtualHubName $virtualHubName -Name $routeMapName
550+
Assert-AreEqual $routeMap.AssociatedInboundConnections.Count 1
551+
552+
$delete = Remove-AzVirtualHubVnetConnection -ResourceGroupName $rgName -VirtualHubName $virtualHubName -Name $virtualNetworkConnectionName -Force -PassThru
553+
Assert-AreEqual $True $delete
554+
555+
$delete = Remove-AzRouteMap -ResourceGroupName $rgName -VirtualHubName $virtualHubName -Name $routeMapName -Force -PassThru
556+
Assert-AreEqual $True $delete
557+
558+
$delete = Remove-AzVirtualHub -ResourceGroupName $rgName -Name $virtualHubName -Force -PassThru
559+
Assert-AreEqual $True $delete
560+
561+
$delete = Remove-AzVirtualWan -ResourceGroupName $rgName -Name $virtualWanName -Force -PassThru
562+
Assert-AreEqual $True $delete
563+
}
564+
finally
565+
{
566+
Clean-ResourceGroup $rgname
567+
}
568+
}
569+
492570
<#
493571
.SYNOPSIS
494572
VpnSiteIsSecurity

0 commit comments

Comments
 (0)