@@ -2091,3 +2091,129 @@ function Test-VirtualMachineWithEmptyAuc
2091
2091
Clean - ResourceGroup $rgname
2092
2092
}
2093
2093
}
2094
+
2095
+ <#
2096
+ . SYNOPSIS
2097
+ Test Virtual Machines
2098
+ #>
2099
+ function Test-VirtualMachineWithBYOL
2100
+ {
2101
+ # Setup
2102
+ $rgname = Get-ComputeTestResourceName
2103
+
2104
+ try
2105
+ {
2106
+ # Common
2107
+ $loc = " Southeast Asia" ;
2108
+ New-AzureRmResourceGroup - Name $rgname - Location $loc - Force;
2109
+
2110
+ # VM Profile & Hardware
2111
+ $vmsize = ' Standard_A4' ;
2112
+ $vmname = ' vm' + $rgname ;
2113
+ $p = New-AzureRmVMConfig - VMName $vmname - VMSize $vmsize ;
2114
+ Assert-AreEqual $p.HardwareProfile.VmSize $vmsize ;
2115
+
2116
+ # NRP
2117
+ $subnet = New-AzureRmVirtualNetworkSubnetConfig - Name (' subnet' + $rgname ) - AddressPrefix " 10.0.0.0/24" ;
2118
+ $vnet = New-AzureRmVirtualNetwork - Force - Name (' vnet' + $rgname ) - ResourceGroupName $rgname - Location $loc - AddressPrefix " 10.0.0.0/16" - DnsServer " 10.1.1.1" - Subnet $subnet ;
2119
+ $vnet = Get-AzureRmVirtualNetwork - Name (' vnet' + $rgname ) - ResourceGroupName $rgname ;
2120
+ $subnetId = $vnet.Subnets [0 ].Id;
2121
+ $pubip = New-AzureRmPublicIpAddress - Force - Name (' pubip' + $rgname ) - ResourceGroupName $rgname - Location $loc - AllocationMethod Dynamic - DomainNameLabel (' pubip' + $rgname );
2122
+ $pubip = Get-AzureRmPublicIpAddress - Name (' pubip' + $rgname ) - ResourceGroupName $rgname ;
2123
+ $pubipId = $pubip.Id ;
2124
+ $nic = New-AzureRmNetworkInterface - Force - Name (' nic' + $rgname ) - ResourceGroupName $rgname - Location $loc - SubnetId $subnetId - PublicIpAddressId $pubip.Id ;
2125
+ $nic = Get-AzureRmNetworkInterface - Name (' nic' + $rgname ) - ResourceGroupName $rgname ;
2126
+ $nicId = $nic.Id ;
2127
+
2128
+ $p = Add-AzureRmVMNetworkInterface - VM $p - Id $nicId ;
2129
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1 ;
2130
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].Id $nicId ;
2131
+
2132
+ # Adding the same Nic but not set it Primary
2133
+ $p = Add-AzureRmVMNetworkInterface - VM $p - Id $nicId - Primary;
2134
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1 ;
2135
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].Id $nicId ;
2136
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].Primary $true ;
2137
+
2138
+ # Storage Account (SA)
2139
+ $stoname = " mybyolosimage" ;
2140
+ $osDiskName = ' osDisk' ;
2141
+ $osDiskCaching = ' ReadWrite' ;
2142
+ $osDiskVhdUri = " https://$stoname .blob.core.windows.net/test/os.vhd" ;
2143
+ $dataDiskVhdUri1 = " https://$stoname .blob.core.windows.net/test/data1.vhd" ;
2144
+ $dataDiskVhdUri2 = " https://$stoname .blob.core.windows.net/test/data2.vhd" ;
2145
+ $userImageUrl = " https://mybyolosimage.blob.core.windows.net/vhdsrc2/win2012-tag0.vhd" ;
2146
+
2147
+ $p = Set-AzureRmVMOSDisk - VM $p - Windows - Name $osDiskName - VhdUri $osDiskVhdUri - Caching $osDiskCaching - SourceImage $userImageUrl - CreateOption FromImage;
2148
+ $p = Add-AzureRmVMDataDisk - VM $p - Name ' testDataDisk1' - Caching ' ReadOnly' - DiskSizeInGB 10 - Lun 1 - VhdUri $dataDiskVhdUri1 - CreateOption Empty;
2149
+
2150
+ Assert-AreEqual $p.StorageProfile.OSDisk.Caching $osDiskCaching ;
2151
+ Assert-AreEqual $p.StorageProfile.OSDisk.Name $osDiskName ;
2152
+ Assert-AreEqual $p.StorageProfile.OSDisk.Vhd.Uri $osDiskVhdUri ;
2153
+ Assert-AreEqual $p.StorageProfile.DataDisks.Count 1 ;
2154
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Caching ' ReadOnly' ;
2155
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].DiskSizeGB 10 ;
2156
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Lun 1 ;
2157
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Vhd.Uri $dataDiskVhdUri1 ;
2158
+
2159
+ # OS & Image
2160
+ $user = " Foo12" ;
2161
+ $password = ' BaR@123' + $rgname ;
2162
+ $securePassword = ConvertTo-SecureString $password - AsPlainText - Force;
2163
+ $cred = New-Object System.Management.Automation.PSCredential ($user , $securePassword );
2164
+ $computerName = ' test' ;
2165
+ $vhdContainer = " https://$stoname .blob.core.windows.net/test" ;
2166
+ $licenseType = " Windows_Server" ;
2167
+
2168
+ $p = Set-AzureRmVMOperatingSystem - VM $p - Windows - ComputerName $computerName - Credential $cred - ProvisionVMAgent - EnableAutoUpdate;
2169
+
2170
+ Assert-AreEqual $p.OSProfile.AdminUsername $user ;
2171
+ Assert-AreEqual $p.OSProfile.ComputerName $computerName ;
2172
+ Assert-AreEqual $p.OSProfile.AdminPassword $password ;
2173
+
2174
+ # Virtual Machine
2175
+ New-AzureRmVM - ResourceGroupName $rgname - Location $loc - LicenseType $licenseType - VM $p ;
2176
+
2177
+ # Get VM
2178
+ $vm1 = Get-AzureRmVM - Name $vmname - ResourceGroupName $rgname ;
2179
+
2180
+ $output = $vm1 | Out-String ;
2181
+ Write-Verbose (' Output String : ' + $output );
2182
+ Assert-AreEqual $vm1.Name $vmname ;
2183
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces.Count 1 ;
2184
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces [0 ].Id $nicId ;
2185
+
2186
+ Assert-AreEqual $vm1.OSProfile.AdminUsername $user ;
2187
+ Assert-AreEqual $vm1.OSProfile.ComputerName $computerName ;
2188
+ Assert-AreEqual $vm1.HardwareProfile.VmSize $vmsize ;
2189
+ Assert-AreEqual $vm1.LicenseType $licenseType ;
2190
+
2191
+ Assert-AreEqual $true $vm1.DiagnosticsProfile.BootDiagnostics.Enabled ;
2192
+
2193
+ Get-AzureRmVM - ResourceGroupName $rgname - Name $vmname `
2194
+ | Add-AzureRmVMDataDisk - Name ' testDataDisk2' - Caching ' ReadOnly' - DiskSizeInGB 12 - Lun 3 - VhdUri $dataDiskVhdUri2 - CreateOption Empty `
2195
+ | Update-AzureRmVM ;
2196
+
2197
+ $vm2 = Get-AzureRmVM - Name $vmname - ResourceGroupName $rgname ;
2198
+
2199
+ Assert-AreEqual $vm2.NetworkProfile.NetworkInterfaces.Count 1 ;
2200
+ Assert-AreEqual $vm2.NetworkProfile.NetworkInterfaces [0 ].Id $nicId ;
2201
+ Assert-AreEqual $vm2.StorageProfile.DataDisks.Count 2 ;
2202
+
2203
+ Assert-AreEqual $vm2.OSProfile.AdminUsername $user ;
2204
+ Assert-AreEqual $vm2.OSProfile.ComputerName $computerName ;
2205
+ Assert-AreEqual $vm2.HardwareProfile.VmSize $vmsize ;
2206
+ Assert-AreEqual $vm2.LicenseType $licenseType ;
2207
+ Assert-NotNull $vm2.Location ;
2208
+
2209
+ # Remove All VMs
2210
+ Get-AzureRmVM - ResourceGroupName $rgname | Remove-AzureRmVM - ResourceGroupName $rgname - Force;
2211
+ $vms = Get-AzureRmVM - ResourceGroupName $rgname ;
2212
+ Assert-AreEqual $vms $null ;
2213
+ }
2214
+ finally
2215
+ {
2216
+ # Cleanup
2217
+ Clean - ResourceGroup $rgname
2218
+ }
2219
+ }
0 commit comments