Skip to content

Commit e640ea3

Browse files
authored
Merge pull request Azure#3494 from dihan0604/dev
Route Filter APIs
2 parents b789dfe + c1fc273 commit e640ea3

File tree

52 files changed

+8492
-2623
lines changed

Some content is hidden

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

52 files changed

+8492
-2623
lines changed

src/ResourceManager/Network/AzureRM.Network.psd1

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,17 @@ CmdletsToExport = 'Add-AzureRmApplicationGatewayAuthenticationCertificate',
242242
'Get-AzureRmLoadBalancerInboundNatRuleConfig',
243243
'Add-AzureRmLoadBalancerInboundNatRuleConfig',
244244
'New-AzureRmLoadBalancerInboundNatRuleConfig',
245-
'Remove-AzureRmLoadBalancerInboundNatRuleConfig',
245+
'Remove-AzureRmLoadBalancerInboundNatRuleConfig',
246+
'Get-AzureRmBgpServiceCommunity',
247+
'Get-AzureRmRouteFilter',
248+
'Set-AzureRmRouteFilter',
249+
'Remove-AzureRmRouteFilter',
250+
'New-AzureRmRouteFilter',
251+
'Get-AzureRmRouteFilterRuleConfig',
252+
'Add-AzureRmRouteFilterRuleConfig',
253+
'Remove-AzureRmRouteFilterRuleConfig',
254+
'Set-AzureRmRouteFilterRuleConfig',
255+
'New-AzureRmRouteFilterRuleConfig',
246256
'Set-AzureRmLoadBalancerRuleConfig',
247257
'Get-AzureRmLoadBalancerRuleConfig',
248258
'Add-AzureRmLoadBalancerRuleConfig',

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
<Private>True</Private>
115115
</Reference>
116116
<Reference Include="Microsoft.Rest.ClientRuntime.Azure.TestFramework">
117-
<HintPath>..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.TestFramework.1.5.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.TestFramework.dll</HintPath>
117+
<HintPath>..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.TestFramework.1.5.2\lib\net45\Microsoft.Rest.ClientRuntime.Azure.TestFramework.dll</HintPath>
118118
<Private>True</Private>
119119
</Reference>
120120
<Reference Include="Microsoft.Threading.Tasks">

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,16 @@ function Test-ExpressRouteCircuitStageCRUD
2121
# Setup
2222
$rgname = 'movecircuit'
2323
$circuitName = Get-ResourceName
24-
$rglocation = "westus"
24+
$rglocation = "brazilSouth"
2525
$resourceTypeParent = "Microsoft.Network/expressRouteCircuits"
26-
$location = "westus"
26+
$location = "brazilSouth"
2727
try
2828
{
2929
# Create the resource group
3030
$resourceGroup = New-AzureRmResourceGroup -Name $rgname -Location $rglocation
3131

3232
# Create the ExpressRouteCircuit
33-
$circuit = New-AzureRmExpressRouteCircuit -Name $circuitName -Location $location -ResourceGroupName $rgname -SkuTier Standard -SkuFamily MeteredData -ServiceProviderName "equinix test" -PeeringLocation "Silicon Valley Test" -BandwidthInMbps 50 -AllowClassicOperations $true;
33+
$circuit = New-AzureRmExpressRouteCircuit -Name $circuitName -Location $location -ResourceGroupName $rgname -SkuTier Standard -SkuFamily MeteredData -ServiceProviderName "equinix" -PeeringLocation "Silicon Valley" -BandwidthInMbps 500 -AllowClassicOperations $true;
3434

3535
$circuit = Get-AzureRmExpressRouteCircuit -Name $circuitName -ResourceGroupName $rgname
3636
# set

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ function Test-VirtualNetworkExpressRouteGatewayCRUD
4747
# Create & Get virtualnetworkgateway
4848
$vnetIpConfig = New-AzureRmVirtualNetworkGatewayIpConfig -Name $vnetGatewayConfigName -PublicIpAddress $publicip -Subnet $subnet
4949

50-
$actual = New-AzureRmVirtualNetworkGateway -ResourceGroupName $rgname -name $rname -location $location -IpConfigurations $vnetIpConfig -GatewayType ExpressRoute -GatewaySku UltraPerformance -Force
50+
$actual = New-AzureRmVirtualNetworkGateway -ResourceGroupName $rgname -name $rname -location $location -IpConfigurations $vnetIpConfig -GatewayType ExpressRoute -GatewaySku UltraPerformance -VpnType RouteBased -Force
5151
$expected = Get-AzureRmVirtualNetworkGateway -ResourceGroupName $rgname -name $rname
5252
Assert-AreEqual $expected.ResourceGroupName $actual.ResourceGroupName
5353
Assert-AreEqual $expected.Name $actual.Name

src/ResourceManager/Network/Commands.Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.ExpressRouteCircuitTests/TestExpressRouteCircuitAuthorizationCRUD.json

Lines changed: 276 additions & 136 deletions
Large diffs are not rendered by default.

src/ResourceManager/Network/Commands.Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.ExpressRouteCircuitTests/TestExpressRouteCircuitCRUD.json

Lines changed: 403 additions & 374 deletions
Large diffs are not rendered by default.

src/ResourceManager/Network/Commands.Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.ExpressRouteCircuitTests/TestExpressRouteCircuitMicrosoftPeeringCRUD.json

Lines changed: 716 additions & 330 deletions
Large diffs are not rendered by default.

src/ResourceManager/Network/Commands.Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.ExpressRouteCircuitTests/TestExpressRouteCircuitPrivatePublicPeeringCRUD.json

Lines changed: 694 additions & 628 deletions
Large diffs are not rendered by default.

src/ResourceManager/Network/Commands.Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.ExpressRouteCircuitTests/TestExpressRouteCircuitStageCRUD.json

Lines changed: 310 additions & 452 deletions
Large diffs are not rendered by default.

src/ResourceManager/Network/Commands.Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.ExpressRouteServiceProviderTests/TestExpressRouteServiceProviderList.json

Lines changed: 15 additions & 12 deletions
Large diffs are not rendered by default.

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

Lines changed: 1171 additions & 595 deletions
Large diffs are not rendered by default.

src/ResourceManager/Network/Commands.Network.Test/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<package id="Microsoft.Net.Http" version="2.2.28" targetFramework="net45" />
2222
<package id="Microsoft.Rest.ClientRuntime" version="2.3.4" targetFramework="net45" />
2323
<package id="Microsoft.Rest.ClientRuntime.Azure" version="3.3.4" targetFramework="net45" />
24-
<package id="Microsoft.Rest.ClientRuntime.Azure.TestFramework" version="1.5.0-preview" targetFramework="net45" />
24+
<package id="Microsoft.Rest.ClientRuntime.Azure.TestFramework" version="1.5.2" targetFramework="net45" />
2525
<package id="Moq" version="4.2.1510.2205" targetFramework="net45" />
2626
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net45" />
2727
<package id="xunit" version="2.1.0" targetFramework="net45" />

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,8 @@
282282
<Compile Include="Models\PSApplicationGatewayBackendHealthHttpSettings.cs" />
283283
<Compile Include="Models\PSApplicationGatewayBackendHealthPool.cs" />
284284
<Compile Include="Models\PSApplicationGatewayBackendHealthServer.cs" />
285+
<Compile Include="Models\PSBgpCommunity.cs" />
286+
<Compile Include="Models\PSBgpServiceCommunity.cs" />
285287
<Compile Include="Models\PSFlowLog.cs" />
286288
<Compile Include="Models\PSFlowLogProperties.cs" />
287289
<Compile Include="Models\PSGetPacketCaptureResult.cs" />
@@ -327,6 +329,8 @@
327329
<Compile Include="Models\PSNetworkLongRunningOperation.cs" />
328330
<Compile Include="Models\PSEffectiveNetworkSecurityGroup.cs" />
329331
<Compile Include="Models\PSEffectiveRoute.cs" />
332+
<Compile Include="Models\PSRouteFilter.cs" />
333+
<Compile Include="Models\PSRouteFilterRule.cs" />
330334
<Compile Include="Models\PSSecurityGroupView.cs" />
331335
<Compile Include="Models\PSSecurityGroupViewResult.cs" />
332336
<Compile Include="Models\PSSecurityRuleAssociations.cs" />
@@ -360,6 +364,7 @@
360364
<Compile Include="NetworkInterface\IpConfiguration\NewAzureNetworkInterfaceIpConfigCommand.cs" />
361365
<Compile Include="NetworkInterface\IpConfiguration\RemoveAzureNetworkInterfaceIpConfigCommand.cs" />
362366
<Compile Include="NetworkInterface\IpConfiguration\SetAzureNetworkInterfaceIpConfigCommand.cs" />
367+
<Compile Include="ProviderWideCmdlets\GetAzureBgpServiceCommunityCommand.cs" />
363368
<Compile Include="NetworkWatcher\GetAzureNetworkWatcherCommand.cs" />
364369
<Compile Include="NetworkWatcher\GetAzureNetworkWatcherFlowLogStatusCommand.cs" />
365370
<Compile Include="NetworkWatcher\GetAzureNetworkWatcherTroubleshootingResult.cs" />
@@ -379,6 +384,17 @@
379384
<Compile Include="NetworkWatcher\PacketCapture\StopAzureNetworkWatcherPacketCaptureCommand.cs" />
380385
<Compile Include="NetworkWatcher\RemoveAzureNetworkWatcherCommand.cs" />
381386
<Compile Include="ProviderWideCmdlets\GetAzureExpressRouteServiceProviderCommand.cs" />
387+
<Compile Include="RouteFilter\GetAzureRouteFilterCommand.cs" />
388+
<Compile Include="RouteFilter\NewAzureRouteFilterCommand.cs" />
389+
<Compile Include="RouteFilter\RemoveAzureRouteFilterCommand.cs" />
390+
<Compile Include="RouteFilter\RouteFilterBaseCmdlet.cs" />
391+
<Compile Include="RouteFilter\RouteFilterRule\AddAzureRouteFilterRuleConfigCommand.cs" />
392+
<Compile Include="RouteFilter\RouteFilterRule\AzureRouteFilterRuleConfigBase.cs" />
393+
<Compile Include="RouteFilter\RouteFilterRule\GetRouteFilterRuleConfigCommand.cs" />
394+
<Compile Include="RouteFilter\RouteFilterRule\NewAzureRouteFilterRuleConfigCommand.cs" />
395+
<Compile Include="RouteFilter\RouteFilterRule\RemoveAzureRouteFilterRuleConfigCommand.cs" />
396+
<Compile Include="RouteFilter\RouteFilterRule\SetAzureRouteFilterRuleConfigCommand.cs" />
397+
<Compile Include="RouteFilter\SetAzureRouteFilterCommand.cs" />
382398
<Compile Include="VirtualNetwork\TestAzurePrivateIPAddressAvailabilityCmdlet.cs" />
383399
<Compile Include="PublicIpAddress\GetAzurePublicIpAddressCommand.cs" />
384400
<Compile Include="PublicIpAddress\NewAzurePublicIpAddressCommand.cs" />

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,16 @@ protected override void Configure()
7171
Mapper.CreateMap<CNM.PSResourceId, MNM.SubResource>();
7272
Mapper.CreateMap<MNM.SubResource, CNM.PSResourceId>();
7373

74+
// Route Filter
75+
Mapper.CreateMap<CNM.PSRouteFilter, MNM.RouteFilter>();
76+
Mapper.CreateMap<MNM.RouteFilter, CNM.PSRouteFilter>();
77+
Mapper.CreateMap<CNM.PSRouteFilterRule, MNM.RouteFilterRule>();
78+
Mapper.CreateMap<MNM.RouteFilterRule, CNM.PSRouteFilterRule>();
79+
80+
// Bgp Service Community
81+
Mapper.CreateMap<CNM.PSBgpServiceCommunity, MNM.BgpServiceCommunity>();
82+
Mapper.CreateMap<MNM.BgpServiceCommunity, CNM.PSBgpServiceCommunity>();
83+
7484
// Subnet
7585
// CNM to MNM
7686
Mapper.CreateMap<CNM.PSDhcpOptions, MNM.DhcpOptions>();

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Peering/AddAzureExpressRouteCircuitPeeringConfigCommand.cs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
namespace Microsoft.Azure.Commands.Network
2121
{
22-
[Cmdlet(VerbsCommon.Add, "AzureRmExpressRouteCircuitPeeringConfig"), OutputType(typeof(PSExpressRouteCircuit))]
22+
[Cmdlet(VerbsCommon.Add, "AzureRmExpressRouteCircuitPeeringConfig", DefaultParameterSetName = "SetByResource"), OutputType(typeof(PSExpressRouteCircuit))]
2323
public class AddAzureExpressRouteCircuitPeeringConfigCommand : AzureExpressRouteCircuitPeeringConfigBase
2424
{
2525
[Parameter(
@@ -45,6 +45,15 @@ public override void Execute()
4545
throw new ArgumentException("Peering with the specified name already exists");
4646
}
4747

48+
49+
if (string.Equals(ParameterSetName, Microsoft.Azure.Commands.Network.Properties.Resources.SetByResource))
50+
{
51+
if (this.RouteFilter != null)
52+
{
53+
this.RouteFilterId = this.RouteFilter.Id;
54+
}
55+
}
56+
4857
peering = new PSPeering();
4958

5059
peering.Name = this.Name;
@@ -53,6 +62,7 @@ public override void Execute()
5362
peering.SecondaryPeerAddressPrefix = this.SecondaryPeerAddressPrefix;
5463
peering.PeerASN = this.PeerASN;
5564
peering.VlanId = this.VlanId;
65+
5666

5767
if (!string.IsNullOrEmpty(this.SharedKey))
5868
{
@@ -68,6 +78,12 @@ public override void Execute()
6878
peering.MicrosoftPeeringConfig.RoutingRegistryName = this.MicrosoftConfigRoutingRegistryName;
6979
}
7080

81+
if (!string.IsNullOrEmpty(this.RouteFilterId))
82+
{
83+
peering.RouteFilter = new PSRouteFilter();
84+
peering.RouteFilter.Id = this.RouteFilterId;
85+
}
86+
7187
this.ExpressRouteCircuit.Peerings.Add(peering);
7288

7389
WriteObject(this.ExpressRouteCircuit);

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Peering/AzureExpressRouteCircuitPeeringConfigBase.cs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
// limitations under the License.
1313
// ----------------------------------------------------------------------------------
1414

15-
using System.Management.Automation;
16-
using MNM = Microsoft.Azure.Management.Network.Models;
17-
1815
namespace Microsoft.Azure.Commands.Network
1916
{
2017
using System.Collections.Generic;
18+
using Microsoft.Azure.Commands.Network.Models;
19+
using System.Management.Automation;
20+
using MNM = Microsoft.Azure.Management.Network.Models;
2121

2222
public class AzureExpressRouteCircuitPeeringConfigBase : NetworkBaseCmdlet
2323
{
@@ -89,5 +89,20 @@ public class AzureExpressRouteCircuitPeeringConfigBase : NetworkBaseCmdlet
8989
[ValidateNotNullOrEmpty]
9090
public string MicrosoftConfigRoutingRegistryName { get; set; }
9191

92+
[Parameter(
93+
Mandatory = false,
94+
ValueFromPipelineByPropertyName = true,
95+
ParameterSetName = "SetByResourceId",
96+
HelpMessage = "RouteFilterId")]
97+
[ValidateNotNullOrEmpty]
98+
public string RouteFilterId { get; set; }
99+
100+
[Parameter(
101+
Mandatory = false,
102+
ValueFromPipelineByPropertyName = true,
103+
ParameterSetName = "SetByResource",
104+
HelpMessage = "RouteFilter")]
105+
[ValidateNotNullOrEmpty]
106+
public PSRouteFilter RouteFilter { get; set; }
92107
}
93108
}

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Peering/NewAzureExpressRouteCircuitPeeringConfigCommand.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ namespace Microsoft.Azure.Commands.Network
1919
{
2020
using System.Linq;
2121

22-
[Cmdlet(VerbsCommon.New, "AzureRmExpressRouteCircuitPeeringConfig"), OutputType(typeof(PSPeering))]
22+
[Cmdlet(VerbsCommon.New, "AzureRmExpressRouteCircuitPeeringConfig", DefaultParameterSetName = "SetByResource"), OutputType(typeof(PSPeering))]
2323
public class NewAzureExpressRouteCircuitPeeringConfigCommand : AzureExpressRouteCircuitPeeringConfigBase
2424
{
2525
[Parameter(
@@ -31,6 +31,15 @@ public class NewAzureExpressRouteCircuitPeeringConfigCommand : AzureExpressRoute
3131
public override void Execute()
3232
{
3333
base.Execute();
34+
35+
if (string.Equals(ParameterSetName, Microsoft.Azure.Commands.Network.Properties.Resources.SetByResource))
36+
{
37+
if (this.RouteFilter != null)
38+
{
39+
this.RouteFilterId = this.RouteFilter.Id;
40+
}
41+
}
42+
3443
var peering = new PSPeering();
3544

3645
peering.Name = this.Name;
@@ -54,6 +63,12 @@ public override void Execute()
5463
peering.MicrosoftPeeringConfig.RoutingRegistryName = this.MicrosoftConfigRoutingRegistryName;
5564
}
5665

66+
if (!string.IsNullOrEmpty(this.RouteFilterId))
67+
{
68+
peering.RouteFilter = new PSRouteFilter();
69+
peering.RouteFilter.Id = this.RouteFilterId;
70+
}
71+
5772
WriteObject(peering);
5873
}
5974
}

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Peering/SetAzureExpressRouteCircuitPeeringConfigCommand.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
namespace Microsoft.Azure.Commands.Network
2121
{
22-
[Cmdlet(VerbsCommon.Set, "AzureRmExpressRouteCircuitPeeringConfig"), OutputType(typeof(PSExpressRouteCircuit))]
22+
[Cmdlet(VerbsCommon.Set, "AzureRmExpressRouteCircuitPeeringConfig", DefaultParameterSetName = "SetByResource"), OutputType(typeof(PSExpressRouteCircuit))]
2323
public class SetAzureExpressRouteCircuitPeeringConfigCommand : AzureExpressRouteCircuitPeeringConfigBase
2424
{
2525
[Parameter(
@@ -45,6 +45,14 @@ public override void Execute()
4545
throw new ArgumentException("Peering with the specified name does not exist");
4646
}
4747

48+
if (string.Equals(ParameterSetName, Microsoft.Azure.Commands.Network.Properties.Resources.SetByResource))
49+
{
50+
if (this.RouteFilter != null)
51+
{
52+
this.RouteFilterId = this.RouteFilter.Id;
53+
}
54+
}
55+
4856
peering.Name = this.Name;
4957
peering.PeeringType = this.PeeringType;
5058
peering.PrimaryPeerAddressPrefix = this.PrimaryPeerAddressPrefix;
@@ -66,6 +74,12 @@ public override void Execute()
6674
peering.MicrosoftPeeringConfig.RoutingRegistryName = this.MicrosoftConfigRoutingRegistryName;
6775
}
6876

77+
if (!string.IsNullOrEmpty(this.RouteFilterId))
78+
{
79+
peering.RouteFilter = new PSRouteFilter();
80+
peering.RouteFilter.Id = this.RouteFilterId;
81+
}
82+
6983
WriteObject(this.ExpressRouteCircuit);
7084
}
7185
}

0 commit comments

Comments
 (0)