Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .azure-pipelines/util/live-test-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ parameters:

jobs:
- job: ${{ parameters.name }}
timeoutInMinutes: 180
timeoutInMinutes: 360
pool:
vmImage: ${{ parameters.vmImage }}

Expand Down
66 changes: 66 additions & 0 deletions src/Dns/Dns.Test/LiveTests/TestLiveScenarios.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
Invoke-LiveTestScenario -Name "Create public DNS zone" -Description "Test creating a public DNS zone" -ScenarioScript `
{
param ($rg)

$rgName = $rg.ResourceGroupName
$r5l = New-LiveTestRandomName -Option AllLetters -MaxLength 5
$zoneName = "$r5l.public.contoso.com"

New-AzDnsZone -ResourceGroupName $rgName -Name $zoneName -ZoneType Public

$actual = Get-AzDnsZone -ResourceGroupName $rgName -Name $zoneName
Assert-NotNull $actual
Assert-AreEqual $rgName $actual.ResourceGroupName
Assert-AreEqual $zoneName $actual.Name
Assert-AreEqual "Public" $actual.ZoneType
}

Invoke-LiveTestScenario -Name "Update DNS zone" -Description "Test updating an existing public DNS zone" -ScenarioScript `
{
param ($rg)

$rgName = $rg.ResourceGroupName
$r5l = New-LiveTestRandomName -Option AllLetters -MaxLength 5
$zoneName = "$r5l.public.contoso.com"

New-AzDnsZone -ResourceGroupName $rgName -Name $zoneName -ZoneType Public
Set-AzDnsZone -ResourceGroupName $rgName -Name $zoneName -Tag @{ "Severity" = "Medium" }

$actual = Get-AzDnsZone -ResourceGroupName $rgName -Name $zoneName
Assert-NotNull $actual
Assert-AreEqual $rgName $actual.ResourceGroupName
Assert-AreEqual $zoneName $actual.Name
Assert-AreEqual "Public" $actual.ZoneType
Assert-AreEqual 1 $actual.Tags.Keys.Count
Assert-AreEqual "Severity" $actual.Tags.Keys[0]
Assert-AreEqual 1 $actual.Tags.Values.Count
Assert-AreEqual "Medium" $actual.Tags.Values[0]

$actual.Tags = @{ "Impact" = "Low" }
Set-AzDnsZone -Zone $actual

$actual = Get-AzDnsZone -ResourceGroupName $rgName -Name $zoneName
Assert-NotNull $actual
Assert-AreEqual $rgName $actual.ResourceGroupName
Assert-AreEqual $zoneName $actual.Name
Assert-AreEqual "Public" $actual.ZoneType
Assert-AreEqual 1 $actual.Tags.Keys.Count
Assert-AreEqual "Impact" $actual.Tags.Keys[0]
Assert-AreEqual 1 $actual.Tags.Values.Count
Assert-AreEqual "Low" $actual.Tags.Values[0]
}

Invoke-LiveTestScenario -Name "Remove DNS zone" -Description "Test removing a public DNS zone" -ScenarioScript `
{
param ($rg)

$rgName = $rg.ResourceGroupName
$r5l = New-LiveTestRandomName -Option AllLetters -MaxLength 5
$zoneName = "$r5l.public.contoso.com"

New-AzDnsZone -ResourceGroupName $rgName -Name $zoneName -ZoneType Public
Remove-AzDnsZone -ResourceGroupName $rgName -Name $zoneName -Confirm:$false

$actual = Get-AzDnsZone -ResourceGroupName $rgName -Name $zoneName -ErrorAction SilentlyContinue
Assert-Null $actual
}
160 changes: 160 additions & 0 deletions src/Network/Network.Test/LiveTests/TestLiveScenarios.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -461,3 +461,163 @@ Invoke-LiveTestScenario -Name "Remove virtual network" -Description "Test removi
$actual = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name $vnetName -ErrorAction SilentlyContinue
Assert-Null $actual
}

Invoke-LiveTestScenario -Name "Create private DNS zone group" -Description "Test creating a private DNS zone group" -ScenarioScript `
{
param ($rg)

$rgName = $rg.ResourceGroupName
$location = "westus"
$feSnetName = New-LiveTestResourceName
$beSnetName = New-LiveTestResourceName
$oSnetName = New-LiveTestResourceName
$vnetName = New-LiveTestResourceName
$feIpCfgName = New-LiveTestResourceName
$bePoolCfgName = New-LiveTestResourceName
$lbName = New-LiveTestResourceName
$plsIpCfgName = New-LiveTestResourceName
$plsName = New-LiveTestResourceName
$plsConnName = New-LiveTestResourceName
$peName = New-LiveTestResourceName

$r5l = New-LiveTestRandomName -Option AllLetters -MaxLength 5
$zoneName = "$r5l.private.contoso.com"
$zoneCfgName = New-LiveTestResourceName
$zoneGroupName = New-LiveTestResourceName

$feSnet = New-AzVirtualNetworkSubnetConfig -Name $feSnetName -AddressPrefix "10.0.1.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
$beSnet = New-AzVirtualNetworkSubnetConfig -Name $beSnetName -AddressPrefix "10.0.2.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
$oSnet = New-AzVirtualNetworkSubnetConfig -Name $oSnetName -AddressPrefix "10.0.3.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
$vnet = New-AzVirtualNetwork -ResourceGroupName $rgName -Name $vnetName -Location $location -AddressPrefix "10.0.0.0/16" -Subnet $feSnet, $beSnet, $oSnet
$feSnet = $vnet.Subnets | Where-Object Name -eq $feSnetName
$oSnet = $vnet.Subnets | Where-Object Name -eq $oSnetName
$feIpCfg = New-AzLoadBalancerFrontendIpConfig -Name $feIpCfgName -Subnet $feSnet -PrivateIpAddress "10.0.1.10"
$bePoolCfg = New-AzLoadBalancerBackendAddressPoolConfig -Name $bePoolCfgName
$lb = New-AzLoadBalancer -ResourceGroupName $rgName -Name $lbName -Location $location -FrontendIpConfiguration $feIpCfg -BackendAddressPool $bePoolCfg -Sku Standard
$plsIpCfg = New-AzPrivateLinkServiceIpConfig -Name $plsIpCfgName -PrivateIpAddress "10.0.3.10" -Subnet $oSnet
$feIpCfg = $lb | Get-AzLoadBalancerFrontendIpConfig
$pls = New-AzPrivateLinkService -ResourceGroupName $rgName -Name $plsName -Location $location -IpConfiguration $plsIpCfg -LoadBalancerFrontendIpConfiguration $feIpCfg
$plsConn = New-AzPrivateLinkServiceConnection -Name $plsConnName -PrivateLinkServiceId $pls.Id
New-AzPrivateEndpoint -ResourceGroupName $rgName -Name $peName -Location $location -Subnet $feSnet -PrivateLinkServiceConnection $plsConn

New-AzPrivateDnsZone -ResourceGroupName $rgName -Name $zoneName
$zone = Get-AzPrivateDnsZone -ResourceGroupName $rgName -Name $zoneName
$zoneCfg = New-AzPrivateDnsZoneConfig -Name $zoneCfgName -PrivateDnsZoneId $zone.ResourceId
New-AzPrivateDnsZoneGroup -ResourceGroupName $rgName -Name $zoneGroupName -PrivateEndpointName $peName -PrivateDnsZoneConfig $zoneCfg

$actual = Get-AzPrivateDnsZoneGroup -ResourceGroupName $rgName -Name $zoneGroupName -PrivateEndpointName $peName
Assert-NotNull $actual
Assert-AreEqual $zoneGroupName $actual.Name
Assert-AreEqual "Succeeded" $actual.ProvisioningState
Assert-AreEqual 1 $actual.PrivateDnsZoneConfigs.Count
Assert-AreEqual $zoneCfgName $actual.PrivateDnsZoneConfigs[0].Name
Assert-AreEqual $zone.ResourceId $actual.PrivateDnsZoneConfigs[0].PrivateDnsZoneId
}

Invoke-LiveTestScenario -Name "Update private DNS zone group" -Description "Test updating an existing private DNS zone group with different zone config" -ScenarioScript `
{
param ($rg)

$rgName = $rg.ResourceGroupName
$location = "eastus"
$feSnetName = New-LiveTestResourceName
$beSnetName = New-LiveTestResourceName
$oSnetName = New-LiveTestResourceName
$vnetName = New-LiveTestResourceName
$feIpCfgName = New-LiveTestResourceName
$bePoolCfgName = New-LiveTestResourceName
$lbName = New-LiveTestResourceName
$plsIpCfgName = New-LiveTestResourceName
$plsName = New-LiveTestResourceName
$plsConnName = New-LiveTestResourceName
$peName = New-LiveTestResourceName

$r5l1 = New-LiveTestRandomName -Option AllLetters -MaxLength 5
$zoneName1 = "$r5l1.private.contoso.com"
$zoneCfgName1 = New-LiveTestResourceName
$zoneGroupName = New-LiveTestResourceName

$feSnet = New-AzVirtualNetworkSubnetConfig -Name $feSnetName -AddressPrefix "10.0.1.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
$beSnet = New-AzVirtualNetworkSubnetConfig -Name $beSnetName -AddressPrefix "10.0.2.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
$oSnet = New-AzVirtualNetworkSubnetConfig -Name $oSnetName -AddressPrefix "10.0.3.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
$vnet = New-AzVirtualNetwork -ResourceGroupName $rgName -Name $vnetName -Location $location -AddressPrefix "10.0.0.0/16" -Subnet $feSnet, $beSnet, $oSnet
$feSnet = $vnet.Subnets | Where-Object Name -eq $feSnetName
$oSnet = $vnet.Subnets | Where-Object Name -eq $oSnetName
$feIpCfg = New-AzLoadBalancerFrontendIpConfig -Name $feIpCfgName -Subnet $feSnet -PrivateIpAddress "10.0.1.10"
$bePoolCfg = New-AzLoadBalancerBackendAddressPoolConfig -Name $bePoolCfgName
$lb = New-AzLoadBalancer -ResourceGroupName $rgName -Name $lbName -Location $location -FrontendIpConfiguration $feIpCfg -BackendAddressPool $bePoolCfg -Sku Standard
$plsIpCfg = New-AzPrivateLinkServiceIpConfig -Name $plsIpCfgName -PrivateIpAddress "10.0.3.10" -Subnet $oSnet
$feIpCfg = $lb | Get-AzLoadBalancerFrontendIpConfig
$pls = New-AzPrivateLinkService -ResourceGroupName $rgName -Name $plsName -Location $location -IpConfiguration $plsIpCfg -LoadBalancerFrontendIpConfiguration $feIpCfg
$plsConn = New-AzPrivateLinkServiceConnection -Name $plsConnName -PrivateLinkServiceId $pls.Id
New-AzPrivateEndpoint -ResourceGroupName $rgName -Name $peName -Location $location -Subnet $feSnet -PrivateLinkServiceConnection $plsConn

$zone1 = New-AzPrivateDnsZone -ResourceGroupName $rgName -Name $zoneName1
$zoneCfg1 = New-AzPrivateDnsZoneConfig -Name $zoneCfgName1 -PrivateDnsZoneId $zone1.ResourceId
New-AzPrivateDnsZoneGroup -ResourceGroupName $rgName -Name $zoneGroupName -PrivateEndpointName $peName -PrivateDnsZoneConfig $zoneCfg1

$r5l2 = New-LiveTestRandomName -Option AllLetters -MaxLength 5
$zoneName2 = "$r5l2.private.contoso.com"
$zoneCfgName2 = New-LiveTestResourceName

$zone2 = New-AzPrivateDnsZone -ResourceGroupName $rgName -Name $zoneName2
$zoneCfg2 = New-AzPrivateDnsZoneConfig -Name $zoneCfgName2 -PrivateDnsZoneId $zone2.ResourceId
Set-AzPrivateDnsZoneGroup -ResourceGroupName $rgName -Name $zoneGroupName -PrivateEndpointName $peName -PrivateDnsZoneConfig $zoneCfg2

$actual = Get-AzPrivateDnsZoneGroup -ResourceGroupName $rgName -Name $zoneGroupName -PrivateEndpointName $peName
Assert-NotNull $actual
Assert-AreEqual $zoneGroupName $actual.Name
Assert-AreEqual "Succeeded" $actual.ProvisioningState
Assert-AreEqual 1 $actual.PrivateDnsZoneConfigs.Count
Assert-AreEqual $zoneCfgName2 $actual.PrivateDnsZoneConfigs[0].Name
Assert-AreEqual $zone2.ResourceId $actual.PrivateDnsZoneConfigs[0].PrivateDnsZoneId
}

Invoke-LiveTestScenario -Name "Remove private DNS zone group" -Description "Test removing a private DNS zone group" -ScenarioScript `
{
param ($rg)

$rgName = $rg.ResourceGroupName
$location = "eastus"
$feSnetName = New-LiveTestResourceName
$beSnetName = New-LiveTestResourceName
$oSnetName = New-LiveTestResourceName
$vnetName = New-LiveTestResourceName
$feIpCfgName = New-LiveTestResourceName
$bePoolCfgName = New-LiveTestResourceName
$lbName = New-LiveTestResourceName
$plsIpCfgName = New-LiveTestResourceName
$plsName = New-LiveTestResourceName
$plsConnName = New-LiveTestResourceName
$peName = New-LiveTestResourceName

$r5l = New-LiveTestRandomName -Option AllLetters -MaxLength 5
$zoneName = "$r5l.private.contoso.com"
$zoneCfgName = New-LiveTestResourceName
$zoneGroupName = New-LiveTestResourceName

$feSnet = New-AzVirtualNetworkSubnetConfig -Name $feSnetName -AddressPrefix "10.0.1.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
$beSnet = New-AzVirtualNetworkSubnetConfig -Name $beSnetName -AddressPrefix "10.0.2.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
$oSnet = New-AzVirtualNetworkSubnetConfig -Name $oSnetName -AddressPrefix "10.0.3.0/24" -PrivateEndpointNetworkPoliciesFlag Disabled -PrivateLinkServiceNetworkPoliciesFlag Disabled
$vnet = New-AzVirtualNetwork -ResourceGroupName $rgName -Name $vnetName -Location $location -AddressPrefix "10.0.0.0/16" -Subnet $feSnet, $beSnet, $oSnet
$feSnet = $vnet.Subnets | Where-Object Name -eq $feSnetName
$oSnet = $vnet.Subnets | Where-Object Name -eq $oSnetName
$feIpCfg = New-AzLoadBalancerFrontendIpConfig -Name $feIpCfgName -Subnet $feSnet -PrivateIpAddress "10.0.1.10"
$bePoolCfg = New-AzLoadBalancerBackendAddressPoolConfig -Name $bePoolCfgName
$lb = New-AzLoadBalancer -ResourceGroupName $rgName -Name $lbName -Location $location -FrontendIpConfiguration $feIpCfg -BackendAddressPool $bePoolCfg -Sku Standard
$plsIpCfg = New-AzPrivateLinkServiceIpConfig -Name $plsIpCfgName -PrivateIpAddress "10.0.3.10" -Subnet $oSnet
$feIpCfg = $lb | Get-AzLoadBalancerFrontendIpConfig
$pls = New-AzPrivateLinkService -ResourceGroupName $rgName -Name $plsName -Location $location -IpConfiguration $plsIpCfg -LoadBalancerFrontendIpConfiguration $feIpCfg
$plsConn = New-AzPrivateLinkServiceConnection -Name $plsConnName -PrivateLinkServiceId $pls.Id
New-AzPrivateEndpoint -ResourceGroupName $rgName -Name $peName -Location $location -Subnet $feSnet -PrivateLinkServiceConnection $plsConn

New-AzPrivateDnsZone -ResourceGroupName $rgName -Name $zoneName
$zone = Get-AzPrivateDnsZone -ResourceGroupName $rgName -Name $zoneName
$zoneCfg = New-AzPrivateDnsZoneConfig -Name $zoneCfgName -PrivateDnsZoneId $zone.ResourceId
New-AzPrivateDnsZoneGroup -ResourceGroupName $rgName -Name $zoneGroupName -PrivateEndpointName $peName -PrivateDnsZoneConfig $zoneCfg

Remove-AzPrivateDnsZoneGroup -ResourceGroupName $rgName -Name $zoneGroupName -PrivateEndpointName $peName -Force

$actual = Get-AzPrivateDnsZoneGroup -ResourceGroupName $rgName -Name $zoneGroupName -PrivateEndpointName $peName -ErrorAction SilentlyContinue
Assert-Null $actual
}
58 changes: 51 additions & 7 deletions tools/TestFx/Live/LiveTestUtility.psm1
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,56 @@ function InitializeLiveTestModule {
function New-LiveTestRandomName {
[CmdletBinding()]
[OutputType([string])]
param ()
param (
[Parameter()]
[ValidateSet("Alphanumerics", "AllNumbers", "AllLetters", "StartWithNumber", "StartWithLetter", IgnoreCase = $false)]
[string] $Option = "Alphanumerics",

[Parameter()]
[ValidateRange(1, 20)]
[int] $MaxLength = 10
)

$alphanumerics = "0123456789abcdefghijklmnopqrstuvwxyz"
$randomName = $alphanumerics[(Get-Random -Maximum 10)]
for ($i = 0; $i -lt 9; $i ++) {
$randomName += $alphanumerics[(Get-Random -Maximum $alphanumerics.Length)]
$numLast = 10
$alphanumLast = $alphanumerics.Length

switch ($Option) {
"Alphanumerics" {
$firstChar = ""
$maxLen = $MaxLength
$min = 0
$max = $alphanumLast
}
"AllNumbers" {
$firstChar = ""
$maxLen = $MaxLength
$min = 0
$max = $numLast
}
"AllLetters" {
$firstChar = ""
$maxLen = $MaxLength
$min = $numLast
$max = $alphanumLast
}
"StartWithNumber" {
$firstChar = $alphanumerics[(Get-Random -Maximum $numLast)]
$maxLen = $MaxLength - 1
$min = 0
$max = $alphanumLast
}
"StartWithLetter" {
$firstChar = $alphanumerics[(Get-Random -Minimum $numLast -Maximum $alphanumLast)]
$maxLen = $MaxLength - 1
$min = 0
$max = $alphanumLast
}
}

$randomName += $firstChar
for ($i = 0; $i -lt $maxLen; $i ++) {
$randomName += $alphanumerics[(Get-Random -Minimum $min -Maximum $max)]
}

$randomName
Expand All @@ -79,7 +123,7 @@ function New-LiveTestResourceGroupName {
param ()

$rgPrefix = $script:ResourceGroupPrefix
$rgName = New-LiveTestRandomName
$rgName = New-LiveTestRandomName -Option StartWithNumber

$rgFullName = "$rgPrefix$rgName"
$rgFullName
Expand Down Expand Up @@ -109,7 +153,7 @@ function New-LiveTestResourceName {
param ()

$rPrefix = $script:ResourcePrefix
$rName = New-LiveTestRandomName
$rName = New-LiveTestRandomName -Option StartWithNumber

$rFullName = "$rPrefix$rName"
$rFullName
Expand All @@ -121,7 +165,7 @@ function New-LiveTestStorageAccountName {
param ()

$saPrefix = $script:StorageAccountPrefix
$saName = New-LiveTestRandomName
$saName = New-LiveTestRandomName -Option StartWithNumber

$saFullName = "$saPrefix$saName"
$saFullName
Expand Down