Skip to content

Commit d463013

Browse files
authored
Merge branch 'network-september' into network-sdk
2 parents 229870b + 7a54c1f commit d463013

17 files changed

+50083
-1
lines changed

src/Network/Network.Test/ScenarioTests/VirtualNetworkGatewayConnectionTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,14 @@ public void TestVirtualNetworkGatewayVpnDeviceConfigurationScripts()
8181
TestRunner.RunTestScript("Test-VirtualNetworkGatewayConnectionVpnDeviceConfigurations");
8282
}
8383

84+
[Fact]
85+
[Trait(Category.AcceptanceType, Category.CheckIn)]
86+
[Trait(Category.Owner, NrpTeamAlias.brooklynft_subset1)]
87+
public void TestVirtualNetworkGatewayConnectionPacketCapture()
88+
{
89+
TestRunner.RunTestScript("Test-VirtualNetworkGatewayConnectionPacketCapture");
90+
}
91+
8492
[Fact]
8593
[Trait(Category.AcceptanceType, Category.CheckIn)]
8694
[Trait(Category.Owner, NrpTeamAlias.brooklynft_subset1)]

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

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -641,3 +641,131 @@ function Test-VirtualNetworkGatewayConnectionVpnDeviceConfigurations
641641
Clean-ResourceGroup $rgname
642642
}
643643
}
644+
645+
function Test-VirtualNetworkGatewayConnectionPacketCapture
646+
{
647+
# Setup
648+
$rgname = Get-ResourceGroupName
649+
$rname1 = Get-ResourceName
650+
$rname2 = Get-ResourceName
651+
$domainNameLabel1 = Get-ResourceName
652+
$domainNameLabel2 = Get-ResourceName
653+
$vnetName1 = Get-ResourceName
654+
$vnetName2 = Get-ResourceName
655+
$vnetConnectionName1 = Get-ResourceName
656+
$vnetConnectionName2 = Get-ResourceName
657+
$publicIpName1 = Get-ResourceName
658+
$publicIpName2 = Get-ResourceName
659+
$vnetGatewayConfigName1 = Get-ResourceName
660+
$vnetGatewayConfigName2 = Get-ResourceName
661+
$rglocation = Get-ProviderLocation ResourceManagement "WestCentralUS"
662+
$resourceTypeParent = "Microsoft.Network/connections"
663+
$location = Get-ProviderLocation $resourceTypeParent "WestCentralUS"
664+
665+
try
666+
{
667+
# Create the resource group
668+
$resourceGroup = New-AzResourceGroup -Name $rgname -Location $rglocation -Tags @{ testtag = "testval" }
669+
670+
#create SAS URL
671+
if ((Get-NetworkTestMode) -ne 'Playback')
672+
{
673+
$storetype = 'Standard_GRS'
674+
$containerName = "testcontainer"
675+
$storeName = 'sto' + $rgname;
676+
New-AzStorageAccount -ResourceGroupName $rgname -Name $storeName -Location $location -Type $storetype
677+
$key = Get-AzStorageAccountKey -ResourceGroupName $rgname -Name $storeName
678+
$context = New-AzStorageContext -StorageAccountName $storeName -StorageAccountKey $key[0].Value
679+
New-AzStorageContainer -Name $containerName -Context $context
680+
$container = Get-AzStorageContainer -Name $containerName -Context $context
681+
$now=get-date
682+
$sasurl = New-AzureStorageContainerSASToken -Name $containerName -Context $context -Permission "rwd" -StartTime $now.AddHours(-1) -ExpiryTime $now.AddDays(1) -FullUri
683+
}
684+
else
685+
{
686+
$sasurl = "https://storage/test123?sp=racwdl&stvigopKcy"
687+
}
688+
689+
# Create the Virtual Network1
690+
$subnet1 = New-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -AddressPrefix 10.0.0.0/24
691+
$vnet1 = New-AzVirtualNetwork -Name $vnetName1 -ResourceGroupName $rgname -Location $location -AddressPrefix 10.0.0.0/16 -Subnet $subnet1
692+
$vnet1 = Get-AzVirtualNetwork -Name $vnetName1 -ResourceGroupName $rgname
693+
$subnet1 = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet1
694+
695+
# Create virtualnetworkgateway1 & Get virtualnetworkgateway1
696+
$publicip1 = New-AzPublicIpAddress -ResourceGroupName $rgname -name $publicIpName1 -location $location -AllocationMethod Dynamic -DomainNameLabel $domainNameLabel1
697+
$vnetIpConfig1 = New-AzVirtualNetworkGatewayIpConfig -Name $vnetGatewayConfigName1 -PublicIpAddress $publicip1 -Subnet $subnet1
698+
699+
$actual = New-AzVirtualNetworkGateway -ResourceGroupName $rgname -name $rname1 -Location $location -IpConfigurations $vnetIpConfig1 -GatewayType Vpn -VpnType RouteBased -GatewaySku Standard
700+
$vnetGateway1 = Get-AzVirtualNetworkGateway -ResourceGroupName $rgname -name $rname1
701+
702+
# Create the Virtual Network2
703+
$subnet2 = New-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -AddressPrefix 192.168.200.0/26
704+
$vnet2 = New-AzVirtualNetwork -Name $vnetName2 -ResourceGroupName $rgname -Location $location -AddressPrefix 192.168.0.0/16 -Subnet $subnet2
705+
$vnet2 = Get-AzVirtualNetwork -Name $vnetName2 -ResourceGroupName $rgname
706+
$subnet2 = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet2
707+
708+
# Create the publicip2
709+
$publicip2 = New-AzPublicIpAddress -ResourceGroupName $rgname -name $publicIpName2 -location $location -AllocationMethod Dynamic -DomainNameLabel $domainNameLabel2
710+
711+
# Create VirtualNetworkGateway2
712+
$vnetIpConfig2 = New-AzVirtualNetworkGatewayIpConfig -Name $vnetGatewayConfigName2 -PublicIpAddress $publicip2 -Subnet $subnet2
713+
714+
$actual = New-AzVirtualNetworkGateway -ResourceGroupName $rgname -name $rname2 -location $location -IpConfigurations $vnetIpConfig2 -GatewayType Vpn -VpnType RouteBased -GatewaySku Standard
715+
$vnetGateway2 = Get-AzVirtualNetworkGateway -ResourceGroupName $rgname -name $rname2
716+
717+
# Create & Get VirtualNetworkGatewayConnection1, VirtualNetworkGatewayConnection2
718+
$actual1 = New-AzVirtualNetworkGatewayConnection -ResourceGroupName $rgname -name $vnetConnectionName1 -location $location -VirtualNetworkGateway1 $vnetGateway1 -VirtualNetworkGateway2 $vnetGateway2 -ConnectionType Vnet2Vnet -RoutingWeight 3 -SharedKey abc
719+
$actual2 = New-AzVirtualNetworkGatewayConnection -ResourceGroupName $rgname -name $vnetConnectionName2 -location $location -VirtualNetworkGateway1 $vnetGateway2 -VirtualNetworkGateway2 $vnetGateway1 -ConnectionType Vnet2Vnet -RoutingWeight 3 -SharedKey abc
720+
721+
$connection = Get-AzVirtualNetworkGatewayConnection -ResourceGroupName $rgname -name $vnetConnectionName1
722+
723+
#StartPacketCapture on gateway with Name parameter
724+
$output = Start-AzVirtualNetworkGatewayConnectionPacketCapture -ResourceGroupName $rgname -Name $vnetConnectionName1
725+
Assert-AreEqual $connection.ResourceGroupName $output.ResourceGroupName
726+
Assert-AreEqual $connection.Name $output.Name
727+
Assert-AreEqual $connection.ResourceGroupName $output.ResourceGroupName
728+
Assert-AreEqual $connection.Location $output.Location
729+
Assert-AreEqual $output.Code "Succeeded"
730+
731+
#StopPacketCapture on gateway connection with Name parameter
732+
$output = Stop-AzVirtualNetworkGatewayConnectionPacketCapture -ResourceGroupName $rgname -Name $vnetConnectionName1 -SasUrl $sasurl
733+
Assert-AreEqual $connection.ResourceGroupName $output.ResourceGroupName
734+
Assert-AreEqual $connection.Name $output.Name
735+
Assert-AreEqual $connection.ResourceGroupName $output.ResourceGroupName
736+
Assert-AreEqual $connection.Location $output.Location
737+
Assert-AreEqual $output.Code "Succeeded"
738+
739+
#StartPacketCapture on gateway Connection object
740+
$a="{`"TracingFlags`":11,`"MaxPacketBufferSize`":120,`"MaxFileSize`":500,`"Filters`":[{`"SourceSubnets`":[`"10.19.0.4/32`",`"10.20.0.4/32`"],`"DestinationSubnets`":[`"10.20.0.4/32`",`"10.19.0.4/32`"],`"IpSubnetValueAsAny`":true,`"TcpFlags`":-1,`"PortValueAsAny`":true,`"CaptureSingleDirectionTrafficOnly`":true}]}"
741+
$output = Start-AzVirtualNetworkGatewayConnectionPacketCapture -InputObject $connection -FilterData $a
742+
Assert-AreEqual $connection.ResourceGroupName $output.ResourceGroupName
743+
Assert-AreEqual $connection.Name $output.Name
744+
Assert-AreEqual $connection.ResourceGroupName $output.ResourceGroupName
745+
Assert-AreEqual $connection.Location $output.Location
746+
Assert-AreEqual $output.Code "Succeeded"
747+
748+
#StopPacketCapture on gateway Connection object
749+
$output = Stop-AzVirtualNetworkGatewayConnectionPacketCapture -InputObject $connection -SasUrl $sasurl
750+
Assert-AreEqual $connection.ResourceGroupName $output.ResourceGroupName
751+
Assert-AreEqual $connection.Name $output.Name
752+
Assert-AreEqual $connection.ResourceGroupName $output.ResourceGroupName
753+
Assert-AreEqual $connection.Location $output.Location
754+
Assert-AreEqual $output.Code "Succeeded"
755+
756+
# Delete VirtualNetworkGatewayConnection
757+
$delete = Remove-AzVirtualNetworkGatewayConnection -ResourceGroupName $connection.ResourceGroupName -name $vnetConnectionName1 -PassThru -Force
758+
Assert-AreEqual true $delete
759+
760+
$delete = Remove-AzVirtualNetworkGatewayConnection -ResourceGroupName $actual2.ResourceGroupName -name $vnetConnectionName2 -PassThru -Force
761+
Assert-AreEqual true $delete
762+
763+
$list = Get-AzVirtualNetworkGatewayConnection -ResourceGroupName $connection.ResourceGroupName
764+
Assert-AreEqual 0 @($list).Count
765+
}
766+
finally
767+
{
768+
# Cleanup
769+
Clean-ResourceGroup $rgname
770+
}
771+
}

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,5 +123,13 @@ public void VirtualNetworkGatewayVpnclientConnectionHealthTest()
123123
{
124124
TestRunner.RunTestScript("Test-VirtualNetworkGatewayVpnClientConnectionHealth");
125125
}
126+
127+
[Fact]
128+
[Trait(Category.AcceptanceType, Category.CheckIn)]
129+
[Trait(Category.Owner, NrpTeamAlias.brooklynft_subset2)]
130+
public void TestVirtualNetworKGatewayPacketCapture()
131+
{
132+
TestRunner.RunTestScript("Test-VirtualNetworKGatewayPacketCapture");
133+
}
126134
}
127135
}

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

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -953,3 +953,111 @@ function Test-VirtualNetworkGatewayVpnClientConnectionHealth
953953
}
954954
}
955955

956+
<#
957+
.SYNOPSIS
958+
Virtual network gateway tests
959+
#>
960+
function Test-VirtualNetworKGatewayPacketCapture
961+
{
962+
# Setup
963+
$rgname = Get-ResourceGroupName
964+
$rname = Get-ResourceName
965+
$domainNameLabel = Get-ResourceName
966+
$vnetName = Get-ResourceName
967+
$publicIpName = Get-ResourceName
968+
$vnetGatewayConfigName = Get-ResourceName
969+
$rglocation = Get-ProviderLocation ResourceManagement "WestCentralUS"
970+
$resourceTypeParent = "Microsoft.Network/virtualNetworkGateways"
971+
$location = Get-ProviderLocation $resourceTypeParent "WestCentralUS"
972+
try
973+
{
974+
# Create the resource group
975+
$resourceGroup = New-AzResourceGroup -Name $rgname -Location $rglocation -Tags @{ testtag = "testval" }
976+
977+
#create SAS URL
978+
if ((Get-NetworkTestMode) -ne 'Playback')
979+
{
980+
$storetype = 'Standard_GRS'
981+
$containerName = "testcontainer"
982+
$storeName = 'sto' + $rgname;
983+
New-AzStorageAccount -ResourceGroupName $rgname -Name $storeName -Location $location -Type $storetype
984+
$key = Get-AzStorageAccountKey -ResourceGroupName $rgname -Name $storeName
985+
$context = New-AzStorageContext -StorageAccountName $storeName -StorageAccountKey $key[0].Value
986+
New-AzStorageContainer -Name $containerName -Context $context
987+
$container = Get-AzStorageContainer -Name $containerName -Context $context
988+
$now=get-date
989+
$sasurl = New-AzureStorageContainerSASToken -Name $containerName -Context $context -Permission "rwd" -StartTime $now.AddHours(-1) -ExpiryTime $now.AddDays(1) -FullUri
990+
}
991+
else
992+
{
993+
$sasurl = "https://storage/test123?sp=racwdl&stvigopKcy"
994+
}
995+
996+
# Create the Virtual Network
997+
$subnet = New-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -AddressPrefix 10.0.0.0/24
998+
$vnet = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgname -Location $location -AddressPrefix 10.0.0.0/16 -Subnet $subnet
999+
$vnet = Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgname
1000+
$subnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
1001+
1002+
# Create the publicip
1003+
$publicip = New-AzPublicIpAddress -ResourceGroupName $rgname -name $publicIpName -location $location -AllocationMethod Dynamic -DomainNameLabel $domainNameLabel
1004+
1005+
# Create & Get virtualnetworkgateway
1006+
$vnetIpConfig = New-AzVirtualNetworkGatewayIpConfig -Name $vnetGatewayConfigName -PublicIpAddress $publicip -Subnet $subnet
1007+
$job = New-AzVirtualNetworkGateway -ResourceGroupName $rgname -name $rname -location $location -IpConfigurations $vnetIpConfig -GatewayType Vpn -VpnType RouteBased -EnableBgp $false -AsJob
1008+
$job | Wait-Job
1009+
$actual = $job | Receive-Job
1010+
$gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $rgname -name $rname
1011+
Assert-AreEqual $gateway.ResourceGroupName $actual.ResourceGroupName
1012+
Assert-AreEqual $gateway.Name $actual.Name
1013+
Assert-AreEqual "Vpn" $gateway.GatewayType
1014+
Assert-AreEqual "RouteBased" $gateway.VpnType
1015+
1016+
#StartPacketCapture on gateway with Name parameter
1017+
$output = Start-AzVirtualnetworkGatewayPacketCapture -ResourceGroupName $rgname -Name $rname
1018+
Assert-AreEqual $gateway.ResourceGroupName $output.ResourceGroupName
1019+
Assert-AreEqual $gateway.Name $output.Name
1020+
Assert-AreEqual $gateway.ResourceGroupName $output.ResourceGroupName
1021+
Assert-AreEqual $gateway.Location $output.Location
1022+
Assert-AreEqual $output.Code "Succeeded"
1023+
1024+
#StopPacketCapture on gateway with Name parameter
1025+
$output = Stop-AzVirtualnetworkGatewayPacketCapture -ResourceGroupName $rgname -Name $rname -SasUrl $sasurl
1026+
Assert-AreEqual $gateway.ResourceGroupName $output.ResourceGroupName
1027+
Assert-AreEqual $gateway.Name $output.Name
1028+
Assert-AreEqual $gateway.ResourceGroupName $output.ResourceGroupName
1029+
Assert-AreEqual $gateway.Location $output.Location
1030+
Assert-AreEqual $output.Code "Succeeded"
1031+
1032+
#StartPacketCapture on gateway object
1033+
$a="{`"TracingFlags`":11,`"MaxPacketBufferSize`":120,`"MaxFileSize`":500,`"Filters`":[{`"SourceSubnets`":[`"10.19.0.4/32`",`"10.20.0.4/32`"],`"DestinationSubnets`":[`"10.20.0.4/32`",`"10.19.0.4/32`"],`"IpSubnetValueAsAny`":true,`"TcpFlags`":-1,`"PortValueAsAny`":true,`"CaptureSingleDirectionTrafficOnly`":true}]}"
1034+
$output = Start-AzVirtualnetworkGatewayPacketCapture -InputObject $gateway -FilterData $a
1035+
Assert-AreEqual $gateway.ResourceGroupName $output.ResourceGroupName
1036+
Assert-AreEqual $gateway.Name $output.Name
1037+
Assert-AreEqual $gateway.ResourceGroupName $output.ResourceGroupName
1038+
Assert-AreEqual $gateway.Location $output.Location
1039+
Assert-AreEqual $output.Code "Succeeded"
1040+
1041+
#StopPacketCapture on gateway object
1042+
$output = Stop-AzVirtualnetworkGatewayPacketCapture -InputObject $gateway -SasUrl $sasurl
1043+
Assert-AreEqual $gateway.ResourceGroupName $output.ResourceGroupName
1044+
Assert-AreEqual $gateway.Name $output.Name
1045+
Assert-AreEqual $gateway.ResourceGroupName $output.ResourceGroupName
1046+
Assert-AreEqual $gateway.Location $output.Location
1047+
Assert-AreEqual $output.Code "Succeeded"
1048+
1049+
# Delete virtualNetworkGateway
1050+
$job = Remove-AzVirtualNetworkGateway -ResourceGroupName $actual.ResourceGroupName -name $rname -PassThru -Force -AsJob
1051+
$job | Wait-Job
1052+
$delete = $job | Receive-Job
1053+
Assert-AreEqual true $delete
1054+
1055+
$list = Get-AzVirtualNetworkGateway -ResourceGroupName $actual.ResourceGroupName
1056+
Assert-AreEqual 0 @($list).Count
1057+
}
1058+
finally
1059+
{
1060+
# Cleanup
1061+
Clean-ResourceGroup $rgname
1062+
}
1063+
}

src/Network/Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.VirtualNetworkGatewayConnectionTests/TestVirtualNetworkGatewayConnectionPacketCapture.json

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

src/Network/Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.VirtualNetworkGatewayTests/TestVirtualNetworKGatewayPacketCapture.json

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

src/Network/Network/Az.Network.psd1

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -414,8 +414,13 @@ CmdletsToExport = 'Add-AzApplicationGatewayAuthenticationCertificate',
414414
'Test-AzPrivateLinkServiceVisibility',
415415
'Approve-AzPrivateEndpointConnection',
416416
'Deny-AzPrivateEndpointConnection',
417+
'Get-AzAvailablePrivateEndpointType',
417418
'Get-AzAvailablePrivateEndpointType',
418-
'New-AzBastion', 'Get-AzBastion', 'Remove-AzBastion'
419+
'New-AzBastion', 'Get-AzBastion', 'Remove-AzBastion',
420+
'Start-AzVirtualNetworkGatewayPacketCapture',
421+
'Stop-AzVirtualNetworkGatewayPacketCapture',
422+
'Start-AzVirtualNetworkGatewayConnectionPacketCapture',
423+
'Stop-AzVirtualNetworkGatewayConnectionPacketCapture'
419424

420425
# Variables to export from this module
421426
# VariablesToExport = @()
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
5+
namespace Microsoft.Azure.Commands.Network.Models
6+
{
7+
public class PSVirtualNetworkGatewayConnectionPacketCaptureResult : PSTopLevelResource
8+
{
9+
public string Code { get; set; }
10+
11+
public DateTime EndTime { get; set; }
12+
13+
public DateTime StartTime { get; set; }
14+
15+
public string ResultsText { get; set; }
16+
17+
public PSVirtualNetworkGatewayConnectionPacketCaptureResult()
18+
{
19+
this.Code = "Succeeded";
20+
}
21+
}
22+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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+
using System;
16+
17+
namespace Microsoft.Azure.Commands.Network.Models
18+
{
19+
public class PSVirtualNetworkGatewayPacketCaptureResult : PSTopLevelResource
20+
{
21+
public string Code { get; set; }
22+
23+
public DateTime EndTime { get; set; }
24+
25+
public DateTime StartTime { get; set; }
26+
27+
public string ResultsText { get; set; }
28+
29+
public PSVirtualNetworkGatewayPacketCaptureResult()
30+
{
31+
this.Code = "Succeeded";
32+
}
33+
}
34+
}

0 commit comments

Comments
 (0)