@@ -1803,3 +1803,134 @@ function Test-VirtualMachineListWithPaging
1803
1803
}
1804
1804
}
1805
1805
1806
+
1807
+ <#
1808
+ . SYNOPSIS
1809
+ Test Virtual Machines
1810
+ #>
1811
+ function Test-VirtualMachineWithDifferentStorageResource
1812
+ {
1813
+ # Setup
1814
+ $rgname = Get-ComputeTestResourceName
1815
+ $rgname_storage = Get-ComputeTestResourceName
1816
+
1817
+ try
1818
+ {
1819
+ # Common
1820
+ $loc = " eastus" ;
1821
+ New-AzureRmResourceGroup - Name $rgname - Location $loc - Force;
1822
+ New-AzureRmResourceGroup - Name $rgname_storage - Location $loc - Force;
1823
+
1824
+ # VM Profile & Hardware
1825
+ $vmsize = ' Standard_A4' ;
1826
+ $vmname = ' vm' + $rgname ;
1827
+ $p = New-AzureRmVMConfig - VMName $vmname - VMSize $vmsize ;
1828
+ Assert-AreEqual $p.HardwareProfile.VirtualMachineSize $vmsize ;
1829
+
1830
+ # NRP
1831
+ $subnet = New-AzureRmVirtualNetworkSubnetConfig - Name (' subnet' + $rgname ) - AddressPrefix " 10.0.0.0/24" ;
1832
+ $vnet = New-AzureRmVirtualNetwork - Force - Name (' vnet' + $rgname ) - ResourceGroupName $rgname - Location $loc - AddressPrefix " 10.0.0.0/16" - DnsServer " 10.1.1.1" - Subnet $subnet ;
1833
+ $vnet = Get-AzureRmVirtualNetwork - Name (' vnet' + $rgname ) - ResourceGroupName $rgname ;
1834
+ $subnetId = $vnet.Subnets [0 ].Id;
1835
+ $pubip = New-AzureRmPublicIpAddress - Force - Name (' pubip' + $rgname ) - ResourceGroupName $rgname - Location $loc - AllocationMethod Dynamic - DomainNameLabel (' pubip' + $rgname );
1836
+ $pubip = Get-AzureRmPublicIpAddress - Name (' pubip' + $rgname ) - ResourceGroupName $rgname ;
1837
+ $pubipId = $pubip.Id ;
1838
+ $nic = New-AzureRmNetworkInterface - Force - Name (' nic' + $rgname ) - ResourceGroupName $rgname - Location $loc - SubnetId $subnetId - PublicIpAddressId $pubip.Id ;
1839
+ $nic = Get-AzureRmNetworkInterface - Name (' nic' + $rgname ) - ResourceGroupName $rgname ;
1840
+ $nicId = $nic.Id ;
1841
+
1842
+ $p = Add-AzureRmVMNetworkInterface - VM $p - Id $nicId ;
1843
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1 ;
1844
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].ReferenceUri $nicId ;
1845
+
1846
+ # Adding the same Nic but not set it Primary
1847
+ $p = Add-AzureRmVMNetworkInterface - VM $p - Id $nicId - Primary;
1848
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1 ;
1849
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].ReferenceUri $nicId ;
1850
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].Primary $true ;
1851
+
1852
+ # Storage Account (SA)
1853
+ $stoname = ' sto' + $rgname ;
1854
+ $stotype = ' Standard_GRS' ;
1855
+ New-AzureRmStorageAccount - ResourceGroupName $rgname_storage - Name $stoname - Location $loc - Type $stotype ;
1856
+ $stoaccount = Get-AzureRmStorageAccount - ResourceGroupName $rgname_storage - Name $stoname ;
1857
+
1858
+ $osDiskName = ' osDisk' ;
1859
+ $osDiskCaching = ' ReadWrite' ;
1860
+ $osDiskVhdUri = " https://$stoname .blob.core.windows.net/test/os.vhd" ;
1861
+ $dataDiskVhdUri1 = " https://$stoname .blob.core.windows.net/test/data1.vhd" ;
1862
+ $dataDiskVhdUri2 = " https://$stoname .blob.core.windows.net/test/data2.vhd" ;
1863
+ $dataDiskVhdUri3 = " https://$stoname .blob.core.windows.net/test/data3.vhd" ;
1864
+
1865
+ $p = Set-AzureRmVMOSDisk - VM $p - Name $osDiskName - VhdUri $osDiskVhdUri - Caching $osDiskCaching - CreateOption FromImage;
1866
+
1867
+ $p = Add-AzureRmVMDataDisk - VM $p - Name ' testDataDisk1' - Caching ' ReadOnly' - DiskSizeInGB 10 - Lun 1 - VhdUri $dataDiskVhdUri1 - CreateOption Empty;
1868
+ $p = Add-AzureRmVMDataDisk - VM $p - Name ' testDataDisk2' - Caching ' ReadOnly' - DiskSizeInGB 11 - Lun 2 - VhdUri $dataDiskVhdUri2 - CreateOption Empty;
1869
+ $p = Add-AzureRmVMDataDisk - VM $p - Name ' testDataDisk3' - Caching ' ReadOnly' - DiskSizeInGB 12 - Lun 3 - VhdUri $dataDiskVhdUri3 - CreateOption Empty;
1870
+ $p = Remove-AzureRmVMDataDisk - VM $p - Name ' testDataDisk3' ;
1871
+
1872
+ Assert-AreEqual $p.StorageProfile.OSDisk.Caching $osDiskCaching ;
1873
+ Assert-AreEqual $p.StorageProfile.OSDisk.Name $osDiskName ;
1874
+ Assert-AreEqual $p.StorageProfile.OSDisk.VirtualHardDisk.Uri $osDiskVhdUri ;
1875
+ Assert-AreEqual $p.StorageProfile.DataDisks.Count 2 ;
1876
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Caching ' ReadOnly' ;
1877
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].DiskSizeGB 10 ;
1878
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Lun 1 ;
1879
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].VirtualHardDisk.Uri $dataDiskVhdUri1 ;
1880
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Caching ' ReadOnly' ;
1881
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].DiskSizeGB 11 ;
1882
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Lun 2 ;
1883
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].VirtualHardDisk.Uri $dataDiskVhdUri2 ;
1884
+
1885
+ # OS & Image
1886
+ $user = " Foo12" ;
1887
+ $password = ' BaR@123' + $rgname ;
1888
+ $securePassword = ConvertTo-SecureString $password - AsPlainText - Force;
1889
+ $cred = New-Object System.Management.Automation.PSCredential ($user , $securePassword );
1890
+ $computerName = ' test' ;
1891
+ $vhdContainer = " https://$stoname .blob.core.windows.net/test" ;
1892
+
1893
+ # $p.StorageProfile.OSDisk = $null;
1894
+ $p = Set-AzureRmVMOperatingSystem - VM $p - Windows - ComputerName $computerName - Credential $cred ;
1895
+
1896
+ $imgRef = Get-DefaultCRPImage - loc $loc ;
1897
+ $p = ($imgRef | Set-AzureRmVMSourceImage - VM $p );
1898
+
1899
+ Assert-AreEqual $p.OSProfile.AdminUsername $user ;
1900
+ Assert-AreEqual $p.OSProfile.ComputerName $computerName ;
1901
+ Assert-AreEqual $p.OSProfile.AdminPassword $password ;
1902
+
1903
+ Assert-AreEqual $p.StorageProfile.ImageReference.Offer $imgRef.Offer ;
1904
+ Assert-AreEqual $p.StorageProfile.ImageReference.Publisher $imgRef.PublisherName ;
1905
+ Assert-AreEqual $p.StorageProfile.ImageReference.Sku $imgRef.Skus ;
1906
+ Assert-AreEqual $p.StorageProfile.ImageReference.Version $imgRef.Version ;
1907
+
1908
+ # Virtual Machine
1909
+ New-AzureRmVM - ResourceGroupName $rgname - Location $loc - VM $p ;
1910
+
1911
+ # Get VM
1912
+ $vm1 = Get-AzureRmVM - Name $vmname - ResourceGroupName $rgname ;
1913
+ Assert-AreEqual $vm1.Name $vmname ;
1914
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces.Count 1 ;
1915
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces [0 ].ReferenceUri $nicId ;
1916
+
1917
+ Assert-AreEqual $vm1.StorageProfile.ImageReference.Offer $imgRef.Offer ;
1918
+ Assert-AreEqual $vm1.StorageProfile.ImageReference.Publisher $imgRef.PublisherName ;
1919
+ Assert-AreEqual $vm1.StorageProfile.ImageReference.Sku $imgRef.Skus ;
1920
+ Assert-AreEqual $vm1.StorageProfile.ImageReference.Version $imgRef.Version ;
1921
+
1922
+ Assert-AreEqual $vm1.OSProfile.AdminUsername $user ;
1923
+ Assert-AreEqual $vm1.OSProfile.ComputerName $computerName ;
1924
+ Assert-AreEqual $vm1.HardwareProfile.VirtualMachineSize $vmsize ;
1925
+
1926
+ Assert-AreEqual $true $vm1.DiagnosticsProfile.BootDiagnostics.Enabled ;
1927
+ Assert-AreNotEqual $stoaccount.PrimaryEndpoints.Blob $vm1.DiagnosticsProfile.BootDiagnostics.StorageUri ;
1928
+ }
1929
+ finally
1930
+ {
1931
+ # Cleanup
1932
+ Clean - ResourceGroup $rgname
1933
+ Clean - ResourceGroup $rgname_storage
1934
+ }
1935
+ }
1936
+
0 commit comments