Skip to content

Commit ef3202e

Browse files
abhi7860Abhishek Shah
andauthored
Adding ConnectionMode parameter to VNG Connections (#13670)
Co-authored-by: Abhishek Shah <[email protected]>
1 parent 31e9b72 commit ef3202e

7 files changed

+59
-5
lines changed

src/Network/Network.Test/ScenarioTests/VirtualNetworkGatewayConnectionTests.ps1

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,14 +435,15 @@ function Test-VirtualNetworkGatewayConnectionCRUD
435435
$localnetGateway.Location = $location
436436

437437
# Create & Get VirtualNetworkGatewayConnection
438-
$actual = New-AzVirtualNetworkGatewayConnection -ResourceGroupName $rgname -name $vnetConnectionName -location $location -VirtualNetworkGateway1 $vnetGateway -LocalNetworkGateway2 $localnetGateway -ConnectionType IPsec -RoutingWeight 3 -SharedKey abc -ConnectionProtocol IKEv1
438+
$actual = New-AzVirtualNetworkGatewayConnection -ResourceGroupName $rgname -name $vnetConnectionName -location $location -VirtualNetworkGateway1 $vnetGateway -LocalNetworkGateway2 $localnetGateway -ConnectionType IPsec -RoutingWeight 3 -SharedKey abc -ConnectionProtocol IKEv1 -ConnectionMode "Default"
439439
$expected = Get-AzVirtualNetworkGatewayConnection -ResourceGroupName $rgname -name $vnetConnectionName
440440
Assert-AreEqual $expected.ResourceGroupName $actual.ResourceGroupName
441441
Assert-AreEqual $expected.Name $actual.Name
442442
Assert-AreEqual "IPsec" $expected.ConnectionType
443443
Assert-AreEqual "3" $expected.RoutingWeight
444444
Assert-AreEqual "IKEv1" $expected.ConnectionProtocol
445445
#Assert-AreEqual "abc" $expected.SharedKey
446+
Assert-AreEqual $expected.ConnectionMode $actual.ConnectionMode
446447

447448
# List VirtualNetworkGatewayConnections
448449
$list = Get-AzVirtualNetworkGatewayConnection -ResourceGroupName $rgname
@@ -460,12 +461,14 @@ function Test-VirtualNetworkGatewayConnectionCRUD
460461
$expected.LocalNetworkGateway2.Location = $location
461462
$expected.RoutingWeight = "4"
462463
$expected.SharedKey = "xyz"
464+
$expected.ConnectionMode = "ResponderOnly"
463465

464466
# Set/Update VirtualNetworkGatewayConnection Tags
465467
$actual = Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $expected -Tag @{ testtagKey="SomeTagKey"; testtagValue="SomeKeyValue" } -Force
466468
$expected = Get-AzVirtualNetworkGatewayConnection -ResourceGroupName $rgname -name $vnetConnectionName
467469
Assert-AreEqual 2 $expected.Tag.Count
468470
Assert-AreEqual $true $expected.Tag.Contains("testtagKey")
471+
Assert-AreEqual $expected.ConnectionMode $actual.ConnectionMode
469472

470473
# Delete VirtualNetworkGatewayConnection
471474
$delete = Remove-AzVirtualNetworkGatewayConnection -ResourceGroupName $actual.ResourceGroupName -name $vnetConnectionName -PassThru -Force

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 cmdlets to enable setting of ConnectionMode on Virtual Network Gateway Connections.
23+
- `New-AzVirtualNetworkGatewayConnection`
24+
- `Set-AzVirtualNetworkGatewayConnection`
2225

2326
## Version 4.3.0
2427
* Updated below cmdlet

src/Network/Network/Models/PSVirtualNetworkGatewayConnection.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ public class PSVirtualNetworkGatewayConnection : PSTopLevelResource
3838
[Ps1Xml(Target = ViewControl.Table)]
3939
public int DpdTimeoutSeconds { get; set; }
4040

41+
[Ps1Xml(Target = ViewControl.Table)]
42+
public string ConnectionMode { get; set; }
43+
4144
public string SharedKey { get; set; }
4245

4346
[Ps1Xml(Target = ViewControl.Table)]

src/Network/Network/VirtualNetworkGatewayConnection/NewAzureVirtualNetworkGatewayConnectionCommand.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,12 @@ public class NewAzureVirtualNetworkGatewayConnectionCommand : VirtualNetworkGate
102102
HelpMessage = "Dead Peer Detection Timeout of the connection in seconds.")]
103103
public int DpdTimeoutInSeconds { get; set; }
104104

105+
[Parameter(
106+
Mandatory = false,
107+
HelpMessage = "Virtual Network Gateway Connection Mode.")]
108+
[PSArgumentCompleter("Default", "ResponderOnly", "InitiatorOnly")]
109+
public string ConnectionMode { get; set; }
110+
105111
[Parameter(
106112
Mandatory = false,
107113
ValueFromPipelineByPropertyName = true,
@@ -209,6 +215,7 @@ private PSVirtualNetworkGatewayConnection CreateVirtualNetworkGatewayConnection(
209215
vnetGatewayConnection.ConnectionType = this.ConnectionType;
210216
vnetGatewayConnection.RoutingWeight = this.RoutingWeight;
211217
vnetGatewayConnection.DpdTimeoutSeconds = this.DpdTimeoutInSeconds;
218+
vnetGatewayConnection.ConnectionMode = this.ConnectionMode;
212219
vnetGatewayConnection.SharedKey = this.SharedKey;
213220
vnetGatewayConnection.EnableBgp = this.EnableBgp;
214221
vnetGatewayConnection.UseLocalAzureIpAddress = this.UseLocalAzureIpAddress.IsPresent;

src/Network/Network/VirtualNetworkGatewayConnection/UpdateAzureVirtualNetworkGatewayConnectionCommand.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
using MNM = Microsoft.Azure.Management.Network.Models;
2525
using Microsoft.Azure.Commands.Network.VirtualNetworkGateway;
2626
using System.Collections;
27+
using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters;
2728

2829
namespace Microsoft.Azure.Commands.Network
2930
{
@@ -48,6 +49,12 @@ public class SetAzureVirtualNetworkGatewayConnectionCommand : VirtualNetworkGate
4849
HelpMessage = "Dead Peer Detection Timeout of the connection in seconds.")]
4950
public int? DpdTimeoutInSeconds { get; set; }
5051

52+
[Parameter(
53+
Mandatory = false,
54+
HelpMessage = "Virtual Network Gateway Connection Mode.")]
55+
[PSArgumentCompleter("Default", "ResponderOnly", "InitiatorOnly")]
56+
public string ConnectionMode { get; set; }
57+
5158
[Parameter(
5259
Mandatory = false,
5360
HelpMessage = "Whether to use policy-based traffic selectors for a S2S connection")]
@@ -110,6 +117,11 @@ public override void Execute()
110117
this.VirtualNetworkGatewayConnection.DpdTimeoutSeconds = this.DpdTimeoutInSeconds.Value;
111118
}
112119

120+
if (!String.IsNullOrEmpty(this.ConnectionMode))
121+
{
122+
this.VirtualNetworkGatewayConnection.ConnectionMode = this.ConnectionMode;
123+
}
124+
113125
if (this.UsePolicyBasedTrafficSelectors.HasValue)
114126
{
115127
this.VirtualNetworkGatewayConnection.UsePolicyBasedTrafficSelectors = this.UsePolicyBasedTrafficSelectors.Value;

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

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Creates the Site-to-Site VPN connection between the virtual network gateway and
1818
New-AzVirtualNetworkGatewayConnection -Name <String> -ResourceGroupName <String> -Location <String>
1919
[-AuthorizationKey <String>] -VirtualNetworkGateway1 <PSVirtualNetworkGateway>
2020
[-VirtualNetworkGateway2 <PSVirtualNetworkGateway>] [-LocalNetworkGateway2 <PSLocalNetworkGateway>]
21-
-ConnectionType <String> [-RoutingWeight <Int32>] [-DpdTimeoutInSeconds <Int32>] [-SharedKey <String>]
21+
-ConnectionType <String> [-RoutingWeight <Int32>] [-DpdTimeoutInSeconds <Int32>] [-ConnectionMode <String>] [-SharedKey <String>]
2222
[-Peer <PSPeering>] [-EnableBgp <Boolean>] [-UseLocalAzureIpAddress] [-Tag <Hashtable>]
2323
[-Force] [-UsePolicyBasedTrafficSelectors <Boolean>] [-IpsecPolicies <PSIpsecPolicy[]>]
2424
[-TrafficSelectorPolicy <PSTrafficSelectorPolicy[]>] [-ConnectionProtocol <String>] [-AsJob]
@@ -31,7 +31,7 @@ New-AzVirtualNetworkGatewayConnection -Name <String> -ResourceGroupName <String>
3131
New-AzVirtualNetworkGatewayConnection -Name <String> -ResourceGroupName <String> -Location <String>
3232
[-AuthorizationKey <String>] -VirtualNetworkGateway1 <PSVirtualNetworkGateway>
3333
[-VirtualNetworkGateway2 <PSVirtualNetworkGateway>] [-LocalNetworkGateway2 <PSLocalNetworkGateway>]
34-
-ConnectionType <String> [-RoutingWeight <Int32>] [-DpdTimeoutInSeconds <Int32>] [-SharedKey <String>]
34+
-ConnectionType <String> [-RoutingWeight <Int32>] [-DpdTimeoutInSeconds <Int32>] [-ConnectionMode <String>] [-SharedKey <String>]
3535
[-PeerId <String>] [-EnableBgp <Boolean>] [-UseLocalAzureIpAddress] [-Tag <Hashtable>] [-Force]
3636
[-UsePolicyBasedTrafficSelectors <Boolean>] [-IpsecPolicies <PSIpsecPolicy[]>]
3737
[-TrafficSelectorPolicy <PSTrafficSelectorPolicy[]>] [-ConnectionProtocol <String>] [-AsJob]
@@ -296,6 +296,19 @@ Accept pipeline input: True (ByPropertyName)
296296
Accept wildcard characters: False
297297
```
298298
299+
### -ConnectionMode
300+
Virtual Network Gateway Connection Mode
301+
302+
```yaml
303+
Type: System.String
304+
Parameter Sets: (All)
305+
Aliases:
306+
Required: False
307+
Position: Named
308+
Default value: Default
309+
Accept wildcard characters: False
310+
```
311+
299312
### -SharedKey
300313
301314
```yaml

src/Network/Network/help/Set-AzVirtualNetworkGatewayConnection.md

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@ Configures a virtual network gateway connection.
1616
### Default (Default)
1717
```
1818
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection <PSVirtualNetworkGatewayConnection>
19-
[-EnableBgp <Boolean>] [-DpdTimeoutInSeconds <Int32>] [-UsePolicyBasedTrafficSelectors <Boolean>] [-UseLocalAzureIpAddress <Boolean>]
19+
[-EnableBgp <Boolean>] [-DpdTimeoutInSeconds <Int32>] [-ConnectionMode <String>] [-UsePolicyBasedTrafficSelectors <Boolean>] [-UseLocalAzureIpAddress <Boolean>]
2020
[-IpsecPolicies <PSIpsecPolicy[]>] [-TrafficSelectorPolicy <PSTrafficSelectorPolicy[]>] [-Force] [-AsJob]
2121
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
2222
```
2323

2424
### UpdateResourceWithTags
2525
```
2626
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection <PSVirtualNetworkGatewayConnection>
27-
[-EnableBgp <Boolean>] [-DpdTimeoutInSeconds <Int32>] [-UsePolicyBasedTrafficSelectors <Boolean>] [-UseLocalAzureIpAddress <Boolean>]
27+
[-EnableBgp <Boolean>] [-DpdTimeoutInSeconds <Int32>] [-ConnectionMode <String>] [-UsePolicyBasedTrafficSelectors <Boolean>] [-UseLocalAzureIpAddress <Boolean>]
2828
[-IpsecPolicies <PSIpsecPolicy[]>] [-TrafficSelectorPolicy <PSTrafficSelectorPolicy[]>] -Tag <Hashtable>
2929
[-Force] [-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
3030
```
@@ -168,6 +168,19 @@ Accept pipeline input: True (ByPropertyName)
168168
Accept wildcard characters: False
169169
```
170170
171+
### -ConnectionMode
172+
Virtual Network Gateway Connection Mode
173+
174+
```yaml
175+
Type: System.String
176+
Parameter Sets: (All)
177+
Aliases:
178+
Required: False
179+
Position: Named
180+
Default value: Default
181+
Accept wildcard characters: False
182+
```
183+
171184
### -Force
172185
Forces the command to run without asking for user confirmation.
173186

0 commit comments

Comments
 (0)