@@ -1803,3 +1803,134 @@ function Test-VirtualMachineListWithPaging
18031803 }
18041804}
18051805
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