Skip to content

Commit ee1cd54

Browse files
authored
[Networking] - Add Connection Draining support for load balancer backend address (#24872)
* [Networking] - Add Connection Draining support for load balancer backend address * generate record json
1 parent ef3bd87 commit ee1cd54

File tree

7 files changed

+1184
-998
lines changed

7 files changed

+1184
-998
lines changed

src/Network/Network.Test/ScenarioTests/LoadBalancerBackendPoolTests.ps1

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ function Test-LoadBalancerBackendPoolCreate
106106
$testIpAddress1 = "10.0.0.5"
107107
$testIpAddress2 = "10.0.1.6"
108108
$testIpAddress3 = "10.0.0.7"
109+
$adminState = "Up"
109110

110111
$backendAddressConfigName1 = Get-ResourceName
111112
$backendAddressConfigName2 = Get-ResourceName
@@ -128,7 +129,7 @@ function Test-LoadBalancerBackendPoolCreate
128129
# Create Standard Azure load balancer
129130
$lb = New-AzLoadBalancer -Name $lbName -ResourceGroupName $rgname -Location $location -SKU Standard
130131

131-
$ip1 = New-AzLoadBalancerBackendAddressConfig -IpAddress $testIpAddress1 -Name $backendAddressConfigName1 -VirtualNetworkId $vnet.Id
132+
$ip1 = New-AzLoadBalancerBackendAddressConfig -IpAddress $testIpAddress1 -Name $backendAddressConfigName1 -VirtualNetworkId $vnet.Id -AdminState $adminState
132133
$ip2 = New-AzLoadBalancerBackendAddressConfig -IpAddress $testIpAddress2 -Name $backendAddressConfigName2 -SubnetId $vnet.Subnets[0].Id
133134
$ip3 = New-AzLoadBalancerBackendAddressConfig -IpAddress $testIpAddress3 -Name $backendAddressConfigName3 -VirtualNetworkId $vnet.Id
134135

@@ -144,6 +145,7 @@ function Test-LoadBalancerBackendPoolCreate
144145

145146
Assert-NotNull $create2
146147
Assert-True { @($create2.LoadBalancerBackendAddresses).Count -eq 2}
148+
Assert-True { $create2.LoadBalancerBackendAddresses[0].AdminState -eq "Up"}
147149

148150
## create by Name without ip's
149151
$create3 = New-AzLoadBalancerBackendAddressPool -ResourceGroupName $rgname -LoadBalancerName $lbName -Name $backendPool3
@@ -502,6 +504,8 @@ function Test-LoadBalancerBackendAddressConfig
502504
$validIpAddress = "10.0.0.5"
503505
$invalidIpAddress2 = "xxxxx"
504506

507+
$adminState = "Up"
508+
505509
$backendAddressConfigName1 = Get-ResourceName
506510
$backendAddressConfigName2 = Get-ResourceName
507511

@@ -514,11 +518,12 @@ function Test-LoadBalancerBackendAddressConfig
514518
$subnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.1.0/24
515519
$virtualNetwork = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgname -Location $location -AddressPrefix 10.0.0.0/16 -Subnet $subnet
516520

517-
$ipconfig1 = New-AzLoadBalancerBackendAddressConfig -IpAddress $validIpAddress -Name $backendAddressConfigName1 -VirtualNetworkId $virtualNetwork.Id
521+
$ipconfig1 = New-AzLoadBalancerBackendAddressConfig -IpAddress $validIpAddress -Name $backendAddressConfigName1 -VirtualNetworkId $virtualNetwork.Id -AdminState $adminState
518522

519523
Assert-AreEqual $ipconfig1.Name $backendAddressConfigName1
520524
Assert-AreEqual $ipconfig1.IpAddress $validIpAddress
521525
Assert-AreEqual $ipconfig1.VirtualNetwork.Id $virtualNetwork.Id
526+
Assert-AreEqual $ipconfig1.AdminState $adminState
522527

523528
$ipconfig2 = New-AzLoadBalancerBackendAddressConfig -IpAddress $validIpAddress -Name $backendAddressConfigName1 -SubnetId virtualNetwork.Subnets[0].Id
524529

src/Network/Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.LoadBalancerBackendPoolTests/TestLoadBalancerBackendAddressConfig.json

Lines changed: 412 additions & 273 deletions
Large diffs are not rendered by default.

src/Network/Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.LoadBalancerBackendPoolTests/TestLoadBalancerBackendPoolCreate.json

Lines changed: 729 additions & 719 deletions
Large diffs are not rendered by default.

src/Network/Network/ChangeLog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
- `New-AzApplicationGatewayFirewallPolicySetting`
2525
* Added optional property `HeaderValueMatcher` to `New-AzApplicationGatewayRewriteRuleHeaderConfiguration`
2626
* Added new cmdlet `New-AzApplicationGatewayHeaderValueMatcher` to support for the new property `HeaderValueMatcher`
27+
* Added AdminState parameter to Load Balancer Backend Address
28+
- `New-AzLoadBalancerBackendAddressConfig`
2729
* Updated PS SDK to older SDK removing identity field
2830

2931
## Version 7.5.0

src/Network/Network/LoadBalancer/NewAzLoadBalancerBackendAddressConfig.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,25 @@ public partial class NewAzureLoadBalancerBackendAddress : NetworkBaseCmdlet
7474
[ValidateNotNullOrEmpty]
7575
public string LoadBalancerFrontendIPConfigurationId { get; set; }
7676

77+
[Parameter(
78+
Mandatory = false,
79+
HelpMessage = "The admin state associated with the Backend Address config",
80+
ValueFromPipelineByPropertyName = true)]
81+
[PSArgumentCompleter(
82+
"Up",
83+
"Down",
84+
"None"
85+
)]
86+
public string AdminState { get; set; }
87+
7788
public override void Execute()
7889
{
7990
base.Execute();
8091

8192
var loadBalancerBackendAddress = new PSLoadBalancerBackendAddress
8293
{
83-
Name = this.Name
94+
Name = this.Name,
95+
AdminState = this.AdminState
8496
};
8597

8698
if (string.Equals(ParameterSetName, "SetByIpAndVnet"))

src/Network/Network/Models/PSLoadBalancerBackendAddress.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ public partial class PSLoadBalancerBackendAddress : PSChildResource
4040
[JsonProperty(Order = 6)]
4141
public List<PSNatRulePortMapping> InboundNatRulesPortMapping { get; set; }
4242

43+
[JsonProperty(Order = 7)]
44+
public string AdminState { get; set; }
45+
4346
[JsonIgnore]
4447
public string NetworkInterfaceIpConfigurationIdText
4548
{

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

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@ Returns a load balancer backend address config.
1515
### SetByIpAndSubnet (Default)
1616
```
1717
New-AzLoadBalancerBackendAddressConfig -IpAddress <String> -Name <String> -SubnetId <String>
18-
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
18+
[-AdminState <String>] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
1919
```
2020

2121
### SetByIpAndVnet
2222
```
2323
New-AzLoadBalancerBackendAddressConfig -IpAddress <String> -Name <String> -VirtualNetworkId <String>
24-
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
24+
[-AdminState <String>] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
2525
```
2626

2727
### SetByResourceFrontendIPConfiguration
2828
```
2929
New-AzLoadBalancerBackendAddressConfig -Name <String> -LoadBalancerFrontendIPConfigurationId <String>
30-
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
30+
[-AdminState <String>] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
3131
```
3232

3333
## DESCRIPTION
@@ -56,6 +56,21 @@ New-AzLoadBalancerBackendAddressConfig -LoadBalancerFrontendIPConfigurationId $f
5656

5757
## PARAMETERS
5858

59+
### -AdminState
60+
The admin state associated with the Backend Address config
61+
62+
```yaml
63+
Type: System.String
64+
Parameter Sets: (All)
65+
Aliases:
66+
67+
Required: False
68+
Position: Named
69+
Default value: None
70+
Accept pipeline input: True (ByPropertyName)
71+
Accept wildcard characters: False
72+
```
73+
5974
### -DefaultProfile
6075
The credentials, account, tenant, and subscription used for communication with Azure.
6176

0 commit comments

Comments
 (0)