Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
18c6156
update and new properties for VNA and VNET
arjun-d-patel Mar 6, 2026
220b020
Merge remote-tracking branch 'upstream/release-network-2025-07-01' in…
arjun-d-patel Apr 29, 2026
9a70639
Update ChangeLog.md for VNA and VNET changes
arjun-d-patel May 15, 2026
60f1dbd
Merge remote-tracking branch 'upstream/release-network-2025-07-01' in…
arjun-d-patel May 18, 2026
a59cffb
Fix CI errors: restore deleted Get-AzVirtualNetwork call and add Brea…
arjun-d-patel May 19, 2026
35540f7
Re-record VirtualNetworkAppliance test sessions and restore Bandwidth…
arjun-d-patel May 20, 2026
61f98fb
Merge remote-tracking branch 'upstream/main' into arjun/vnra-vnet-ps-…
arjun-d-patel May 21, 2026
74fbfb8
Fix Live Test Errors (#29686)
YanaXu May 26, 2026
5befb0c
Merge remote-tracking branch 'upstream/main' into arjun/vnra-vnet-ps-…
arjun-d-patel May 27, 2026
2a4c991
Merge remote-tracking branch 'upstream/release-network-2025-07-01' in…
arjun-d-patel Jul 13, 2026
ed87b72
[Network] Restore VNA generated model and README mapping
arjun-d-patel Jul 13, 2026
8d9c8fc
[Network] Align VirtualNetworkAppliance.cs with release-network-2025-…
arjun-d-patel Jul 13, 2026
8941f74
Merge branch 'release-network-2025-07-01' into arjun/vnra-vnet-ps-cha…
arjun-d-patel Jul 15, 2026
b9f23e1
Merge remote-tracking branch 'upstream/release-network-2025-07-01' in…
arjun-d-patel Jul 20, 2026
40d6355
Merge remote-tracking branch 'origin/arjun/vnra-vnet-ps-changes-2025-…
arjun-d-patel Jul 20, 2026
7ad1473
Resolve VNA BandwidthInGbps breaking change by reverting output type …
arjun-d-patel Jul 21, 2026
3e0c270
Revert BreakingChangeIssues.csv to base (remove trailing newline)
arjun-d-patel Jul 21, 2026
1f7d317
Remove ChangeLog entry for -Bandwidth (no net change after string rev…
arjun-d-patel Jul 21, 2026
8cce8e8
Simplify -Bandwidth help: quote example values and drop valid-values …
arjun-d-patel Jul 21, 2026
f849957
Merge branch 'release-network-2025-07-01' into arjun/vnra-vnet-ps-cha…
VeryEarly Jul 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Invoke-LiveTestScenario -Name "Create ContainerGroup" -Description "Test New-AzC
$containerName = New-LiveTestResourceName
$cgName = New-LiveTestResourceName
$cgLocation = "westus"
$container = New-AzContainerInstanceObject -Name $containerName -Image 'mcr.microsoft.com/azure-powershell:mariner-2'
$container = New-AzContainerInstanceObject -Name $containerName -Image 'mcr.microsoft.com/azure-powershell:azurelinux-3.0' -RequestCpu 1 -RequestMemoryInGb 1.5
$actual = New-AzContainerGroup -ResourceGroupName $rgName -Name $cgName -Location $cgLocation -Container $container
Assert-AreEqual $cgName $actual.Name
Assert-AreEqual $cgLocation $actual.Location
Expand All @@ -19,7 +19,7 @@ Invoke-LiveTestScenario -Name "List ContainerGroup" -Description "Test listing C
$containerName = New-LiveTestResourceName
$cgName = New-LiveTestResourceName
$cgLocation = "westus"
$container = New-AzContainerInstanceObject -Name $containerName -Image 'mcr.microsoft.com/azure-powershell:ubuntu-22.04'
$container = New-AzContainerInstanceObject -Name $containerName -Image 'mcr.microsoft.com/azure-powershell:ubuntu-24.04' -RequestCpu 1 -RequestMemoryInGb 1.5
$null = New-AzContainerGroup -ResourceGroupName $rgName -Name $cgName -Location $cgLocation -Container $container
$actual = Get-AzContainerGroup -ResourceGroupName $rgName
Assert-True { $actual.Count -ge 1 }
Expand All @@ -33,7 +33,7 @@ Invoke-LiveTestScenario -Name "Get ContainerGroup" -Description "Test getting on
$containerName = New-LiveTestResourceName
$cgName = New-LiveTestResourceName
$cgLocation = "westus"
$container = New-AzContainerInstanceObject -Name $containerName -Image 'mcr.microsoft.com/azure-powershell:ubi-9'
$container = New-AzContainerInstanceObject -Name $containerName -Image 'mcr.microsoft.com/azure-powershell:alpine-3.23' -RequestCpu 1 -RequestMemoryInGb 1.5
$null = New-AzContainerGroup -ResourceGroupName $rgName -Name $cgName -Location $cgLocation -Container $container
$actual = Get-AzContainerGroup -ResourceGroupName $rgName -Name $cgName
Assert-AreEqual $cgName $actual.Name
Expand All @@ -48,11 +48,11 @@ Invoke-LiveTestScenario -Name "Update ContainerGroup" -Description "Test Updatin
$cgName = New-LiveTestResourceName
$cgLocation = "westus"
$tag = @{'key' = 'v' }
$container = New-AzContainerInstanceObject -Name $containerName -Image 'mcr.microsoft.com/azure-powershell:alpine-3.17'
$container = New-AzContainerInstanceObject -Name $containerName -Image 'mcr.microsoft.com/azure-powershell:alpine-3.23' -RequestCpu 1 -RequestMemoryInGb 1.5
$null = New-AzContainerGroup -ResourceGroupName $rgName -Name $cgName -Location $cgLocation -Container $container
$null = Update-AzContainerGroup -Name $cgName -ResourceGroupName $rgName -Tag $tag
$actual = Get-AzContainerGroup -ResourceGroupName $rgName -Name $cgName
Assert-AreEqual $actual.tag.Count 1
Assert-AreEqual 1 $actual.Tag.Count
}

Invoke-LiveTestScenario -Name "Remove ContainerGroup" -Description "Test Removing ContainerGroup" -ScenarioScript `
Expand All @@ -62,7 +62,7 @@ Invoke-LiveTestScenario -Name "Remove ContainerGroup" -Description "Test Removin
$containerName = New-LiveTestResourceName
$cgName = New-LiveTestResourceName
$cgLocation = "westus"
$container = New-AzContainerInstanceObject -Name $containerName -Image 'mcr.microsoft.com/azure-powershell:debian-12'
$container = New-AzContainerInstanceObject -Name $containerName -Image 'mcr.microsoft.com/azure-powershell:debian-12' -RequestCpu 1 -RequestMemoryInGb 1.5
$null = New-AzContainerGroup -ResourceGroupName $rgName -Name $cgName -Location $cgLocation -Container $container
$null = Remove-AzContainerGroup -ResourceGroupName $rgName -Name $cgName
$GetServiceList = Get-AzContainerGroup -ResourceGroupName $rgName
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Invoke-LiveTestScenario -Name "Update function app" -Description "Test updating
New-AzStorageAccount -ResourceGroupName $rgName -Name $saName -Location $location -SkuName Standard_LRS
$funcApp = New-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -Location $location -FunctionsVersion 4 -StorageAccountName $saName -OSType Windows -Runtime PowerShell -RuntimeVersion 7.4
$funcApp | Update-AzFunctionApp -Tag @{ "key" = "value" } -Force
Update-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -IdentityType SystemAssigned -Force
Update-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -EnableSystemAssignedIdentity $true -Force

$actual = Get-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName
Assert-NotNull $actual
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,13 @@ public void TestVirtualNetworkApplianceCRUD()
{
TestRunner.RunTestScript("Test-VirtualNetworkApplianceCRUD");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
[Trait(Category.Owner, NrpTeamAlias.nvadev)]
public void TestVirtualNetworkApplianceDualStack()
{
TestRunner.RunTestScript("Test-VirtualNetworkApplianceDualStack");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ function Test-VirtualNetworkApplianceCRUD
# Setup
$rgname = Get-ResourceGroupName
$rname = Get-ResourceName
$location = Get-ProviderLocation "Microsoft.Network/virtualNetworkAppliances"
$location = "eastus2euap"
$vnetName = Get-ResourceName
$subnetName = "VirtualNetworkApplianceSubnet"

Expand All @@ -48,6 +48,9 @@ function Test-VirtualNetworkApplianceCRUD
Assert-AreEqual "50" $vna.BandwidthInGbps
Assert-NotNull $vna.Subnet
Assert-NotNull $vna.Subnet.Id

# Verify PrivateIPAddressVersion defaults to IPv4
Assert-AreEqual "IPv4" $vna.PrivateIPAddressVersion

# Verify IPConfigurations - should have 5 IP configurations
Assert-NotNull $vna.IPConfigurations
Expand All @@ -66,7 +69,7 @@ function Test-VirtualNetworkApplianceCRUD
Assert-AreEqual "Succeeded" $ipConfig.ProvisioningState
}
Assert-AreEqual $subnet.Id $vna.Subnet.Id
Assert-AreEqual 50 $vna.BandwidthInGbps
Assert-AreEqual "50" $vna.BandwidthInGbps

# Get VirtualNetworkAppliance by name
$vnaGet = Get-AzVirtualNetworkAppliance -Name $rname -ResourceGroupName $rgname
Expand All @@ -75,6 +78,7 @@ function Test-VirtualNetworkApplianceCRUD
Assert-AreEqual $rgname $vnaGet.ResourceGroupName
Assert-NotNull $vnaGet.Location
Assert-AreEqual "testValue" $vnaGet.Tag["testKey"]
Assert-AreEqual "IPv4" $vnaGet.PrivateIPAddressVersion

# List VirtualNetworkAppliances in resource group
$vnaList = Get-AzVirtualNetworkAppliance -ResourceGroupName $rgname
Expand All @@ -99,3 +103,51 @@ function Test-VirtualNetworkApplianceCRUD
Clean-ResourceGroup $rgname
}
}

<#
.SYNOPSIS
Tests VirtualNetworkAppliance creation with DualStack PrivateIPAddressVersion
#>
function Test-VirtualNetworkApplianceDualStack
{
# Setup
$rgname = Get-ResourceGroupName
$rname = Get-ResourceName
$location = "eastus2euap"
$vnetName = Get-ResourceName
$subnetName = "VirtualNetworkApplianceSubnet"

try
{
# Create the resource group
$resourceGroup = New-AzResourceGroup -Name $rgname -Location $location

# Create a dual-stack virtual network (IPv4 + IPv6) required for DualStack VNA
$subnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix "10.0.0.0/24","ace:cab:deca:deed::/64" -DefaultOutboundAccess $false
$vnet = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgname -Location $location -AddressPrefix "10.0.0.0/16","ace:cab:deca::/48" -Subnet $subnet
$subnet = Get-AzVirtualNetworkSubnetConfig -Name $subnetName -VirtualNetwork $vnet

# Create VirtualNetworkAppliance with DualStack
$vna = New-AzVirtualNetworkAppliance -Name $rname -ResourceGroupName $rgname -Location $location -SubnetId $subnet.Id -Bandwidth 50 -PrivateIPAddressVersion "DualStack"

# Verify creation with DualStack
Assert-NotNull $vna
Assert-AreEqual $rname $vna.Name
Assert-AreEqual "Succeeded" $vna.ProvisioningState
Assert-AreEqual "50" $vna.BandwidthInGbps
Assert-AreEqual "DualStack" $vna.PrivateIPAddressVersion

# Get and verify
$vnaGet = Get-AzVirtualNetworkAppliance -Name $rname -ResourceGroupName $rgname
Assert-AreEqual "DualStack" $vnaGet.PrivateIPAddressVersion

# Remove
$removeResult = Remove-AzVirtualNetworkAppliance -Name $rname -ResourceGroupName $rgname -Force -PassThru
Assert-AreEqual $true $removeResult
}
finally
{
# Cleanup
Clean-ResourceGroup $rgname
}
}
8 changes: 8 additions & 0 deletions src/Network/Network.Test/ScenarioTests/VirtualNetworkTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -241,5 +241,13 @@ public void TestVirtualNetworkPrivateEndpointVNetPolicies()
{
TestRunner.RunTestScript("Test-VirtualNetworkPrivateEndpointVNetPolicies");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
[Trait(Category.Owner, NrpTeamAlias.wanrpdev_subset1)]
public void TestVirtualNetworkSummarizedGatewayPrefixes()
{
TestRunner.RunTestScript("Test-VirtualNetworkSummarizedGatewayPrefixes");
}
}
}
55 changes: 54 additions & 1 deletion src/Network/Network.Test/ScenarioTests/VirtualNetworkTests.ps1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# ----------------------------------------------------------------------------------
# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
Expand Down Expand Up @@ -51,6 +51,11 @@ function Test-VirtualNetworkCRUD
Assert-AreEqual 1 @($expected.Subnets).Count
Assert-AreEqual $subnetName $expected.Subnets[0].Name
Assert-AreEqual "10.0.1.0/24" $expected.Subnets[0].AddressPrefix

# Verify SummarizedGatewayPrefixes property is accessible (read-only, may be null for new VNets)
$sgp = $expected.SummarizedGatewayPrefixes
# Property should exist on the object even if value is null
Assert-True { $expected.PSObject.Properties.Name -contains "SummarizedGatewayPrefixes" }

# List virtual Network
$list = Get-AzVirtualNetwork -ResourceGroupName $rgname
Expand Down Expand Up @@ -2222,3 +2227,51 @@ function Test-VirtualNetworkPrivateEndpointVNetPolicies
Clean-ResourceGroup $rgname
}
}

<#
.SYNOPSIS
Tests VirtualNetwork SummarizedGatewayPrefixes property
#>
function Test-VirtualNetworkSummarizedGatewayPrefixes
{
# Setup
$rgname = Get-ResourceGroupName
$vnetName = Get-ResourceName
$subnetName = Get-ResourceName
$rglocation = Get-ProviderLocation ResourceManagement
$resourceTypeParent = "Microsoft.Network/virtualNetworks"
$location = Get-ProviderLocation $resourceTypeParent

try
{
# Create the resource group
$resourceGroup = New-AzResourceGroup -Name $rgname -Location $rglocation

# Create VNet
$subnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.1.0/24 -DefaultOutboundAccess $false
New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgname -Location $location -AddressPrefix 10.0.0.0/16 -Subnet $subnet

# Get VNet and verify SummarizedGatewayPrefixes property exists
$vnet = Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgname

Assert-NotNull $vnet
Assert-AreEqual "Succeeded" $vnet.ProvisioningState

# SummarizedGatewayPrefixes should exist as a property on the object
Assert-True { $vnet.PSObject.Properties.Name -contains "SummarizedGatewayPrefixes" }

# For a VNet without a gateway, SummarizedGatewayPrefixes may be null
# If populated, it should be an AddressSpace with AddressPrefixes
if ($null -ne $vnet.SummarizedGatewayPrefixes) {
Assert-NotNull $vnet.SummarizedGatewayPrefixes.AddressPrefixes
}

# Delete VNet
Remove-AzVirtualNetwork -ResourceGroupName $rgname -Name $vnetName -PassThru -Force
}
finally
{
# Cleanup
Clean-ResourceGroup $rgname
}
}

Large diffs are not rendered by default.

Loading