@@ -591,3 +591,247 @@ function Test-EffectiveRoutesAndNsg
591
591
Clean - ResourceGroup $rgname
592
592
}
593
593
}
594
+
595
+ <#
596
+ . SYNOPSIS
597
+ Test Virtual Machines with single NetworkInterface
598
+ #>
599
+ function Test-SingleNetworkInterfaceWithAcceleratedNetworking
600
+ {
601
+ # Setup
602
+ $rgname = Get-ComputeTestResourceName
603
+
604
+ try
605
+ {
606
+ # Common
607
+ $loc = " WestCentralUS" ;
608
+ New-AzureRmResourceGroup - Name $rgname - Location $loc - Force;
609
+
610
+ # VM Profile & Hardware
611
+ $vmsize = ' Standard_DS15_v2' ;
612
+ $vmname = ' vm' + $rgname ;
613
+ $p = New-AzureRmVMConfig - VMName $vmname - VMSize $vmsize ;
614
+ Assert-AreEqual $p.HardwareProfile.VmSize $vmsize ;
615
+
616
+ # NRP
617
+ $subnet = New-AzureRmVirtualNetworkSubnetConfig - Name (' subnet' + $rgname ) - AddressPrefix " 10.0.0.0/24" ;
618
+ $vnet = New-AzureRmVirtualNetwork - Force - Name (' vnet' + $rgname ) - ResourceGroupName $rgname - Location $loc - AddressPrefix " 10.0.0.0/16" - Subnet $subnet ;
619
+ $vnet = Get-AzureRmVirtualNetwork - Name (' vnet' + $rgname ) - ResourceGroupName $rgname ;
620
+ $subnetId = $vnet.Subnets [0 ].Id;
621
+ $pubip = New-AzureRmPublicIpAddress - Force - Name (' pubip' + $rgname ) - ResourceGroupName $rgname - Location $loc - AllocationMethod Dynamic - DomainNameLabel (' pubip' + $rgname );
622
+ $pubip = Get-AzureRmPublicIpAddress - Name (' pubip' + $rgname ) - ResourceGroupName $rgname ;
623
+ $pubipId = $pubip.Id ;
624
+ $nic = New-AzureRmNetworkInterface - Force - Name (' nic' + $rgname ) - ResourceGroupName $rgname - Location $loc - EnableAcceleratedNetworking - SubnetId $subnetId - PublicIpAddressId $pubip.Id ;
625
+ $nic = Get-AzureRmNetworkInterface - Name (' nic' + $rgname ) - ResourceGroupName $rgname ;
626
+ $nicId = $nic.Id ;
627
+ Assert-AreEqual $nic.EnableAcceleratedNetworking $true
628
+
629
+ $p = Add-AzureRmVMNetworkInterface - VM $p - Id $nicId ;
630
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1 ;
631
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].Id $nicId ;
632
+ Assert-Null $p.NetworkProfile.NetworkInterfaces [0 ].Primary;
633
+
634
+ # Storage Account (SA)
635
+ $stoname = ' sto' + $rgname ;
636
+ $stotype = ' Standard_GRS' ;
637
+ New-AzureRmStorageAccount - ResourceGroupName $rgname - Name $stoname - Location $loc - Type $stotype ;
638
+ $stoaccount = Get-AzureRmStorageAccount - ResourceGroupName $rgname - Name $stoname ;
639
+
640
+ $osDiskName = ' osDisk' ;
641
+ $osDiskCaching = ' ReadWrite' ;
642
+ $osDiskVhdUri = " https://$stoname .blob.core.windows.net/test/os.vhd" ;
643
+ $dataDiskVhdUri1 = " https://$stoname .blob.core.windows.net/test/data1.vhd" ;
644
+ $dataDiskVhdUri2 = " https://$stoname .blob.core.windows.net/test/data2.vhd" ;
645
+ $dataDiskVhdUri3 = " https://$stoname .blob.core.windows.net/test/data3.vhd" ;
646
+
647
+ $p = Set-AzureRmVMOSDisk - VM $p - Name $osDiskName - VhdUri $osDiskVhdUri - Caching $osDiskCaching - CreateOption FromImage;
648
+
649
+ $p = Add-AzureRmVMDataDisk - VM $p - Name ' testDataDisk1' - Caching ' ReadOnly' - DiskSizeInGB 10 - Lun 1 - VhdUri $dataDiskVhdUri1 - CreateOption Empty;
650
+ $p = Add-AzureRmVMDataDisk - VM $p - Name ' testDataDisk2' - Caching ' ReadOnly' - DiskSizeInGB 11 - Lun 2 - VhdUri $dataDiskVhdUri2 - CreateOption Empty;
651
+ $p = Add-AzureRmVMDataDisk - VM $p - Name ' testDataDisk3' - Caching ' ReadOnly' - DiskSizeInGB 12 - Lun 3 - VhdUri $dataDiskVhdUri3 - CreateOption Empty;
652
+ $p = Remove-AzureRmVMDataDisk - VM $p - Name ' testDataDisk3' ;
653
+
654
+ Assert-AreEqual $p.StorageProfile.OSDisk.Caching $osDiskCaching ;
655
+ Assert-AreEqual $p.StorageProfile.OSDisk.Name $osDiskName ;
656
+ Assert-AreEqual $p.StorageProfile.OSDisk.Vhd.Uri $osDiskVhdUri ;
657
+ Assert-AreEqual $p.StorageProfile.DataDisks.Count 2 ;
658
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Caching ' ReadOnly' ;
659
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].DiskSizeGB 10 ;
660
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Lun 1 ;
661
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Vhd.Uri $dataDiskVhdUri1 ;
662
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Caching ' ReadOnly' ;
663
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].DiskSizeGB 11 ;
664
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Lun 2 ;
665
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Vhd.Uri $dataDiskVhdUri2 ;
666
+
667
+ # OS & Image
668
+ $user = " Foo12" ;
669
+ $password = $PLACEHOLDER ;
670
+ $securePassword = ConvertTo-SecureString $password - AsPlainText - Force;
671
+ $cred = New-Object System.Management.Automation.PSCredential ($user , $securePassword );
672
+ $computerName = ' test' ;
673
+ $vhdContainer = " https://$stoname .blob.core.windows.net/test" ;
674
+ $img = ' a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-201503.01-en.us-127GB.vhd' ;
675
+
676
+ # $p.StorageProfile.OSDisk = $null;
677
+ $p = Set-AzureRmVMOperatingSystem - VM $p - Windows - ComputerName $computerName - Credential $cred ;
678
+
679
+ Assert-AreEqual $p.OSProfile.AdminUsername $user ;
680
+ Assert-AreEqual $p.OSProfile.ComputerName $computerName ;
681
+ Assert-AreEqual $p.OSProfile.AdminPassword $password ;
682
+
683
+ # Image Reference
684
+ $imgRef = Get-DefaultCRPImage " westcentralus" " MicrosoftWindowsServer" ;
685
+ $p = ($imgRef | Set-AzureRmVMSourceImage - VM $p );
686
+ Assert-NotNull $p.StorageProfile.ImageReference ;
687
+ Assert-Null $p.StorageProfile.SourceImageId ;
688
+
689
+ # TODO: Remove Data Disks for now
690
+ $p.StorageProfile.DataDisks = $null ;
691
+
692
+ # Virtual Machine
693
+ # TODO: Still need to do retry for New-AzureRmVM for SA, even it's returned in Get-.
694
+ New-AzureRmVM - ResourceGroupName $rgname - Location $loc - VM $p ;
695
+
696
+ # Get VM
697
+ $vm1 = Get-AzureRmVM - Name $vmname - ResourceGroupName $rgname ;
698
+ Assert-AreEqual $vm1.Name $vmname ;
699
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces.Count 1 ;
700
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces [0 ].Id $nicId ;
701
+
702
+ # Get NetworkInterface
703
+ $getnic = Get-AzureRmNetworkInterface - Name (' nic' + $rgname ) - ResourceGroupName $rgname ;
704
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces [0 ].Id $getnic.Id ;
705
+ Assert-AreEqual $getnic.EnableAcceleratedNetworking $true
706
+
707
+ # Remove
708
+ Remove-AzureRmVM - Name $vmname - ResourceGroupName $rgname - Force;
709
+ }
710
+ finally
711
+ {
712
+ # Cleanup
713
+ Clean - ResourceGroup $rgname
714
+ }
715
+ }
716
+
717
+ <#
718
+ . SYNOPSIS
719
+ Test Virtual Machines with single NetworkInterface
720
+ #>
721
+ function Test-VMNicWithAcceleratedNetworkingValidations
722
+ {
723
+ # Setup
724
+ $rgname = Get-ComputeTestResourceName
725
+
726
+ try
727
+ {
728
+ # Common
729
+ $loc = " WestCentralUS" ;
730
+ New-AzureRmResourceGroup - Name $rgname - Location $loc - Force;
731
+
732
+ # VM Profile & Hardware
733
+ $vmsize = ' Standard_DS15_v2' ;
734
+ $vmname = ' vm' + $rgname ;
735
+ $p = New-AzureRmVMConfig - VMName $vmname - VMSize $vmsize ;
736
+ Assert-AreEqual $p.HardwareProfile.VmSize $vmsize ;
737
+
738
+ # NRP
739
+ $subnet = New-AzureRmVirtualNetworkSubnetConfig - Name (' subnet' + $rgname ) - AddressPrefix " 10.0.0.0/24" ;
740
+ $vnet = New-AzureRmVirtualNetwork - Force - Name (' vnet' + $rgname ) - ResourceGroupName $rgname - Location $loc - AddressPrefix " 10.0.0.0/16" - Subnet $subnet ;
741
+ $vnet = Get-AzureRmVirtualNetwork - Name (' vnet' + $rgname ) - ResourceGroupName $rgname ;
742
+ $subnetId = $vnet.Subnets [0 ].Id;
743
+ $pubip = New-AzureRmPublicIpAddress - Force - Name (' pubip' + $rgname ) - ResourceGroupName $rgname - Location $loc - AllocationMethod Dynamic - DomainNameLabel (' pubip' + $rgname );
744
+ $pubip = Get-AzureRmPublicIpAddress - Name (' pubip' + $rgname ) - ResourceGroupName $rgname ;
745
+ $pubipId = $pubip.Id ;
746
+ $nic = New-AzureRmNetworkInterface - Force - Name (' nic' + $rgname ) - ResourceGroupName $rgname - Location $loc - EnableAcceleratedNetworking - SubnetId $subnetId - PublicIpAddressId $pubip.Id ;
747
+ $nic = Get-AzureRmNetworkInterface - Name (' nic' + $rgname ) - ResourceGroupName $rgname ;
748
+ $nicId = $nic.Id ;
749
+ Assert-AreEqual $nic.EnableAcceleratedNetworking $true
750
+
751
+ $p = Add-AzureRmVMNetworkInterface - VM $p - Id $nicId ;
752
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1 ;
753
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].Id $nicId ;
754
+ Assert-Null $p.NetworkProfile.NetworkInterfaces [0 ].Primary;
755
+
756
+ # Storage Account (SA)
757
+ $stoname = ' sto' + $rgname ;
758
+ $stotype = ' Standard_GRS' ;
759
+ New-AzureRmStorageAccount - ResourceGroupName $rgname - Name $stoname - Location $loc - Type $stotype ;
760
+ $stoaccount = Get-AzureRmStorageAccount - ResourceGroupName $rgname - Name $stoname ;
761
+
762
+ $osDiskName = ' osDisk' ;
763
+ $osDiskCaching = ' ReadWrite' ;
764
+ $osDiskVhdUri = " https://$stoname .blob.core.windows.net/test/os.vhd" ;
765
+ $dataDiskVhdUri1 = " https://$stoname .blob.core.windows.net/test/data1.vhd" ;
766
+ $dataDiskVhdUri2 = " https://$stoname .blob.core.windows.net/test/data2.vhd" ;
767
+ $dataDiskVhdUri3 = " https://$stoname .blob.core.windows.net/test/data3.vhd" ;
768
+
769
+ $p = Set-AzureRmVMOSDisk - VM $p - Name $osDiskName - VhdUri $osDiskVhdUri - Caching $osDiskCaching - CreateOption FromImage;
770
+
771
+ $p = Add-AzureRmVMDataDisk - VM $p - Name ' testDataDisk1' - Caching ' ReadOnly' - DiskSizeInGB 10 - Lun 1 - VhdUri $dataDiskVhdUri1 - CreateOption Empty;
772
+ $p = Add-AzureRmVMDataDisk - VM $p - Name ' testDataDisk2' - Caching ' ReadOnly' - DiskSizeInGB 11 - Lun 2 - VhdUri $dataDiskVhdUri2 - CreateOption Empty;
773
+ $p = Add-AzureRmVMDataDisk - VM $p - Name ' testDataDisk3' - Caching ' ReadOnly' - DiskSizeInGB 12 - Lun 3 - VhdUri $dataDiskVhdUri3 - CreateOption Empty;
774
+ $p = Remove-AzureRmVMDataDisk - VM $p - Name ' testDataDisk3' ;
775
+
776
+ Assert-AreEqual $p.StorageProfile.OSDisk.Caching $osDiskCaching ;
777
+ Assert-AreEqual $p.StorageProfile.OSDisk.Name $osDiskName ;
778
+ Assert-AreEqual $p.StorageProfile.OSDisk.Vhd.Uri $osDiskVhdUri ;
779
+ Assert-AreEqual $p.StorageProfile.DataDisks.Count 2 ;
780
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Caching ' ReadOnly' ;
781
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].DiskSizeGB 10 ;
782
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Lun 1 ;
783
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Vhd.Uri $dataDiskVhdUri1 ;
784
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Caching ' ReadOnly' ;
785
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].DiskSizeGB 11 ;
786
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Lun 2 ;
787
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Vhd.Uri $dataDiskVhdUri2 ;
788
+
789
+ # OS & Image
790
+ $user = " Foo12" ;
791
+ $password = $PLACEHOLDER ;
792
+ $securePassword = ConvertTo-SecureString $password - AsPlainText - Force;
793
+ $cred = New-Object System.Management.Automation.PSCredential ($user , $securePassword );
794
+ $computerName = ' test' ;
795
+ $vhdContainer = " https://$stoname .blob.core.windows.net/test" ;
796
+ $img = ' a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-201503.01-en.us-127GB.vhd' ;
797
+
798
+ # $p.StorageProfile.OSDisk = $null;
799
+ $p = Set-AzureRmVMOperatingSystem - VM $p - Windows - ComputerName $computerName - Credential $cred ;
800
+
801
+ Assert-AreEqual $p.OSProfile.AdminUsername $user ;
802
+ Assert-AreEqual $p.OSProfile.ComputerName $computerName ;
803
+ Assert-AreEqual $p.OSProfile.AdminPassword $password ;
804
+
805
+ # Image Reference
806
+ $imgRef = Get-DefaultCRPImage " westcentralus" " MicrosoftWindowsServer" ;
807
+ $p = ($imgRef | Set-AzureRmVMSourceImage - VM $p );
808
+ Assert-NotNull $p.StorageProfile.ImageReference ;
809
+ Assert-Null $p.StorageProfile.SourceImageId ;
810
+
811
+ # TODO: Remove Data Disks for now
812
+ $p.StorageProfile.DataDisks = $null ;
813
+
814
+ # Virtual Machine
815
+ # TODO: Still need to do retry for New-AzureRmVM for SA, even it's returned in Get-.
816
+ New-AzureRmVM - ResourceGroupName $rgname - Location $loc - VM $p ;
817
+
818
+ # Get VM
819
+ $vm1 = Get-AzureRmVM - Name $vmname - ResourceGroupName $rgname ;
820
+ Assert-AreEqual $vm1.Name $vmname ;
821
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces.Count 1 ;
822
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces [0 ].Id $nicId ;
823
+
824
+ # Get NetworkInterface
825
+ $getnic = Get-AzureRmNetworkInterface - Name (' nic' + $rgname ) - ResourceGroupName $rgname ;
826
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces [0 ].Id $getnic.Id ;
827
+ Assert-AreEqual $getnic.EnableAcceleratedNetworking $true
828
+
829
+ # Remove
830
+ Remove-AzureRmVM - Name $vmname - ResourceGroupName $rgname - Force;
831
+ }
832
+ finally
833
+ {
834
+ # Cleanup
835
+ Clean - ResourceGroup $rgname
836
+ }
837
+ }
0 commit comments