Skip to content

Commit 2416771

Browse files
Enable Available Zones when creating hub Firewalls (#15339)
* enable available zones for hub firewall * recorded test * added changelog
1 parent eba1de6 commit 2416771

File tree

5 files changed

+1583
-1
lines changed

5 files changed

+1583
-1
lines changed

src/Network/Network.Test/ScenarioTests/AzureFirewallTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,14 @@ public void TestAzureFirewallVirtualHubCRUD()
6666
TestRunner.RunTestScript("Test-AzureFirewallVirtualHubCRUD");
6767
}
6868

69+
[Fact]
70+
[Trait(Category.AcceptanceType, Category.CheckIn)]
71+
[Trait(Category.Owner, NrpTeamAlias.azurefirewall)]
72+
public void TestAzureFirewallVirtualHubCRUDWithZones()
73+
{
74+
TestRunner.RunTestScript("Test-AzureFirewallVirtualHubCRUDWithZones");
75+
}
76+
6977
[Fact]
7078
[Trait(Category.AcceptanceType, Category.CheckIn)]
7179
[Trait(Category.Owner, NrpTeamAlias.azurefirewall)]

src/Network/Network.Test/ScenarioTests/AzureFirewallTests.ps1

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1227,6 +1227,65 @@ function Test-AzureFirewallVirtualHubCRUD {
12271227
}
12281228
}
12291229

1230+
<#
1231+
.SYNOPSIS
1232+
Tests Hub Firewall with Zones CRUD
1233+
#>
1234+
function Test-AzureFirewallVirtualHubCRUDWithZones {
1235+
# Setup
1236+
$rgname = Get-ResourceGroupName
1237+
$azureFirewallName = Get-ResourceName
1238+
$resourceTypeParent = "Microsoft.Network/AzureFirewalls"
1239+
$policyLocation = Get-ProviderLocation $resourceTypeParent "eastus2euap"
1240+
$location = Get-ProviderLocation $resourceTypeParent "eastus2euap"
1241+
$azureFirewallPolicyName = Get-ResourceName
1242+
$skuName = "AZFW_Hub"
1243+
$skuTier = "Standard"
1244+
$firewallPIPCount = "2"
1245+
1246+
try {
1247+
# Create the resource group
1248+
$resourceGroup = New-AzResourceGroup -Name $rgname -Location $location -Tags @{ testtag = "testval" }
1249+
1250+
# Create AzureFirewallPolicy (with no rules, ThreatIntel is in Alert mode by default)
1251+
$azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname -Location $policyLocation
1252+
1253+
# Get the AzureFirewallPolicy
1254+
$getazureFirewallPolicy = Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
1255+
1256+
Assert-NotNull $azureFirewallPolicy
1257+
Assert-NotNull $getazureFirewallPolicy.Id
1258+
1259+
$azureFirewallPolicyId = $getazureFirewallPolicy.Id
1260+
1261+
$fwpips = New-AzFirewallHubPublicIpAddress -Count $firewallPIPCount
1262+
$hubIpAddresses = New-AzFirewallHubIpAddress -PublicIP $fwpips
1263+
1264+
New-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname -Location $location -SkuName $skuName -SkuTier $skuTier -HubIPAddress $hubIpAddresses -FirewallPolicyId $azureFirewallPolicyId -Zone 1, 2, 3
1265+
# Get AzureFirewall
1266+
$getAzureFirewall = Get-AzFirewall -name $azureFirewallName -ResourceGroupName $rgname
1267+
1268+
#verification
1269+
Assert-AreEqual $rgName $getAzureFirewall.ResourceGroupName
1270+
Assert-AreEqual $azureFirewallName $getAzureFirewall.Name
1271+
Assert-NotNull $getAzureFirewall.Location
1272+
Assert-AreEqual (Normalize-Location $location) $getAzureFirewall.Location
1273+
Assert-NotNull $getAzureFirewall.Sku
1274+
Assert-AreEqual $skuName $getAzureFirewall.Sku.Name
1275+
Assert-AreEqual $skuTier $getAzureFirewall.Sku.Tier
1276+
Assert-NotNull $getAzureFirewall.FirewallPolicy
1277+
Assert-AreEqual $azureFirewallPolicyId $getAzureFirewall.FirewallPolicy.Id
1278+
Assert-AreEqual 3 @($getAzureFirewall.Zones).Count
1279+
Assert-NotNull $getAzureFirewall.HubIPAddresses
1280+
Assert-NotNull $getAzureFirewall.HubIPAddresses.PublicIPs
1281+
Assert-AreEqual $firewallPIPCount $getAzureFirewall.HubIPAddresses.PublicIPs.Count
1282+
}
1283+
finally {
1284+
# Cleanup
1285+
Clean-ResourceGroup $rgname
1286+
}
1287+
}
1288+
12301289
<#
12311290
.SYNOPSIS
12321291
Tests AzureFirewall ThreatIntelWhitelist

src/Network/Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.AzureFirewallTests/TestAzureFirewallVirtualHubCRUDWithZones.json

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

src/Network/Network/AzureFirewall/NewAzureFirewallCommand.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,8 @@ private PSAzureFirewall CreateAzureFirewall()
298298
Sku = sku,
299299
VirtualHub = VirtualHubId != null ? new MNM.SubResource(VirtualHubId) : null,
300300
FirewallPolicy = FirewallPolicyId != null ? new MNM.SubResource(FirewallPolicyId) : null,
301-
HubIPAddresses = this.HubIPAddress
301+
HubIPAddresses = this.HubIPAddress,
302+
Zones = this.Zone == null ? null : this.Zone.ToList()
302303
};
303304
}
304305
else

src/Network/Network/ChangeLog.md

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

2121
## Upcoming Release
22+
* Updated cmdlets to enable processing of available zones on AzureFirewalll
23+
- `New-AzFirewall`
24+
25+
## Version 4.9.0
2226
* Updated cmdlets for route server for a more stable way to add IP configuration.
2327
* Added support for getting a single private link resource.
2428
* Added more detailed description about GroupId in `New-AzPrivateLinkServiceConnection`

0 commit comments

Comments
 (0)