Skip to content

Commit 143d24b

Browse files
authored
Made ApplicationSecurityGroups and IpConfigurations for PrivateEndpoint available in the cmdlet Set-AzPrivateEndpoint (#18936)
* Modified ApplicationSecurityGroups and IpConfigurations for PrivateEndpoint object to make them available in the cmdlet Set-AzPrivateEndpoint * Update ChangeLog.md * Add files via upload
1 parent 615a3c7 commit 143d24b

File tree

9 files changed

+4552
-1805
lines changed

9 files changed

+4552
-1805
lines changed

src/Network/Network.Test/ScenarioTests/PrivateEndpointTests.ps1

Lines changed: 73 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -434,19 +434,36 @@ function Test-PrivateEndpointApplicationSecurityGroup
434434
Assert-NotNull $asg.Id
435435
}
436436

437-
# Update application security groups for the private endpoint
438-
$pe.ApplicationSecurityGroups[0].Name = "testname"
439-
$pe | Set-AzPrivateEndpoint
440-
$pe.ApplicationSecurityGroups[0].Id = "testid"
441-
Assert-ThrowsContains { $pe | Set-AzPrivateEndpoint } "BadRequest"
442-
443-
# Verfication after Set-
437+
# Add application security group
438+
$asgNew = New-AzApplicationSecurityGroup -Name "ApplicationSecurityGroupNew" -ResourceGroupName $rgname -Location $location
439+
$pe.ApplicationSecurityGroups.Add($asgNew)
440+
Set-AzPrivateEndpoint -PrivateEndpoint $pe
441+
# Verification after Set-
442+
$pe = Get-AzPrivateEndpoint -Name $rname -ResourceGroupName $rgname
443+
Assert-AreEqual 3 $pe.ApplicationSecurityGroups.Count
444+
Assert-AreEqual $asgNew.Id $pe.ApplicationSecurityGroups[2].Id
445+
446+
# Remove application security group
447+
$asg0 = $pe.ApplicationSecurityGroups[0]
448+
$asg0Id = $asg0.Id
449+
$pe.ApplicationSecurityGroups.Remove($asg0)
450+
Set-AzPrivateEndpoint -PrivateEndpoint $pe
451+
# Verify after Set-
444452
$pe = Get-AzPrivateEndpoint -Name $rname -ResourceGroupName $rgname
453+
Assert-AreEqual 2 $pe.ApplicationSecurityGroups.Count
445454
foreach ($asg in $pe.ApplicationSecurityGroups)
446455
{
447-
Assert-AreNotEqual "testname" $asg.Name
448-
Assert-AreNotEqual "testid" $asg.Id
456+
Assert-AreNotEqual $asg0Id $asg.Name
449457
}
458+
459+
# Assign application security group
460+
$asg = New-AzApplicationSecurityGroup -Name "ApplicationSecurityGroup" -ResourceGroupName $rgname -Location $location
461+
$pe.ApplicationSecurityGroups = $asg
462+
Set-AzPrivateEndpoint -PrivateEndpoint $pe
463+
# Verification after Set-
464+
$pe = Get-AzPrivateEndpoint -Name $rname -ResourceGroupName $rgname
465+
Assert-AreEqual 1 $pe.ApplicationSecurityGroups.Count
466+
Assert-AreEqual $asg.Id $pe.ApplicationSecurityGroups[0].Id
450467
}
451468
finally
452469
{
@@ -536,22 +553,57 @@ function Test-PrivateEndpointIpConfiguration
536553
Assert-AreEqual $rname $pe.Name
537554
Assert-AreEqual "Succeeded" $pe.ProvisioningState
538555
Assert-AreEqual "IpConfiguration" $pe.IpConfigurations[0].Name
556+
Assert-AreEqual "11.0.1.100" $pe.IpConfigurations[0].PrivateIPAddress
539557

540558
# Update properties of IpConfiguration for the private endpoint
541-
Assert-ThrowsLike { $pe.IpConfigurations[0].Name = "testname" } "* is a ReadOnly property."
542-
Assert-ThrowsLike { $pe.IpConfigurations[0].GroupId = "testgroupid" } "* is a ReadOnly property."
543-
Assert-ThrowsLike { $pe.IpConfigurations[0].MemberName = "testmembername" } "* is a ReadOnly property."
544-
$ipconfig2 = New-AzPrivateEndpointIpConfiguration -Name "IpConfiguration2" -PrivateIpAddress "11.0.1.101"
545-
Assert-ThrowsLike { $pe.IpConfigurations = $ipconfig2 } "* is a ReadOnly property."
546-
Assert-ThrowsLike { $pe.IpConfigurations[0] = $ipconfig2 } "Unable to index into an object of type *"
547-
Assert-ThrowsLike { $pe.IpConfigurations.Add($ipconfig2) } "Cannot find an overload for *"
548-
Assert-ThrowsLike { $pe.IpConfigurations.Remove($ipconfig2) } "Cannot find an overload for *"
559+
Assert-ThrowsLike { $pe.IpConfigurations[0].PrivateIPAddress = "pipaddress" } "* is a ReadOnly property."
560+
$pe.IpConfigurations[0].Name = "IpConfiguration-Updated"
561+
$pe.IpConfigurations[0].GroupId = "IpConfiguration-Updated-GroupId"
562+
$pe.IpConfigurations[0].MemberName = "IpConfiguration-Updated-MemberName"
563+
Set-AzPrivateEndpoint -PrivateEndpoint $pe
564+
# Verify after Set-
565+
$pe = Get-AzPrivateEndpoint -Name $rname -ResourceGroupName $rgname
566+
Assert-AreEqual "IpConfiguration-Updated" $pe.IpConfigurations[0].Name
567+
Assert-AreEqual "IpConfiguration-Updated-GroupId" $pe.IpConfigurations[0].GroupId
568+
Assert-AreEqual "IpConfiguration-Updated-MemberName" $pe.IpConfigurations[0].MemberName
569+
Assert-AreEqual "11.0.1.100" $pe.IpConfigurations[0].PrivateIPAddress
570+
571+
# Add ip configuration
572+
$ipcfgNew = New-AzPrivateEndpointIpConfiguration -Name "IpConfiguration-New" -GroupId "IpConfiguration-New-GroupId" -MemberName "IpConfiguration-New-MemberName" -PrivateIpAddress "11.0.1.101"
573+
$pe.IpConfigurations.Add($ipcfgNew)
574+
Set-AzPrivateEndpoint -PrivateEndpoint $pe
575+
# Verification after Set-
576+
$pe = Get-AzPrivateEndpoint -Name $rname -ResourceGroupName $rgname
577+
Assert-AreEqual 2 $pe.IpConfigurations.Count
578+
Assert-AreEqual $ipcfgNew.Name $pe.IpConfigurations[1].Name
579+
Assert-AreEqual $ipcfgNew.GroupId $pe.IpConfigurations[1].GroupId
580+
Assert-AreEqual $ipcfgNew.MemberName $pe.IpConfigurations[1].MemberName
581+
Assert-AreEqual $ipcfgNew.PrivateIPAddress $pe.IpConfigurations[1].PrivateIPAddress
582+
583+
# Remove ip configuration
584+
$ipcfg0 = $pe.IpConfigurations[0]
585+
$ipcfg0Name = $ipcfg0.Name
586+
$pe.IpConfigurations.Remove($ipcfg0)
587+
Set-AzPrivateEndpoint -PrivateEndpoint $pe
588+
# Verify after Set-
589+
$pe = Get-AzPrivateEndpoint -Name $rname -ResourceGroupName $rgname
590+
Assert-AreEqual 1 $pe.IpConfigurations.Count
591+
foreach ($ipcfg in $pe.IpConfigurations)
592+
{
593+
Assert-AreNotEqual $ipcfg.Name $ipcfg0Name.Name
594+
}
549595

550-
# Verfication after Set-
551-
$pe | Set-AzPrivateEndpoint
596+
# Assign ip configuration
597+
$ipcfg = New-AzPrivateEndpointIpConfiguration -Name "pe-ipcfg" -GroupId "pe-ipcfg-groupid" -MemberName "pe-ipcfg-membername" -PrivateIpAddress "11.0.1.111"
598+
$pe.IpConfigurations = $ipcfg
599+
Set-AzPrivateEndpoint -PrivateEndpoint $pe
600+
# Verification after Set-
552601
$pe = Get-AzPrivateEndpoint -Name $rname -ResourceGroupName $rgname
553-
Assert-NotNull $pe
554-
Assert-AreEqual "IpConfiguration" $pe.IpConfigurations[0].Name
602+
Assert-AreEqual 1 $pe.IpConfigurations.Count
603+
Assert-AreEqual $ipcfg.Name $pe.IpConfigurations[0].Name
604+
Assert-AreEqual $ipcfg.GroupId $pe.IpConfigurations[0].GroupId
605+
Assert-AreEqual $ipcfg.MemberName $pe.IpConfigurations[0].MemberName
606+
Assert-AreEqual $ipcfg.PrivateIPAddress $pe.IpConfigurations[0].PrivateIPAddress
555607
}
556608
finally
557609
{

0 commit comments

Comments
 (0)