Skip to content

Commit cf4f5d9

Browse files
committed
Merge pull request #28 from hyonholee/dev
Dev
2 parents 1210614 + 4c41b3f commit cf4f5d9

File tree

15 files changed

+3792
-52
lines changed

15 files changed

+3792
-52
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
@@ -238,6 +238,9 @@
238238
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineExtensionTests\TestVirtualMachineExtension.json">
239239
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
240240
</None>
241+
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineNetworkInterfaceTests\TestAddNetworkInterface.json">
242+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
243+
</None>
241244
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineNetworkInterfaceTests\TestSingleNetworkInterfaceDnsSettings.json">
242245
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
243246
</None>

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,12 @@ public void TestSingleNetworkInterfaceDnsSettings()
3939
{
4040
ComputeTestController.NewInstance.RunPsTest("Test-SingleNetworkInterfaceDnsSettings");
4141
}
42+
43+
[Fact]
44+
[Trait(Category.AcceptanceType, Category.CheckIn)]
45+
public void TestAddNetworkInterface()
46+
{
47+
ComputeTestController.NewInstance.RunPsTest("Test-AddNetworkInterface");
48+
}
4249
}
4350
}

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

Lines changed: 108 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ function Test-MultipleNetworkInterface
281281
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces[1].Primary true;
282282
Assert-AreNotEqual $p.NetworkProfile.NetworkInterfaces[0].Primary true;
283283

284-
# Storage Account (SA)
284+
# Storage Account (SA)
285285
$stoname = 'sto' + $rgname;
286286
$stotype = 'Standard_GRS';
287287
New-AzureStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype;
@@ -353,3 +353,110 @@ function Test-MultipleNetworkInterface
353353
Clean-ResourceGroup $rgname
354354
}
355355
}
356+
357+
<#
358+
.SYNOPSIS
359+
Test Virtual Machines with VMAgent and AutoUpdate
360+
#>
361+
function Test-AddNetworkInterface
362+
{
363+
# Setup
364+
$rgname = Get-ComputeTestResourceName
365+
366+
try
367+
{
368+
# Common
369+
$loc = 'westus';
370+
New-AzureResourceGroup -Name $rgname -Location $loc -Force;
371+
372+
# VM Profile & Hardware
373+
$vmsize = 'Standard_A2';
374+
$vmname = 'vm' + $rgname;
375+
$p = New-AzureVMConfig -VMName $vmname -VMSize $vmsize;
376+
Assert-AreEqual $p.HardwareProfile.VirtualMachineSize $vmsize;
377+
378+
# NRP
379+
$subnet = New-AzureVirtualNetworkSubnetConfig -Name ('subnet' + $rgname) -AddressPrefix "10.0.0.0/24";
380+
$vnet = New-AzureVirtualNetwork -Force -Name ('vnet' + $rgname) -ResourceGroupName $rgname -Location $loc -AddressPrefix "10.0.0.0/16" -DnsServer "10.1.1.1" -Subnet $subnet;
381+
$vnet = Get-AzureVirtualNetwork -Name ('vnet' + $rgname) -ResourceGroupName $rgname;
382+
$subnetId = $vnet.Subnets[0].Id;
383+
$pubip = New-AzurePublicIpAddress -Force -Name ('pubip' + $rgname) -ResourceGroupName $rgname -Location $loc -AllocationMethod Dynamic -DomainNameLabel ('pubip' + $rgname);
384+
$pubip = Get-AzurePublicIpAddress -Name ('pubip' + $rgname) -ResourceGroupName $rgname;
385+
$pubipId = $pubip.Id;
386+
$nic = New-AzureNetworkInterface -Force -Name ('nic' + $rgname) -ResourceGroupName $rgname -Location $loc -SubnetId $subnetId -PublicIpAddressId $pubip.Id;
387+
$nicId = $nic.Id;
388+
389+
$nicList = Get-AzureNetworkInterface -ResourceGroupName $rgname;
390+
$nicList[0].Primary = $true;
391+
$p = Add-AzureVMNetworkInterface -VM $p -NetworkInterface $nicList;
392+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1;
393+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces[0].ReferenceUri $nicList[0].Id;
394+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces[0].Primary $true;
395+
396+
# Storage Account (SA)
397+
$stoname = 'sto' + $rgname;
398+
$stotype = 'Standard_GRS';
399+
New-AzureStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype;
400+
$stoaccount = Get-AzureStorageAccount -ResourceGroupName $rgname -Name $stoname;
401+
402+
$osDiskName = 'osDisk';
403+
$osDiskCaching = 'ReadWrite';
404+
$osDiskVhdUri = "https://$stoname.blob.core.windows.net/test/os.vhd";
405+
$dataDiskVhdUri1 = "https://$stoname.blob.core.windows.net/test/data1.vhd";
406+
$dataDiskVhdUri2 = "https://$stoname.blob.core.windows.net/test/data2.vhd";
407+
$dataDiskVhdUri3 = "https://$stoname.blob.core.windows.net/test/data3.vhd";
408+
409+
$p = Set-AzureVMOSDisk -VM $p -Name $osDiskName -VhdUri $osDiskVhdUri -Caching $osDiskCaching -CreateOption FromImage;
410+
411+
$p = Add-AzureVMDataDisk -VM $p -Name 'testDataDisk1' -Caching 'ReadOnly' -DiskSizeInGB 10 -Lun 1 -VhdUri $dataDiskVhdUri1 -CreateOption Empty;
412+
$p = Add-AzureVMDataDisk -VM $p -Name 'testDataDisk2' -Caching 'ReadOnly' -DiskSizeInGB 11 -Lun 2 -VhdUri $dataDiskVhdUri2 -CreateOption Empty;
413+
414+
Assert-AreEqual $p.StorageProfile.OSDisk.Caching $osDiskCaching;
415+
Assert-AreEqual $p.StorageProfile.OSDisk.Name $osDiskName;
416+
Assert-AreEqual $p.StorageProfile.OSDisk.VirtualHardDisk.Uri $osDiskVhdUri;
417+
Assert-AreEqual $p.StorageProfile.DataDisks.Count 2;
418+
Assert-AreEqual $p.StorageProfile.DataDisks[0].Caching 'ReadOnly';
419+
Assert-AreEqual $p.StorageProfile.DataDisks[0].DiskSizeGB 10;
420+
Assert-AreEqual $p.StorageProfile.DataDisks[0].Lun 1;
421+
Assert-AreEqual $p.StorageProfile.DataDisks[0].VirtualHardDisk.Uri $dataDiskVhdUri1;
422+
Assert-AreEqual $p.StorageProfile.DataDisks[1].Caching 'ReadOnly';
423+
Assert-AreEqual $p.StorageProfile.DataDisks[1].DiskSizeGB 11;
424+
Assert-AreEqual $p.StorageProfile.DataDisks[1].Lun 2;
425+
Assert-AreEqual $p.StorageProfile.DataDisks[1].VirtualHardDisk.Uri $dataDiskVhdUri2;
426+
427+
# OS & Image
428+
$user = "Foo12";
429+
$password = 'BaR@123' + $rgname;
430+
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force;
431+
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);
432+
$computerName = 'test';
433+
$p = Set-AzureVMOperatingSystem -VM $p -Windows -ComputerName $computerName -Credential $cred;
434+
435+
Assert-AreEqual $p.OSProfile.AdminUsername $user;
436+
Assert-AreEqual $p.OSProfile.ComputerName $computerName;
437+
Assert-AreEqual $p.OSProfile.AdminPassword $password;
438+
439+
# Image Reference
440+
$imgRef = Get-DefaultCRPImage;
441+
$p = ($imgRef | Set-AzureVMSourceImage -VM $p);
442+
Assert-NotNull $p.StorageProfile.ImageReference;
443+
Assert-Null $p.StorageProfile.SourceImageId;
444+
445+
# TODO: Remove Data Disks for now
446+
$p.StorageProfile.DataDisks = $null;
447+
448+
# Virtual Machine
449+
# TODO: Still need to do retry for New-AzureVM for SA, even it's returned in Get-.
450+
New-AzureVM -ResourceGroupName $rgname -Location $loc -Name $vmname -VM $p;
451+
452+
$vm1 = Get-AzureVM -Name $vmname -ResourceGroupName $rgname;
453+
Assert-AreEqual $vm1.Name $vmname;
454+
Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces.Count 1;
455+
Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces[0].ReferenceUri $nicId;
456+
}
457+
finally
458+
{
459+
# Cleanup
460+
Clean-ResourceGroup $rgname
461+
}
462+
}

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

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,27 @@ function Test-VirtualMachineProfile
2626

2727
# Network
2828
$ipname = 'hpfip' + ((Get-Random) % 10000);
29-
$ipRefUri = "https://test.foo.bar/$ipname";
29+
$ipRefUri1 = "https://test.foo.bar/$ipname";
3030
$nicName = $ipname + 'nic1';
3131
$publicIPName = $ipname + 'name1';
3232

33-
$p = Add-AzureVMNetworkInterface -VM $p -Id $ipRefUri;
33+
$p = Add-AzureVMNetworkInterface -VM $p -Id $ipRefUri1;
34+
35+
$ipname = 'hpfip' + ((Get-Random) % 10000);
36+
$ipRefUri2 = "https://test.foo.bar/$ipname";
37+
$p = Add-AzureVMNetworkInterface -VM $p -Id $ipRefUri2;
38+
39+
# Remove all NICs
40+
$p = $p | Remove-AzureVMNetworkInterface;
41+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 0;
42+
43+
$p = Add-AzureVMNetworkInterface -VM $p -Id $ipRefUri1 -Primary;
44+
$p = Add-AzureVMNetworkInterface -VM $p -Id $ipRefUri2;
45+
$p = Remove-AzureVMNetworkInterface -VM $p -Id $ipRefUri2;
3446

3547
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1;
36-
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces[0].ReferenceUri $ipRefUri;
48+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces[0].ReferenceUri $ipRefUri1;
49+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces[0].Primary $true;
3750

3851
# Storage
3952
$stoname = 'hpfteststo' + ((Get-Random) % 10000);
@@ -66,6 +79,23 @@ function Test-VirtualMachineProfile
6679
Assert-AreEqual $p.StorageProfile.DataDisks[1].Lun 1;
6780
Assert-AreEqual $p.StorageProfile.DataDisks[1].VirtualHardDisk.Uri $dataDiskVhdUri2;
6881

82+
# Remove all data disks
83+
$p = $p | Remove-AzureVMDataDisk;
84+
Assert-AreEqual $p.StorageProfile.DataDisks.Count 0;
85+
86+
$p = Add-AzureVMDataDisk -VM $p -Name 'testDataDisk1' -Caching 'ReadOnly' -DiskSizeInGB 10 -Lun 0 -VhdUri $dataDiskVhdUri1 -CreateOption Empty;
87+
$p = Add-AzureVMDataDisk -VM $p -Name 'testDataDisk2' -Caching 'ReadOnly' -DiskSizeInGB 11 -Lun 1 -VhdUri $dataDiskVhdUri2 -CreateOption Empty;
88+
89+
Assert-AreEqual $p.StorageProfile.DataDisks.Count 2;
90+
Assert-AreEqual $p.StorageProfile.DataDisks[0].Caching 'ReadOnly';
91+
Assert-AreEqual $p.StorageProfile.DataDisks[0].DiskSizeGB 10;
92+
Assert-AreEqual $p.StorageProfile.DataDisks[0].Lun 0;
93+
Assert-AreEqual $p.StorageProfile.DataDisks[0].VirtualHardDisk.Uri $dataDiskVhdUri1;
94+
Assert-AreEqual $p.StorageProfile.DataDisks[1].Caching 'ReadOnly';
95+
Assert-AreEqual $p.StorageProfile.DataDisks[1].DiskSizeGB 11;
96+
Assert-AreEqual $p.StorageProfile.DataDisks[1].Lun 1;
97+
Assert-AreEqual $p.StorageProfile.DataDisks[1].VirtualHardDisk.Uri $dataDiskVhdUri2;
98+
6999
# Windows OS
70100
$user = "Foo12";
71101
$password = 'BaR@000' + ((Get-Random) % 10000);

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

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@ function Test-VirtualMachine
4949
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1;
5050
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces[0].ReferenceUri $nicId;
5151

52+
# Adding the same Nic but not set it Primary
53+
$p = Add-AzureVMNetworkInterface -VM $p -Id $nicId -Primary;
54+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1;
55+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces[0].ReferenceUri $nicId;
56+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces[0].Primary $true;
57+
5258
# Storage Account (SA)
5359
$stoname = 'sto' + $rgname;
5460
$stotype = 'Standard_GRS';
@@ -765,7 +771,10 @@ function Test-VirtualMachineCapture
765771
Set-AzureVM -Generalize -ResourceGroupName $rgname -Name $vmname;
766772

767773
$dest = Get-ComputeTestResourceName;
768-
Save-AzureVMImage -ResourceGroupName $rgname -VMName $vmname -DestinationContainerName $dest -VHDNamePrefix 'pslib' -Overwrite;
774+
$templatePath = ".\template.txt";
775+
Save-AzureVMImage -ResourceGroupName $rgname -VMName $vmname -DestinationContainerName $dest -VHDNamePrefix 'pslib' -Overwrite -Path $templatePath;
776+
$template = Get-Content $templatePath;
777+
Assert-True { $template[1].Contains("$schema"); }
769778

770779
# Remove
771780
Remove-AzureVM -ResourceGroupName $rgname -Name $vmname -Force;

0 commit comments

Comments
 (0)