Skip to content

Commit 33a4fcc

Browse files
Add hub routing preference in virtual hub, deprecated PreferredRoutingGateway (#17800)
* Add hub routing preference, deprecated PreferredRoutingGateway * Change log * Add deprecate message * Remove param from example * Update param * Attribute already set in Map * Fix * Update src/Network/Network/Cortex/VirtualHub/UpdateAzureRmVirtualHubCommand.cs Co-authored-by: Yeming Liu <11371776+isra-fel@users.noreply.github.com>
1 parent 2ef7869 commit 33a4fcc

File tree

11 files changed

+103
-19
lines changed

11 files changed

+103
-19
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ function Test-CortexCRUD
6868
Assert-NotNull $virtualWansAll
6969

7070
# Create the Virtual Hub
71-
$createdVirtualHub = New-AzVirtualHub -ResourceGroupName $rgName -Name $virtualHubName -Location $rglocation -AddressPrefix "192.168.1.0/24" -VirtualWan $virtualWan
71+
$createdVirtualHub = New-AzVirtualHub -ResourceGroupName $rgName -Name $virtualHubName -Location $rglocation -AddressPrefix "192.168.1.0/24" -VirtualWan $virtualWan -HubRoutingPreference "ASPath"
7272
$virtualHub = Get-AzVirtualHub -ResourceGroupName $rgName -Name $virtualHubName
7373
Assert-AreEqual $rgName $virtualHub.ResourceGroupName
7474
Assert-AreEqual $virtualHubName $virtualHub.Name
@@ -94,7 +94,7 @@ function Test-CortexCRUD
9494
$route1 = New-AzVirtualHubRoute -AddressPrefix @("10.0.0.0/16", "11.0.0.0/16") -NextHopIpAddress "12.0.0.5"
9595
$route2 = New-AzVirtualHubRoute -AddressPrefix @("13.0.0.0/16") -NextHopIpAddress "14.0.0.5"
9696
$routeTable = New-AzVirtualHubRouteTable -Route @($route1, $route2)
97-
Update-AzVirtualHub -ResourceGroupName $rgName -Name $virtualHubName -RouteTable $routeTable
97+
Update-AzVirtualHub -ResourceGroupName $rgName -Name $virtualHubName -RouteTable $routeTable -HubRoutingPreference "ExpressRoute"
9898
$virtualHub = Get-AzVirtualHub -ResourceGroupName $rgName -Name $virtualHubName
9999
Assert-AreEqual $rgName $virtualHub.ResourceGroupName
100100
Assert-AreEqual $virtualHubName $virtualHub.Name

src/Network/Network/ChangeLog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
* Added option parameter `AuthorizationKey` to cmdlet `New-AzExpressRouteCircuit` to allow creating ExpressRoute Circuit on a ExpressRoutePort with a different owner.
2727
* Fixed `ArgumentNullException` in `Add-AzureRmRouteConfig` when `RouteTable.Routes` is null.
2828
* Fix bug that can't display CustomIpPrefix in PublicIpPrefix.
29+
* Updated cmdlets to add new property of `HubRoutingPreference` in VirtualHub and set property of `PreferredRoutingGateway` deprecated .
30+
- `New-AzVirtualHub`
31+
- `Update-AzVirtualHub`
2932

3033
## Version 4.16.0
3134
* Added support for retrieving the state of packet capture even when the provisioning state of the packet capture was failure

src/Network/Network/Cortex/CortexParameterSetNames.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,5 +84,5 @@ internal static class CortexParameterSetNames
8484
internal const string ByHubBgpConnectionObject = "ByHubBgpConnectionObject";
8585
internal const string ByHubBgpConnectionResourceId = "ByHubBgpConnectionResourceId";
8686

87-
}
87+
}
8888
}

src/Network/Network/Cortex/VirtualHub/NewAzureRmVirtualHubCommand.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ public class NewAzureRmVirtualHubCommand : VirtualHubBaseCmdlet
9898
[PSArgumentCompleter("Basic", "Standard")]
9999
public string Sku { get; set; }
100100

101+
public const String PreferredGWChangeDesc = "PreferredRoutingGateway parameter is deprecated. Use *HubRoutingPreference* property";
102+
[CmdletParameterBreakingChange("PreferredRoutingGateway", ChangeDescription = PreferredGWChangeDesc)]
101103
[Parameter(
102104
Mandatory = false,
103105
HelpMessage = "Preferred Routing Gateway to Route On-Prem traffic from VNET")]
@@ -107,6 +109,16 @@ public class NewAzureRmVirtualHubCommand : VirtualHubBaseCmdlet
107109
IgnoreCase = true)]
108110
public string PreferredRoutingGateway { get; set; }
109111

112+
[Parameter(
113+
Mandatory = false,
114+
HelpMessage = "Virtual Hub Routing Preference to route traffic")]
115+
[ValidateSet(
116+
MNM.HubRoutingPreference.ExpressRoute,
117+
MNM.HubRoutingPreference.VpnGateway,
118+
MNM.HubRoutingPreference.ASPath,
119+
IgnoreCase = true)]
120+
public string HubRoutingPreference { get; set; }
121+
110122
[Parameter(
111123
Mandatory = false,
112124
HelpMessage = "Run cmdlet in the background")]
@@ -183,6 +195,15 @@ public override void Execute()
183195
virtualHub.PreferredRoutingGateway = this.PreferredRoutingGateway;
184196
}
185197

198+
if (string.IsNullOrWhiteSpace(this.HubRoutingPreference))
199+
{
200+
virtualHub.HubRoutingPreference = "ExpressRoute";
201+
}
202+
else
203+
{
204+
virtualHub.HubRoutingPreference = this.HubRoutingPreference;
205+
}
206+
186207
WriteObject(CreateOrUpdateVirtualHub(
187208
this.ResourceGroupName,
188209
this.Name,

src/Network/Network/Cortex/VirtualHub/UpdateAzureRmVirtualHubCommand.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ public class UpdateAzureRmVirtualHubCommand : VirtualHubBaseCmdlet
103103
[PSArgumentCompleter("Basic", "Standard")]
104104
public string Sku { get; set; }
105105

106+
public const String PreferredGWChangeDesc = "PreferredRoutingGateway parameter will be deprecated. Use *HubRoutingPreference* parameter";
107+
[CmdletParameterBreakingChange("PreferredRoutingGateway", ChangeDescription = PreferredGWChangeDesc)]
106108
[Parameter(
107109
Mandatory = false,
108110
HelpMessage = "Preferred Routing Gateway to Route On-Prem traffic from VNET")]
@@ -112,6 +114,16 @@ public class UpdateAzureRmVirtualHubCommand : VirtualHubBaseCmdlet
112114
IgnoreCase = true)]
113115
public string PreferredRoutingGateway { get; set; }
114116

117+
[Parameter(
118+
Mandatory = false,
119+
HelpMessage = "Virtual Hub Routing Preference to route traffic")]
120+
[ValidateSet(
121+
MNM.HubRoutingPreference.ExpressRoute,
122+
MNM.HubRoutingPreference.VpnGateway,
123+
MNM.HubRoutingPreference.ASPath,
124+
IgnoreCase = true)]
125+
public string HubRoutingPreference { get; set; }
126+
115127
[Parameter(
116128
Mandatory = false,
117129
HelpMessage = "Run cmdlet in the background")]
@@ -194,6 +206,11 @@ public override void Execute()
194206
virtualHubToUpdate.PreferredRoutingGateway = this.PreferredRoutingGateway;
195207
}
196208

209+
if (!string.IsNullOrWhiteSpace(this.HubRoutingPreference))
210+
{
211+
virtualHubToUpdate.HubRoutingPreference = this.HubRoutingPreference;
212+
}
213+
197214
//// Update the virtual hub
198215
ConfirmAction(
199216
Properties.Resources.SettingResourceMessage,

src/Network/Network/Cortex/VirtualHub/VirtualHubBaseCmdlet.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public IVirtualHubsOperations VirtualHubClient
5151
public PSVirtualHub ToPsVirtualHub(Management.Network.Models.VirtualHub virtualHub)
5252
{
5353
var psVirtualHub = NetworkResourceManagerProfile.Mapper.Map<PSVirtualHub>(virtualHub);
54-
54+
5555
psVirtualHub.Tag = TagsConversionHelper.CreateTagHashtable(virtualHub.Tags);
5656

5757
return psVirtualHub;

src/Network/Network/Cortex/VpnConnection/UpdateAzureRmVpnConnectionCommand.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ public override void Execute()
240240
throw new PSArgumentException(Properties.Resources.StaticRoutesNotSupportedForThisRoutingConfiguration);
241241
}
242242

243-
vpnConnectionToModify.RoutingConfiguration = RoutingConfiguration;
243+
vpnConnectionToModify.RoutingConfiguration = this.RoutingConfiguration;
244244
}
245245

246246
if(!String.IsNullOrEmpty(this.VpnLinkConnectionMode))

src/Network/Network/Models/Cortex/PSVirtualHub.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,5 +63,8 @@ public class PSVirtualHub : PSTopLevelResource
6363

6464
[Ps1Xml(Label = "Preferred Routing Gateway", Target = ViewControl.Table)]
6565
public string PreferredRoutingGateway { get; set; }
66+
67+
[Ps1Xml(Label = "Hub Routing Preference", Target = ViewControl.Table)]
68+
public string HubRoutingPreference { get; set; }
6669
}
6770
}

src/Network/Network/Network.format.ps1xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4491,6 +4491,10 @@
44914491
<Label>PreferredRoutingGateway</Label>
44924492
<PropertyName>PreferredRoutingGateway</PropertyName>
44934493
</ListItem>
4494+
<ListItem>
4495+
<Label>HubRoutingPreference</Label>
4496+
<PropertyName>HubRoutingPreference</PropertyName>
4497+
</ListItem>
44944498
<ListItem>
44954499
<Label>ProvisioningState</Label>
44964500
<PropertyName>ProvisioningState</PropertyName>

src/Network/Network/help/New-AzVirtualHub.md

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ Creates an Azure VirtualHub resource.
1717
New-AzVirtualHub -ResourceGroupName <String> -Name <String> -VirtualWan <PSVirtualWan> -AddressPrefix <String>
1818
-Location <String> [-HubVnetConnection <PSHubVirtualNetworkConnection[]>]
1919
[-RouteTable <PSVirtualHubRouteTable[]>] [-Tag <Hashtable>] [-Sku <String>] [-PreferredRoutingGateway <String>]
20-
[-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
20+
[-HubRoutingPreference <String>] [-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
2121
```
2222

2323
### ByVirtualWanResourceId
2424
```
2525
New-AzVirtualHub -ResourceGroupName <String> -Name <String> -VirtualWanId <String> -AddressPrefix <String>
2626
-Location <String> [-HubVnetConnection <PSHubVirtualNetworkConnection[]>]
2727
[-RouteTable <PSVirtualHubRouteTable[]>] [-Tag <Hashtable>] [-Sku <String>] [-PreferredRoutingGateway <String>]
28-
[-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
28+
[-HubRoutingPreference <String>] [-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
2929
```
3030

3131
## DESCRIPTION
@@ -53,6 +53,7 @@ RouteTables : {}
5353
Location : West US
5454
Sku : Standard
5555
PreferredRoutingGateway : ExpressRoute
56+
HubRoutingPreference : ExpressRoute
5657
Type : Microsoft.Network/virtualHubs
5758
ProvisioningState : Succeeded
5859
```
@@ -79,6 +80,7 @@ RouteTables : {}
7980
Location : West US
8081
Sku : Standard
8182
PreferredRoutingGateway : ExpressRoute
83+
HubRoutingPreference : ExpressRoute
8284
Type : Microsoft.Network/virtualHubs
8385
ProvisioningState : Succeeded
8486
```
@@ -110,6 +112,7 @@ RouteTables : {}
110112
Location : West US
111113
Sku : Standard
112114
PreferredRoutingGateway : ExpressRoute
115+
HubRoutingPreference : ExpressRoute
113116
Type : Microsoft.Network/virtualHubs
114117
ProvisioningState : Succeeded
115118
```
@@ -123,9 +126,10 @@ This example is similar to Example 2, but also attaches a route table to the vir
123126
```powershell
124127
New-AzResourceGroup -Location "West US" -Name "testRG"
125128
$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US"
126-
New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" -PreferredRoutingGateway "VpnGateway"
129+
New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24" -HubRoutingPreference "VpnGateway"
127130
```
128131

132+
129133
```output
130134
VirtualWan : /subscriptions/{subscriptionId}resourceGroups/testRG/providers/Microsoft.Network/virtualWans/myVirtualWAN
131135
ResourceGroupName : testRG
@@ -135,7 +139,7 @@ AddressPrefix : 10.0.1.0/24
135139
RouteTable :
136140
Location : West US
137141
Sku : Standard
138-
PreferredRoutingGateway : VpnGateway
142+
HubRoutingPreference : VpnGateway
139143
VirtualNetworkConnections : {}
140144
Location : West US
141145
Type : Microsoft.Network/virtualHubs
@@ -237,7 +241,7 @@ Accept wildcard characters: False
237241
```
238242
239243
### -PreferredRoutingGateway
240-
Preferred Routing Gateway to Route On-Prem traffic from VNET
244+
Preferred Routing Gateway to Route On-Prem traffic from VNET (Deprecated, please use HubRoutingPreference)
241245
242246
```yaml
243247
Type: System.String
@@ -252,6 +256,22 @@ Accept pipeline input: False
252256
Accept wildcard characters: False
253257
```
254258
259+
### -HubRoutingPreference
260+
Virtual Hub Routing Preference to route traffic
261+
262+
```yaml
263+
Type: System.String
264+
Parameter Sets: (All)
265+
Aliases:
266+
Accepted values: ExpressRoute, VpnGateway, ASPath
267+
268+
Required: False
269+
Position: Named
270+
Default value: None
271+
Accept pipeline input: False
272+
Accept wildcard characters: False
273+
```
274+
255275
### -ResourceGroupName
256276
The resource group name.
257277

src/Network/Network/help/Update-AzVirtualHub.md

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,24 @@ Updates a virtual hub.
1616
```
1717
Update-AzVirtualHub -ResourceGroupName <String> -Name <String> [-AddressPrefix <String>]
1818
[-HubVnetConnection <PSHubVirtualNetworkConnection[]>] [-RouteTable <PSVirtualHubRouteTable>]
19-
[-Tag <Hashtable>] [-Sku <String>] [-PreferredRoutingGateway <String>] [-AsJob]
20-
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
19+
[-Tag <Hashtable>] [-Sku <String>] [-PreferredRoutingGateway <String>] [-HubRoutingPreference <String>]
20+
[-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
2121
```
2222

2323
### ByVirtualHubResourceId
2424
```
2525
Update-AzVirtualHub -ResourceId <String> [-AddressPrefix <String>]
2626
[-HubVnetConnection <PSHubVirtualNetworkConnection[]>] [-RouteTable <PSVirtualHubRouteTable>]
27-
[-Tag <Hashtable>] [-Sku <String>] [-PreferredRoutingGateway <String>] [-AsJob]
28-
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
27+
[-Tag <Hashtable>] [-Sku <String>] [-PreferredRoutingGateway <String>] [-HubRoutingPreference <String>]
28+
[-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
2929
```
3030

3131
### ByVirtualHubObject
3232
```
3333
Update-AzVirtualHub -InputObject <PSVirtualHub> [-AddressPrefix <String>]
3434
[-HubVnetConnection <PSHubVirtualNetworkConnection[]>] [-RouteTable <PSVirtualHubRouteTable>]
35-
[-Tag <Hashtable>] [-Sku <String>] [-PreferredRoutingGateway <String>] [-AsJob]
36-
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
35+
[-Tag <Hashtable>] [-Sku <String>] [-PreferredRoutingGateway <String>] [-HubRoutingPreference <String>]
36+
[-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
3737
```
3838

3939
## DESCRIPTION
@@ -101,7 +101,7 @@ This example is similar to Example 1, but also attaches a route table to the vir
101101
New-AzResourceGroup -Location "West US" -Name "testRG"
102102
$virtualWan = New-AzVirtualWan -ResourceGroupName "testRG" -Name "myVirtualWAN" -Location "West US"
103103
New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "testRG" -Name "westushub" -AddressPrefix "10.0.1.0/24"
104-
Update-AzVirtualHub -ResourceGroupName "testRG" -Name "westushub" -PreferredRoutingGateway "VpnGateway"
104+
Update-AzVirtualHub -ResourceGroupName "testRG" -Name "westushub" -HubRoutingPreference "VpnGateway"
105105
```
106106

107107
```output
@@ -113,7 +113,7 @@ AddressPrefix : 10.0.1.0/24
113113
RouteTable :
114114
Location : West US
115115
Sku : Standard
116-
PreferredRoutingGateway : VpnGateway
116+
HubRoutingPreference : VpnGateway
117117
VirtualNetworkConnections : {}
118118
Location : West US
119119
Type : Microsoft.Network/virtualHubs
@@ -215,7 +215,7 @@ Accept wildcard characters: False
215215
```
216216
217217
### -PreferredRoutingGateway
218-
Preferred Routing Gateway to Route On-Prem traffic from VNET
218+
Preferred Routing Gateway to Route On-Prem traffic from VNET (Deprecated, please use HubRoutingPreference)
219219
220220
```yaml
221221
Type: System.String
@@ -230,6 +230,22 @@ Accept pipeline input: False
230230
Accept wildcard characters: False
231231
```
232232
233+
### -HubRoutingPreference
234+
Virtual Hub Routing Preference to route traffic
235+
236+
```yaml
237+
Type: System.String
238+
Parameter Sets: (All)
239+
Aliases:
240+
Accepted values: ExpressRoute, VpnGateway, ASPath
241+
242+
Required: False
243+
Position: Named
244+
Default value: None
245+
Accept pipeline input: False
246+
Accept wildcard characters: False
247+
```
248+
233249
### -ResourceGroupName
234250
The resource group name.
235251

0 commit comments

Comments
 (0)