Skip to content

Commit a40c2af

Browse files
authored
Merge pull request Azure#3614 from lamchester/dev
BGP Route APIs
2 parents 37694ee + ebc6cec commit a40c2af

File tree

240 files changed

+34544
-19157
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

240 files changed

+34544
-19157
lines changed

src/ResourceManager/Network/AzureRM.Network.psd1

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,11 @@ CmdletsToExport = 'Add-AzureRmApplicationGatewayAuthenticationCertificate',
284284
'Get-AzureRmVirtualNetworkSubnetConfig',
285285
'Add-AzureRmVirtualNetworkSubnetConfig',
286286
'New-AzureRmVirtualNetworkSubnetConfig',
287-
'Get-AzureRmVirtualNetwork', 'New-AzureRmVirtualNetwork'
287+
'Get-AzureRmVirtualNetwork',
288+
'New-AzureRmVirtualNetwork',
289+
'Get-AzureRmVirtualNetworkGatewayBgpPeerStatus',
290+
'Get-AzureRmVirtualNetworkGatewayAdvertisedRoute',
291+
'Get-AzureRmVirtualNetworkGatewayLearnedRoute'
288292

289293
# Variables to export from this module
290294
# VariablesToExport = @()

src/ResourceManager/Network/Commands.Network.Test/Commands.Network.Test.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,9 @@
457457
<None Include="SessionRecords\Commands.Network.Test.ScenarioTests.VirtualNetworkGatewayConnectionTests\TestVirtualNetworkGatewayConnectionWithActiveAcitveGateway.json">
458458
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
459459
</None>
460+
<None Include="SessionRecords\Commands.Network.Test.ScenarioTests.VirtualNetworkGatewayTests\VirtualNetworkGatewayRouteApiTest.json">
461+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
462+
</None>
460463
<None Include="SessionRecords\Commands.Network.Test.ScenarioTests.VirtualNetworkTests\TestResourceNavigationLinksOnSubnetCRUD.json">
461464
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
462465
</None>

src/ResourceManager/Network/Commands.Network.Test/ScenarioTests/VirtualNetworkGatewayTests.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,11 @@ public void VirtualNetworkGatewayActiveActiveFeatureTest()
5151
{
5252
NetworkResourcesController.NewInstance.RunPsTest("Test-VirtualNetworkGatewayActiveActiveFeatureOperations");
5353
}
54+
55+
[Fact]
56+
public void VirtualNetworkGatewayRouteApiTest()
57+
{
58+
NetworkResourcesController.NewInstance.RunPsTest("Test-VirtualNetworkGatewayBgpRouteApi");
59+
}
5460
}
5561
}

src/ResourceManager/Network/Commands.Network.Test/ScenarioTests/VirtualNetworkGatewayTests.ps1

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,4 +413,76 @@ function Test-VirtualNetworkGatewayActiveActiveFeatureOperations
413413
# Cleanup
414414
Clean-ResourceGroup $rgname
415415
}
416+
}
417+
418+
<#
419+
.SYNOPSIS
420+
Virtual network gateway BGP route API test
421+
#>
422+
function Test-VirtualNetworkGatewayBgpRouteApi
423+
{
424+
# Setup
425+
$rgname = Get-ResourceGroupName
426+
$gwname = Get-ResourceName
427+
$domainNameLabel = Get-ResourceName
428+
$vnetName = Get-ResourceName
429+
$publicIpName = Get-ResourceName
430+
$vnetGatewayConfigName = Get-ResourceName
431+
$rgLocation = Get-ProviderLocation ResourceManagement
432+
$resourceTypeParent = "Microsoft.Network/virtualNetworkGateways"
433+
$location = Get-ProviderLocation $resourceTypeParent
434+
435+
$gwname1 = Get-ResourceName
436+
$vnetName1 = Get-ResourceName
437+
$publicIpName1 = Get-ResourceName
438+
$domainNameLabel1 = Get-ResourceName
439+
$vnetGatewayConfigName1 = Get-ResourceName
440+
441+
$connectionName = Get-ResourceName
442+
$connectionName1 = Get-ResourceName
443+
444+
try
445+
{
446+
$resourceGroup = New-AzureRmResourceGroup -Name $rgname -Location $rglocation
447+
$subnet = New-AzureRmVirtualNetworkSubnetConfig -Name "GatewaySubnet" -AddressPrefix 10.0.0.0/24
448+
$vnet = New-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $rgname -Location $location -AddressPrefix 10.0.0.0/16 -Subnet $subnet
449+
$vnet = Get-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $rgname
450+
$subnet = Get-AzureRmVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
451+
$publicip = New-AzureRmPublicIpAddress -ResourceGroupName $rgname -name $publicIpName -location $location -AllocationMethod Dynamic -DomainNameLabel $domainNameLabel
452+
$vnetIpConfig = New-AzureRmVirtualNetworkGatewayIpConfig -Name $vnetGatewayConfigName -PublicIpAddress $publicip -Subnet $subnet
453+
$gw = New-AzureRmVirtualNetworkGateway -ResourceGroupName $rgname -name $gwname -location $location -IpConfigurations $vnetIpConfig -GatewayType Vpn -VpnType RouteBased -GatewaySku Standard
454+
$gw = Get-AzureRmVirtualNetworkGateway -ResourceGroupName $rgname -name $gwname
455+
456+
$subnet1 = New-AzureRmVirtualNetworkSubnetConfig -Name "GatewaySubnet" -AddressPrefix 10.1.0.0/24
457+
$vnet1 = New-AzureRmVirtualNetwork -Name $vnetName1 -ResourceGroupName $rgname -Location $location -AddressPrefix 10.1.0.0/16 -Subnet $subnet1
458+
$vnet1 = Get-AzureRmVirtualNetwork -Name $vnetName1 -ResourceGroupName $rgname
459+
$subnet1 = Get-AzureRmVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet1
460+
$publicip1 = New-AzureRmPublicIpAddress -Name $publicIpName1 -ResourceGroupName $rgname -location $location -AllocationMethod Dynamic -DomainNameLabel $domainNameLabel1
461+
$vnetIpConfig1 = New-AzureRmVirtualNetworkGatewayIpConfig -Name $vnetGatewayConfigName1 -PublicIpAddress $publicip1 -Subnet $subnet1
462+
$gw1 = New-AzureRmVirtualNetworkGateway -ResourceGroupName $rgname -name $gwname1 -location $location -IpConfigurations $vnetIpConfig1 -GatewayType Vpn -VpnType RouteBased -GatewaySku Standard -Asn 1337
463+
$gw1 = Get-AzureRmVirtualNetworkGateway -ResourceGroupName $rgname -name $gwname1
464+
465+
New-AzureRmVirtualNetworkGatewayConnection -ResourceGroupName $rgname -name $connectionName -location $location -VirtualNetworkGateway1 $gw -VirtualNetworkGateway2 $gw1 -ConnectionType Vnet2Vnet -SharedKey chocolate -EnableBgp true
466+
New-AzureRmVirtualNetworkGatewayConnection -ResourceGroupName $rgname -name $connectionName1 -location $location -VirtualNetworkGateway1 $gw1 -VirtualNetworkGateway2 $gw -ConnectionType Vnet2Vnet -SharedKey chocolate -EnableBgp true
467+
468+
$bgpPeerStatus = Get-AzureRmVirtualNetworkGatewayBGPPeerStatus -ResourceGroupName $rgname -VirtualNetworkGatewayName $gwname
469+
$bgpLearnedRoutes = Get-AzureRmVirtualNetworkGatewayLearnedRoute -ResourceGroupName $rgname -VirtualNetworkGatewayName $gwname
470+
$bgpAdvertisedRoutes = Get-AzureRmVirtualNetworkGatewayAdvertisedRoute -ResourceGroupName $rgname -VirtualNetworkGatewayName $gwname -Peer $bgpPeerStatus[0].Neighbor
471+
472+
Assert-AreEqual True ($vnet.AddressSpace.AddressPrefixes -contains $bgpAdvertisedRoutes[0].Network)
473+
474+
$routeLearned = $false
475+
ForEach ($route in $bgpLearnedRoutes) {
476+
If ($route.Origin -eq "EBgp") {
477+
$routeLearned = $true
478+
Assert-AreEqual True ($vnet1.AddressSpace.AddressPrefixes -contains $route.Network)
479+
}
480+
}
481+
482+
Assert-AreEqual True $routeLearned
483+
}
484+
finally
485+
{
486+
Clean-ResourceGroup $rgname
487+
}
416488
}

src/ResourceManager/Network/Commands.Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.VirtualNetworkGatewayTests/VirtualNetworkGatewayRouteApiTest.json

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

src/ResourceManager/Network/Commands.Network/Commands.Network.csproj

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,9 +289,11 @@
289289
<Compile Include="Models\PSApplicationGatewayBackendHealthServer.cs" />
290290
<Compile Include="Models\PSApplicationGatewayConnectionDraining.cs" />
291291
<Compile Include="Models\PSBgpCommunity.cs" />
292+
<Compile Include="Models\PSBgpPeerStatus.cs" />
292293
<Compile Include="Models\PSBgpServiceCommunity.cs" />
293294
<Compile Include="Models\PSFlowLog.cs" />
294295
<Compile Include="Models\PSFlowLogProperties.cs" />
296+
<Compile Include="Models\PSGatewayRoute.cs" />
295297
<Compile Include="Models\PSGetPacketCaptureResult.cs" />
296298
<Compile Include="Models\PSIPAddressAvailabilityResult.cs" />
297299
<Compile Include="Models\PSApplicationGatewayAuthenticationCertificate.cs" />
@@ -401,6 +403,9 @@
401403
<Compile Include="RouteFilter\RouteFilterRule\RemoveAzureRouteFilterRuleConfigCommand.cs" />
402404
<Compile Include="RouteFilter\RouteFilterRule\SetAzureRouteFilterRuleConfigCommand.cs" />
403405
<Compile Include="RouteFilter\SetAzureRouteFilterCommand.cs" />
406+
<Compile Include="VirtualNetworkGateway\GetAzureVirtualNetworkGatewayAdvertisedRouteCommand.cs" />
407+
<Compile Include="VirtualNetworkGateway\GetAzureVirtualNetworkGatewayBgpPeerStatus.cs" />
408+
<Compile Include="VirtualNetworkGateway\GetAzureVirtualNetworkGatewayLearnedRouteCommand.cs" />
404409
<Compile Include="VirtualNetwork\TestAzurePrivateIPAddressAvailabilityCmdlet.cs" />
405410
<Compile Include="PublicIpAddress\GetAzurePublicIpAddressCommand.cs" />
406411
<Compile Include="PublicIpAddress\NewAzurePublicIpAddressCommand.cs" />

src/ResourceManager/Network/Commands.Network/Common/NetworkResourceManagerProfile.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,8 @@ protected override void Configure()
376376
Mapper.CreateMap<CNM.PSVpnClientRevokedCertificate, MNM.VpnClientRevokedCertificate>();
377377
Mapper.CreateMap<CNM.PSVpnClientRootCertificate, MNM.VpnClientRootCertificate>();
378378
Mapper.CreateMap<CNM.PSBgpSettings, MNM.BgpSettings>();
379+
Mapper.CreateMap<CNM.PSBGPPeerStatus, MNM.BgpPeerStatus>();
380+
Mapper.CreateMap<CNM.PSGatewayRoute, MNM.GatewayRoute>();
379381

380382
// MNM to CNM
381383
Mapper.CreateMap<MNM.VirtualNetworkGateway, CNM.PSVirtualNetworkGateway>();
@@ -391,6 +393,8 @@ protected override void Configure()
391393
Mapper.CreateMap<MNM.VpnClientRevokedCertificate, CNM.PSVpnClientRevokedCertificate>();
392394
Mapper.CreateMap<MNM.VpnClientRootCertificate, CNM.PSVpnClientRootCertificate>();
393395
Mapper.CreateMap<MNM.BgpSettings, CNM.PSBgpSettings>();
396+
Mapper.CreateMap<MNM.BgpPeerStatus, CNM.PSBGPPeerStatus>();
397+
Mapper.CreateMap<MNM.GatewayRoute, CNM.PSGatewayRoute>();
394398

395399
// Application Gateways
396400
// CNM to MNM

0 commit comments

Comments
 (0)