Skip to content

Commit 27b4ab2

Browse files
authored
Refactor live test scenarios to enhance VM creation (#27495)
1 parent 1dbbf81 commit 27b4ab2

File tree

1 file changed

+40
-13
lines changed

1 file changed

+40
-13
lines changed

src/Compute/LiveTests/Compute/TestLiveScenarios.ps1

+40-13
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,36 @@ Invoke-LiveTestScenario -Name "Creates a virtual machine." -Description "Test cr
33
param ($rg)
44

55
$rgName = $rg.ResourceGroupName
6-
$name = New-LiveTestResourceName
7-
8-
$VMLocalAdminUser = New-LiveTestResourceName
9-
$VMLocalAdminSecurePassword = ConvertTo-SecureString (New-LiveTestPassword) -AsPlainText -Force
10-
$domainNameLabel = New-LiveTestResourceName
11-
$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword)
12-
$text = New-LiveTestResourceName
13-
$bytes = [System.Text.Encoding]::Unicode.GetBytes($text)
14-
$userData = [Convert]::ToBase64String($bytes)
15-
16-
$actual = New-AzVM -ResourceGroupName $rgName -Name $name -Credential $Credential -DomainNameLabel $domainNameLabel -UserData $userData -OpenPorts @()
6+
$location = "eastus2"
7+
$vmName = New-LiveTestResourceName
8+
$vnetName = New-LiveTestResourceName
9+
$snetName = New-LiveTestResourceName
10+
$nicName = New-LiveTestResourceName
11+
$nsgName = New-LiveTestResourceName
12+
$computerName = New-LiveTestResourceName
13+
$osDiskName = New-LiveTestResourceName
14+
15+
$localAdminName = New-LiveTestResourceName
16+
$localAdminPassword = ConvertTo-SecureString (New-LiveTestPassword) -AsPlainText -Force
17+
$localAdminCred = New-Object System.Management.Automation.PSCredential ($localAdminName, $localAdminPassword)
18+
19+
$snetCfg = New-AzVirtualNetworkSubnetConfig -Name $snetName -AddressPrefix 10.10.1.0/24 -DefaultOutboundAccess $false
20+
$vnet = New-AzVirtualNetwork -ResourceGroupName $rgName -Name $vnetName -Location $location -AddressPrefix 10.10.0.0/16 -Subnet $snetCfg
21+
$nsgRuleHighRiskPorts = New-AzNetworkSecurityRuleConfig -Name "DenyHighRiskPorts" -Direction Inbound -Priority 101 -Protocol Tcp -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 22, 3389 -Access Deny
22+
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $rgName -Name $nsgName -Location $location -SecurityRules $nsgRuleHighRiskPorts
23+
$nic = New-AzNetworkInterface -ResourceGroupName $rgName -Name $nicName -Location $location -Subnet $vnet.Subnets[0] -NetworkSecurityGroup $nsg
24+
25+
$vmSize = Get-AzVMSize -Location $location | Sort-Object NumberOfCores, MemoryInMB -Top 1
26+
$vmCfg = New-AzVMConfig -VMName $vmName -VMSize $vmSize.Name
27+
$vmCfg | Set-AzVMSecurityProfile -SecurityType TrustedLaunch
28+
$vmCfg | Set-AzVMOSDisk -Name $osDiskName -StorageAccountType StandardSSD_LRS -CreateOption FromImage -DeleteOption Delete
29+
$vmCfg | Set-AzVMOperatingSystem -Windows -ComputerName $computerName -Credential $localAdminCred -ProvisionVMAgent -EnableAutoUpdate
30+
$vmCfg | Set-AzVMSourceImage -PublisherName "MicrosoftWindowsServer" -Offer "WindowsServer" -Skus "2022-datacenter-azure-edition-core" -Version "latest"
31+
$vmCfg | Add-AzVMNetworkInterface -Id $nic.Id -DeleteOption Delete
32+
$vmCfg | Set-AzVMBootDiagnostic -Disable
33+
$actual = New-AzVM -ResourceGroupName $rgName -Location $location -VM $vmCfg -DisableBginfoExtension
1734

1835
Assert-AreEqual $name $actual.Name
19-
# Assert-AreEqual "Succeeded" Label $actual.ProvisioningState
20-
# Assert-AreEqual $userData $actual.UserData
2136
}
2237

2338
Invoke-LiveTestScenario -Name "Removes a virtual machine from Azure" -Description "Test removes a virtual machine from Azure." -ScenarioScript `
@@ -36,6 +51,18 @@ Invoke-LiveTestScenario -Name "Removes a virtual machine from Azure" -Descriptio
3651
$userData = [Convert]::ToBase64String($bytes)
3752

3853
New-AzVM -ResourceGroupName $rgName -Name $name -Credential $Credential -DomainNameLabel $domainNameLabel -UserData $userData -OpenPorts @()
54+
55+
$vm = Get-AzVM -ResourceGroupName $rgName -Name $name
56+
$nic = Get-AzNetworkInterface -ResourceId $vm.NetworkProfile.NetworkInterfaces[0].Id
57+
$snetResourceId = $nic.IpConfigurations[0].Subnet.Id
58+
$vnetName = $snetResourceId.Split("/")[8]
59+
$vnet = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name $vnetName
60+
foreach ($snet in $vnet.Subnets) {
61+
$snet.DefaultOutboundAccess = $false
62+
$vnet | Set-AzVirtualNetwork
63+
}
64+
Restart-AzVM -ResourceGroupName $rgName -Name $name
65+
3966
Remove-AzVM -ResourceGroupName $rgName -Name $name -Force
4067

4168
$removedVM = Get-AzVM -ResourceGroupName $rgName -Name $name -ErrorAction SilentlyContinue

0 commit comments

Comments
 (0)