@@ -18,7 +18,6 @@ Test Virtual Machine Extensions
18
18
#>
19
19
function Test-VirtualMachineExtension
20
20
{
21
- Switch-AzureMode - Name AzureResourceManager;
22
21
# Setup
23
22
$rgname = Get-ComputeTestResourceName
24
23
@@ -102,15 +101,12 @@ function Test-VirtualMachineExtension
102
101
Assert-AreEqual $p.OSProfile.AdminPassword $password ;
103
102
Assert-AreEqual $p.OSProfile.WindowsConfiguration.ProvisionVMAgent $true ;
104
103
105
- # TODO : The test is outdated, need re-recording and re-enabling these fields for validation
106
- #
107
- # Assert-AreEqual $p.StorageProfile.ImageReference.Offer $imgRef.Offer;
108
- # Assert-AreEqual $p.StorageProfile.ImageReference.Publisher $imgRef.PublisherName;
109
- # Assert-AreEqual $p.StorageProfile.ImageReference.Sku $imgRef.Skus;
110
- # Assert-AreEqual $p.StorageProfile.ImageReference.Version $imgRef.Version;
104
+ Assert-AreEqual $p.StorageProfile.ImageReference.Offer $imgRef.Offer ;
105
+ Assert-AreEqual $p.StorageProfile.ImageReference.Publisher $imgRef.PublisherName ;
106
+ Assert-AreEqual $p.StorageProfile.ImageReference.Sku $imgRef.Skus ;
107
+ Assert-AreEqual $p.StorageProfile.ImageReference.Version $imgRef.Version ;
111
108
112
109
# Virtual Machine
113
- # TODO: Still need to do retry for New-AzureVM for SA, even it's returned in Get-.
114
110
New-AzureVM - ResourceGroupName $rgname - Location $loc - Name $vmname - VM $p ;
115
111
116
112
# Virtual Machine Extension
@@ -144,8 +140,122 @@ function Test-VirtualMachineExtension
144
140
Assert-NotNull $ext.ProvisioningState ;
145
141
Assert-NotNull $ext.Statuses ;
146
142
143
+ # Remove Extension
144
+ Remove-AzureVMExtension - ResourceGroupName $rgname - VMName $vmname - Name $extname - Force;
145
+ }
146
+ finally
147
+ {
148
+ # Cleanup
149
+ Clean - ResourceGroup $rgname
150
+ }
151
+ }
152
+
153
+
154
+ <#
155
+ . SYNOPSIS
156
+ Test Virtual Machine Extensions
157
+ #>
158
+ function Test-VirtualMachineExtensionUsingHashTable
159
+ {
160
+ # Setup
161
+ $rgname = Get-ComputeTestResourceName
162
+
163
+ try
164
+ {
165
+ # Common
166
+ $loc = ' westus' ;
167
+ New-AzureResourceGroup - Name $rgname - Location $loc - Force;
168
+
169
+ # VM Profile & Hardware
170
+ $vmsize = ' Standard_A2' ;
171
+ $vmname = ' vm' + $rgname ;
172
+ $p = New-AzureVMConfig - VMName $vmname - VMSize $vmsize ;
173
+ Assert-AreEqual $p.HardwareProfile.VirtualMachineSize $vmsize ;
174
+
175
+ # NRP
176
+ $subnet = New-AzureVirtualNetworkSubnetConfig - Name (' subnet' + $rgname ) - AddressPrefix " 10.0.0.0/24" ;
177
+ $vnet = New-AzureVirtualNetwork - Force - Name (' vnet' + $rgname ) - ResourceGroupName $rgname - Location $loc - AddressPrefix " 10.0.0.0/16" - DnsServer " 10.1.1.1" - Subnet $subnet ;
178
+ $vnet = Get-AzureVirtualNetwork - Name (' vnet' + $rgname ) - ResourceGroupName $rgname ;
179
+ $subnetId = $vnet.Subnets [0 ].Id;
180
+ $pubip = New-AzurePublicIpAddress - Force - Name (' pubip' + $rgname ) - ResourceGroupName $rgname - Location $loc - AllocationMethod Dynamic - DomainNameLabel (' pubip' + $rgname );
181
+ $pubip = Get-AzurePublicIpAddress - Name (' pubip' + $rgname ) - ResourceGroupName $rgname ;
182
+ $pubipId = $pubip.Id ;
183
+ $nic = New-AzureNetworkInterface - Force - Name (' nic' + $rgname ) - ResourceGroupName $rgname - Location $loc - SubnetId $subnetId - PublicIpAddressId $pubip.Id ;
184
+ $nic = Get-AzureNetworkInterface - Name (' nic' + $rgname ) - ResourceGroupName $rgname ;
185
+ $nicId = $nic.Id ;
186
+
187
+ $p = Add-AzureVMNetworkInterface - VM $p - Id $nicId ;
188
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1 ;
189
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].ReferenceUri $nicId ;
190
+
191
+ # Storage Account (SA)
192
+ $stoname = ' sto' + $rgname ;
193
+ $stotype = ' Standard_GRS' ;
194
+ New-AzureStorageAccount - ResourceGroupName $rgname - Name $stoname - Location $loc - Type $stotype ;
195
+ Retry- IfException { $global :stoaccount = Get-AzureStorageAccount - ResourceGroupName $rgname - Name $stoname ; }
196
+ $stokey = (Get-AzureStorageAccountKey - ResourceGroupName $rgname - Name $stoname ).Key1;
197
+
198
+ $osDiskName = ' osDisk' ;
199
+ $osDiskCaching = ' ReadWrite' ;
200
+ $osDiskVhdUri = " https://$stoname .blob.core.windows.net/test/os.vhd" ;
201
+ $dataDiskVhdUri1 = " https://$stoname .blob.core.windows.net/test/data1.vhd" ;
202
+ $dataDiskVhdUri2 = " https://$stoname .blob.core.windows.net/test/data2.vhd" ;
203
+ $dataDiskVhdUri3 = " https://$stoname .blob.core.windows.net/test/data3.vhd" ;
204
+
205
+ $p = Set-AzureVMOSDisk - VM $p - Name $osDiskName - VhdUri $osDiskVhdUri - Caching $osDiskCaching - CreateOption FromImage;
206
+
207
+ $p = Add-AzureVMDataDisk - VM $p - Name ' testDataDisk1' - Caching ' ReadOnly' - DiskSizeInGB 10 - Lun 1 - VhdUri $dataDiskVhdUri1 - CreateOption Empty;
208
+ $p = Add-AzureVMDataDisk - VM $p - Name ' testDataDisk2' - Caching ' ReadOnly' - DiskSizeInGB 11 - Lun 2 - VhdUri $dataDiskVhdUri2 - CreateOption Empty;
209
+ $p = Add-AzureVMDataDisk - VM $p - Name ' testDataDisk3' - Caching ' ReadOnly' - DiskSizeInGB 12 - Lun 3 - VhdUri $dataDiskVhdUri3 - CreateOption Empty;
210
+ $p = Remove-AzureVMDataDisk - VM $p - Name ' testDataDisk3' ;
211
+
212
+ Assert-AreEqual $p.StorageProfile.OSDisk.Caching $osDiskCaching ;
213
+ Assert-AreEqual $p.StorageProfile.OSDisk.Name $osDiskName ;
214
+ Assert-AreEqual $p.StorageProfile.OSDisk.VirtualHardDisk.Uri $osDiskVhdUri ;
215
+ Assert-AreEqual $p.StorageProfile.DataDisks.Count 2 ;
216
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Caching ' ReadOnly' ;
217
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].DiskSizeGB 10 ;
218
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Lun 1 ;
219
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].VirtualHardDisk.Uri $dataDiskVhdUri1 ;
220
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Caching ' ReadOnly' ;
221
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].DiskSizeGB 11 ;
222
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].Lun 2 ;
223
+ Assert-AreEqual $p.StorageProfile.DataDisks [1 ].VirtualHardDisk.Uri $dataDiskVhdUri2 ;
224
+
225
+ # OS & Image
226
+ $user = " Foo12" ;
227
+ $password = ' BaR@123' + $rgname ;
228
+ $securePassword = ConvertTo-SecureString $password - AsPlainText - Force;
229
+ $cred = New-Object System.Management.Automation.PSCredential ($user , $securePassword );
230
+ $computerName = ' test' ;
231
+ $vhdContainer = " https://$stoname .blob.core.windows.net/test" ;
232
+
233
+ $p = Set-AzureVMOperatingSystem - VM $p - Windows - ComputerName $computerName - Credential $cred - ProvisionVMAgent;
234
+
235
+ $imgRef = Get-DefaultCRPWindowsImageOffline ;
236
+ $p = ($imgRef | Set-AzureVMSourceImage - VM $p );
237
+
238
+ Assert-AreEqual $p.OSProfile.AdminUsername $user ;
239
+ Assert-AreEqual $p.OSProfile.ComputerName $computerName ;
240
+ Assert-AreEqual $p.OSProfile.AdminPassword $password ;
241
+ Assert-AreEqual $p.OSProfile.WindowsConfiguration.ProvisionVMAgent $true ;
242
+
243
+ Assert-AreEqual $p.StorageProfile.ImageReference.Offer $imgRef.Offer ;
244
+ Assert-AreEqual $p.StorageProfile.ImageReference.Publisher $imgRef.PublisherName ;
245
+ Assert-AreEqual $p.StorageProfile.ImageReference.Sku $imgRef.Skus ;
246
+ Assert-AreEqual $p.StorageProfile.ImageReference.Version $imgRef.Version ;
247
+
248
+ # Virtual Machine Create
249
+ New-AzureVM - ResourceGroupName $rgname - Location $loc - Name $vmname - VM $p ;
250
+
251
+ # Virtual Machine Extension
252
+ $extname = $rgname + ' ext' ;
253
+ $publisher = ' Microsoft.Compute' ;
254
+ $exttype = ' CustomScriptExtension' ;
255
+ $extver = ' 1.1' ;
256
+
147
257
# Set extension settings by hash table
148
- $settings = @ {" fileUris" = " [] " ; " commandToExecute" = " " };
258
+ $settings = @ {" fileUris" = " " ; " commandToExecute" = " " };
149
259
$protectedsettings = @ {" storageAccountName" = $stoname ; " storageAccountKey" = $stokey };
150
260
Set-AzureVMExtension - ResourceGroupName $rgname - Location $loc - VMName $vmname - Name $extname - Publisher $publisher - ExtensionType $exttype - TypeHandlerVersion $extver - Settings $settings - ProtectedSettings $protectedsettings ;
151
261
@@ -175,12 +285,10 @@ function Test-VirtualMachineExtension
175
285
Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces.Count 1 ;
176
286
Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces [0 ].ReferenceUri $nicId ;
177
287
178
- # TODO : The test is outdated, need re-recording and re-enabling these fields for validation
179
- #
180
- # Assert-AreEqual $vm1.StorageProfile.ImageReference.Offer $imgRef.Offer;
181
- # Assert-AreEqual $vm1.StorageProfile.ImageReference.Publisher $imgRef.PublisherName;
182
- # Assert-AreEqual $vm1.StorageProfile.ImageReference.Sku $imgRef.Skus;
183
- # Assert-AreEqual $vm1.StorageProfile.ImageReference.Version $imgRef.Version;
288
+ Assert-AreEqual $vm1.StorageProfile.ImageReference.Offer $imgRef.Offer ;
289
+ Assert-AreEqual $vm1.StorageProfile.ImageReference.Publisher $imgRef.PublisherName ;
290
+ Assert-AreEqual $vm1.StorageProfile.ImageReference.Sku $imgRef.Skus ;
291
+ Assert-AreEqual $vm1.StorageProfile.ImageReference.Version $imgRef.Version ;
184
292
185
293
Assert-AreEqual $vm1.OSProfile.AdminUsername $user ;
186
294
Assert-AreEqual $vm1.OSProfile.ComputerName $computerName ;
@@ -195,7 +303,8 @@ function Test-VirtualMachineExtension
195
303
Assert-AreEqual $vm1.Extensions [0 ].TypeHandlerVersion $extver ;
196
304
Assert-NotNull $vm1.Extensions [0 ].Settings;
197
305
198
- # *** TODO: The removal call did not return. 12/12/2014
306
+ # Remove Extension
307
+ Remove-AzureVMExtension - ResourceGroupName $rgname - VMName $vmname - Name $extname - Force;
199
308
}
200
309
finally
201
310
{
@@ -302,7 +411,7 @@ function Test-VirtualMachineCustomScriptExtension
302
411
New-AzureVM - ResourceGroupName $rgname - Location $loc - Name $vmname - VM $p ;
303
412
304
413
# Virtual Machine Extension
305
- $extname = ' csetest ' ;
414
+ $extname = $rgname + ' ext ' ;
306
415
$extver = ' 1.1' ;
307
416
$publisher = ' Microsoft.Compute' ;
308
417
$exttype = ' CustomScriptExtension' ;
0 commit comments