Skip to content

Commit 26f68cb

Browse files
feat: add autoscale support for virtual hub and update network formatting (#21518)
* feat: add autoscale support for virtual hub and update formatting * docs: update changelog * fix: update online * tests: add exception to static analysis --------- Co-authored-by: Yunchi Wang <[email protected]>
1 parent a7937e4 commit 26f68cb

16 files changed

+8150
-8574
lines changed

src/Network/Network/Az.Network.psd1

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ RequiredAssemblies = 'Microsoft.Azure.PowerShell.AutoMapper.dll',
6666
# TypesToProcess = @()
6767

6868
# Format files (.ps1xml) to be loaded when importing this module
69-
FormatsToProcess = 'Network.format.ps1xml'
69+
FormatsToProcess = 'Network.generated.format.ps1xml'
7070

7171
# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
7272
NestedModules = @('Microsoft.Azure.PowerShell.Cmdlets.Network.dll')
@@ -431,7 +431,8 @@ CmdletsToExport = 'Add-AzApplicationGatewayAuthenticationCertificate',
431431
'Remove-AzVirtualHub', 'Set-AzVirtualHub', 'New-AzVirtualHubRoute',
432432
'Add-AzVirtualHubRoute', 'New-AzVirtualHubRouteTable',
433433
'Add-AzVirtualHubRouteTable', 'Get-AzVirtualHubRouteTable',
434-
'Remove-AzVirtualHubRouteTable', 'New-AzRoutingPolicy',
434+
'Remove-AzVirtualHubRouteTable', 'New-AzRoutingPolicy',
435+
'New-AzVirtualRouterAutoScaleConfiguration',
435436
'Get-AzRoutingPolicy', 'Add-AzRoutingPolicy',
436437
'Remove-AzRoutingPolicy', 'Set-AzRoutingPolicy',
437438
'New-AzRoutingIntent', 'Get-AzRoutingIntent', 'Set-AzRoutingIntent',

src/Network/Network/ChangeLog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
--->
2020

2121
## Upcoming Release
22+
* Updated `New-AzVirtualHub`, `Get-AzVirtualHub`, and `Update-AzVirtualHub` to include VirtualRouterAutoScaleConfiguration.
23+
- Added `New-AzVirtualRouterAutoScaleConfiguration`.
24+
* Updated default formatting on all Network-related objects.
2225

2326
## Version 5.6.0
2427
* Updated `New-AzLoadBalancer` and `Set-AzLoadBalancer` to validate surface level parameters for global tier load balancers

src/Network/Network/Common/NetworkResourceManagerProfile.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1183,6 +1183,7 @@ private static void Initialize()
11831183
cfg.CreateMap<CNM.PSVirtualHubRoute, MNM.VirtualHubRoute>();
11841184
cfg.CreateMap<CNM.PSVirtualHubRouteTable, MNM.VirtualHubRouteTableV2>();
11851185
cfg.CreateMap<CNM.PSVirtualHubRoute, MNM.VirtualHubRouteV2>();
1186+
cfg.CreateMap<CNM.PSVirtualRouterAutoScaleConfiguration, MNM.VirtualRouterAutoScaleConfiguration>();
11861187
cfg.CreateMap<CNM.PSVpnGateway, MNM.VpnGateway>();
11871188
cfg.CreateMap<CNM.PSVpnGatewayNatRule, MNM.VpnGatewayNatRule>();
11881189
cfg.CreateMap<CNM.PSVpnNatRuleMapping, MNM.VpnNatRuleMapping>();
@@ -1219,6 +1220,7 @@ private static void Initialize()
12191220
cfg.CreateMap<MNM.VirtualHubRoute, CNM.PSVirtualHubRoute>();
12201221
cfg.CreateMap<MNM.VirtualHubRouteTableV2, CNM.PSVirtualHubRouteTable>();
12211222
cfg.CreateMap<MNM.VirtualHubRouteV2, CNM.PSVirtualHubRoute>();
1223+
cfg.CreateMap<MNM.VirtualRouterAutoScaleConfiguration, CNM.PSVirtualRouterAutoScaleConfiguration>();
12221224
cfg.CreateMap<MNM.VpnGateway, CNM.PSVpnGateway>();
12231225
cfg.CreateMap<MNM.VpnGatewayNatRule, CNM.PSVpnGatewayNatRule>();
12241226
cfg.CreateMap<MNM.VpnNatRuleMapping, CNM.PSVpnNatRuleMapping>();

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,11 @@ public class NewAzureRmVirtualHubCommand : VirtualHubBaseCmdlet
124124
HelpMessage = "The ASN of this virtual hub")]
125125
public uint VirtualRouterAsn { get; set; }
126126

127+
[Parameter(
128+
Mandatory = false,
129+
HelpMessage = "Autoscale configuration for the hub router")]
130+
public PSVirtualRouterAutoScaleConfiguration VirtualRouterAutoScaleConfiguration { get; set; }
131+
127132
[Parameter(
128133
Mandatory = false,
129134
HelpMessage = "Run cmdlet in the background")]
@@ -175,7 +180,8 @@ public override void Execute()
175180
VirtualWan = new PSResourceId() { Id = resolvedVirtualWan.Id },
176181
AddressPrefix = this.AddressPrefix,
177182
Location = this.Location,
178-
VirtualRouterAsn = this.VirtualRouterAsn
183+
VirtualRouterAsn = this.VirtualRouterAsn,
184+
VirtualRouterAutoScaleConfiguration = this.VirtualRouterAutoScaleConfiguration
179185
};
180186

181187
virtualHub.RouteTable = this.RouteTable;
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// ----------------------------------------------------------------------------------
2+
//
3+
// Copyright Microsoft Corporation
4+
// Licensed under the Apache License, Version 2.0 (the "License");
5+
// you may not use this file except in compliance with the License.
6+
// You may obtain a copy of the License at
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
// Unless required by applicable law or agreed to in writing, software
9+
// distributed under the License is distributed on an "AS IS" BASIS,
10+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
// See the License for the specific language governing permissions and
12+
// limitations under the License.
13+
// ----------------------------------------------------------------------------------
14+
15+
namespace Microsoft.Azure.Commands.Network
16+
{
17+
using System.Management.Automation;
18+
using Microsoft.Azure.Commands.Network.Models;
19+
20+
[Cmdlet(VerbsCommon.New,
21+
ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "VirtualRouterAutoScaleConfiguration",
22+
SupportsShouldProcess = false),
23+
OutputType(typeof(PSVirtualRouterAutoScaleConfiguration))]
24+
public class NewAzureRmVirtualRouterAutoScaleConfigurationCommand : NetworkBaseCmdlet
25+
{
26+
[Parameter(
27+
Mandatory = true,
28+
HelpMessage = "The minimum number of scale units for VirtualHub Router.")]
29+
[ValidateNotNullOrEmpty]
30+
[ValidateRange(1, int.MaxValue)]
31+
public int MinCapacity { get; set; }
32+
33+
34+
public override void Execute()
35+
{
36+
base.Execute();
37+
38+
var autoscaleconfig = new PSVirtualRouterAutoScaleConfiguration
39+
{
40+
MinCapacity = this.MinCapacity
41+
};
42+
43+
WriteObject(autoscaleconfig);
44+
}
45+
}
46+
}

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,11 @@ public class UpdateAzureRmVirtualHubCommand : VirtualHubBaseCmdlet
129129
HelpMessage = "The ASN of this virtual hub")]
130130
public uint VirtualRouterAsn { get; set; }
131131

132+
[Parameter(
133+
Mandatory = false,
134+
HelpMessage = "Autoscale configuration for the hub router")]
135+
public PSVirtualRouterAutoScaleConfiguration VirtualRouterAutoScaleConfiguration { get; set; }
136+
132137
[Parameter(
133138
Mandatory = false,
134139
HelpMessage = "Run cmdlet in the background")]
@@ -221,6 +226,11 @@ public override void Execute()
221226
virtualHubToUpdate.VirtualRouterAsn = this.VirtualRouterAsn;
222227
}
223228

229+
if (this.VirtualRouterAutoScaleConfiguration != null)
230+
{
231+
virtualHubToUpdate.VirtualRouterAutoScaleConfiguration = this.VirtualRouterAutoScaleConfiguration;
232+
}
233+
224234
//// Update the virtual hub
225235
ConfirmAction(
226236
Properties.Resources.SettingResourceMessage,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public PSVirtualHub ToPsVirtualHub(Management.Network.Models.VirtualHub virtualH
5656

5757
return psVirtualHub;
5858
}
59-
59+
6060
public PSVirtualHub GetVirtualHub(string resourceGroupName, string name)
6161
{
6262
try

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ namespace Microsoft.Azure.Commands.Network.Models
1717
using System.Collections.Generic;
1818
using System.Management.Automation;
1919
using Microsoft.WindowsAzure.Commands.Common.Attributes;
20+
using Newtonsoft.Json;
2021

2122
public class PSVirtualHub : PSTopLevelResource
2223
{
@@ -47,6 +48,8 @@ public class PSVirtualHub : PSTopLevelResource
4748

4849
public List<string> VirtualRouterIps { get; set; }
4950

51+
public PSVirtualRouterAutoScaleConfiguration VirtualRouterAutoScaleConfiguration { get; set; }
52+
5053
public SwitchParameter AllowBranchToBranchTraffic { get; set; }
5154

5255
[Ps1Xml(Label = "Address Prefix", Target = ViewControl.Table)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using Microsoft.WindowsAzure.Commands.Common.Attributes;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Text;
5+
6+
namespace Microsoft.Azure.Commands.Network.Models
7+
{
8+
public class PSVirtualRouterAutoScaleConfiguration
9+
{
10+
[Ps1Xml(Label = "Minimum Capacity", Target = ViewControl.Table)]
11+
public int MinCapacity { get; set; }
12+
}
13+
}

0 commit comments

Comments
 (0)