Skip to content

Commit 460a262

Browse files
committed
Add AllocatedDnsServers feature and tests
1 parent 8ede4f0 commit 460a262

File tree

8 files changed

+3640
-12
lines changed

8 files changed

+3640
-12
lines changed

src/ResourceManager/Compute/Commands.Compute.Test/Commands.Compute.Test.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,9 @@
244244
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineExtensionTests\TestVirtualMachineExtension.json">
245245
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
246246
</None>
247+
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineNetworkInterfaceTests\TestSingleNetworkInterfaceDnsSettings.json">
248+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
249+
</None>
247250
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineNetworkInterfaceTests\TestVirtualMachineMultipleNetworkInterface.json">
248251
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
249252
</None>

src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineNetworkInterfaceTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,12 @@ public void TestVirtualMachineMultipleNetworkInterface()
3232
{
3333
ComputeTestController.NewInstance.RunPsTest("Test-MultipleNetworkInterface");
3434
}
35+
36+
[Fact]
37+
[Trait(Category.AcceptanceType, Category.CheckIn)]
38+
public void TestSingleNetworkInterfaceDnsSettings()
39+
{
40+
ComputeTestController.NewInstance.RunPsTest("Test-SingleNetworkInterfaceDnsSettings");
41+
}
3542
}
3643
}

src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineNetworkInterfaceTests.ps1

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,101 @@ function Test-SingleNetworkInterface
133133
}
134134
}
135135

136+
<#
137+
.SYNOPSIS
138+
Test Virtual Machines with a NetworkInterface with DnsSettings
139+
#>
140+
function Test-SingleNetworkInterfaceDnsSettings
141+
{
142+
# Setup
143+
$rgname = Get-ComputeTestResourceGroupName
144+
145+
try
146+
{
147+
# Common
148+
$loc = 'West US';
149+
New-AzureResourceGroup -Name $rgname -Location $loc;
150+
151+
# VM Profile & Hardware
152+
$vmsize = 'Standard_A2';
153+
$vmname = 'vm' + $rgname;
154+
$p = New-AzureVMConfig -VMName $vmname -VMSize $vmsize;
155+
Assert-AreEqual $p.HardwareProfile.VirtualMachineSize $vmsize;
156+
157+
# NRP
158+
$subnet = New-AzureVirtualNetworkSubnetConfig -Name ('subnet' + $rgname) -AddressPrefix "10.0.0.0/24";
159+
$vnet = New-AzureVirtualNetwork -Force -Name ('vnet' + $rgname) -ResourceGroupName $rgname -Location $loc -AddressPrefix "10.0.0.0/16" -DnsServer "10.1.1.1" -Subnet $subnet;
160+
$vnet = Get-AzureVirtualNetwork -Name ('vnet' + $rgname) -ResourceGroupName $rgname;
161+
$subnetId = $vnet.Subnets[0].Id;
162+
$pubip = New-AzurePublicIpAddress -Force -Name ('pubip' + $rgname) -ResourceGroupName $rgname -Location $loc -AllocationMethod Dynamic -DomainNameLabel ('pubip' + $rgname);
163+
$pubip = Get-AzurePublicIpAddress -Name ('pubip' + $rgname) -ResourceGroupName $rgname;
164+
$pubipId = $pubip.Id;
165+
$nic = New-AzureNetworkInterface -Force -Name ('nic' + $rgname) -ResourceGroupName $rgname -Location $loc -SubnetId $subnetId -PublicIpAddressId $pubip.Id -DnsServer "10.0.1.5";
166+
$nic = Get-AzureNetworkInterface -Name ('nic' + $rgname) -ResourceGroupName $rgname;
167+
$nicId = $nic.Id;
168+
169+
$p = Add-AzureVMNetworkInterface -VM $p -Id $nicId;
170+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1;
171+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces[0].ReferenceUri $nicId;
172+
Assert-Null $p.NetworkProfile.NetworkInterfaces[0].Primary;
173+
174+
# Storage Account (SA)
175+
$stoname = 'sto' + $rgname;
176+
$stotype = 'Standard_GRS';
177+
New-AzureStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype;
178+
Retry-IfException { $global:stoaccount = Get-AzureStorageAccount -ResourceGroupName $rgname -Name $stoname; }
179+
180+
$osDiskName = 'osDisk';
181+
$osDiskCaching = 'ReadWrite';
182+
$osDiskVhdUri = "https://$stoname.blob.core.windows.net/test/os.vhd";
183+
$dataDiskVhdUri1 = "https://$stoname.blob.core.windows.net/test/data1.vhd";
184+
$dataDiskVhdUri2 = "https://$stoname.blob.core.windows.net/test/data2.vhd";
185+
$dataDiskVhdUri3 = "https://$stoname.blob.core.windows.net/test/data3.vhd";
186+
187+
$p = Set-AzureVMOSDisk -VM $p -Name $osDiskName -VhdUri $osDiskVhdUri -Caching $osDiskCaching;
188+
189+
$p = Add-AzureVMDataDisk -VM $p -Name 'testDataDisk1' -Caching 'ReadOnly' -DiskSizeInGB 10 -Lun 0 -VhdUri $dataDiskVhdUri1;
190+
$p = Add-AzureVMDataDisk -VM $p -Name 'testDataDisk2' -Caching 'ReadOnly' -DiskSizeInGB 11 -Lun 1 -VhdUri $dataDiskVhdUri2;
191+
$p = Add-AzureVMDataDisk -VM $p -Name 'testDataDisk3' -Caching 'ReadOnly' -DiskSizeInGB 12 -Lun 2 -VhdUri $dataDiskVhdUri3;
192+
$p = Remove-AzureVMDataDisk -VM $p -Name 'testDataDisk3';
193+
194+
# OS & Image
195+
$user = "Foo12";
196+
$password = 'BaR@123' + $rgname;
197+
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force;
198+
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);
199+
$computerName = 'test';
200+
$vhdContainer = "https://$stoname.blob.core.windows.net/test";
201+
$img = 'a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-201503.01-en.us-127GB.vhd';
202+
203+
$p.StorageProfile.OSDisk = $null;
204+
$p = Set-AzureVMOperatingSystem -VM $p -Windows -ComputerName $computerName -Credential $cred;
205+
$p = Set-AzureVMSourceImage -VM $p -Name $img -DestinationVhdsContainer $vhdContainer;
206+
207+
# Virtual Machine
208+
# TODO: Still need to do retry for New-AzureVM for SA, even it's returned in Get-.
209+
New-AzureVM -ResourceGroupName $rgname -Location $loc -Name $vmname -VM $p;
210+
211+
# Get VM
212+
$vm1 = Get-AzureVM -Name $vmname -ResourceGroupName $rgname;
213+
214+
# Get NetworkInterface
215+
$getnic = Get-AzureNetworkInterface -Name ('nic' + $rgname) -ResourceGroupName $rgname;
216+
Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces[0].ReferenceUri $getnic.Id;
217+
Assert-AreEqual $getnic.Primary true;
218+
Assert-NotNull $getnic.MacAddress;
219+
Assert-NotNull $getnic.DnsSettings.AppliedDnsServers;
220+
221+
# Remove
222+
Remove-AzureVM -Name $vmname -ResourceGroupName $rgname -Force;
223+
}
224+
finally
225+
{
226+
# Cleanup
227+
Clean-ResourceGroup $rgname
228+
}
229+
}
230+
136231
<#
137232
.SYNOPSIS
138233
Test Virtual Machines with multiple NetworkInterface

0 commit comments

Comments
 (0)