@@ -272,6 +272,125 @@ function Test-VirtualMachineScaleSet-Common($IsManaged)
272
272
}
273
273
}
274
274
275
+ <#
276
+ . SYNOPSIS
277
+ Test Virtual Machine Scale Set Upgrade
278
+ #>
279
+ function Test-VirtualMachineScaleSetUpdate
280
+ {
281
+ # Setup
282
+ $rgname = Get-ComputeTestResourceName
283
+
284
+ try
285
+ {
286
+ # Common
287
+ $loc = ' westus' ;
288
+ New-AzureRMResourceGroup - Name $rgname - Location $loc - Force;
289
+
290
+ # SRP
291
+ $stoname = ' sto' + $rgname ;
292
+ $stotype = ' Standard_GRS' ;
293
+ New-AzureRMStorageAccount - ResourceGroupName $rgname - Name $stoname - Location $loc - Type $stotype ;
294
+ $stoaccount = Get-AzureRMStorageAccount - ResourceGroupName $rgname - Name $stoname ;
295
+
296
+ # NRP
297
+ $subnet = New-AzureRMVirtualNetworkSubnetConfig - Name (' subnet' + $rgname ) - AddressPrefix " 10.0.0.0/24" ;
298
+ $vnet = New-AzureRMVirtualNetwork - Force - Name (' vnet' + $rgname ) - ResourceGroupName $rgname - Location $loc - AddressPrefix " 10.0.0.0/16" - Subnet $subnet ;
299
+ $vnet = Get-AzureRMVirtualNetwork - Name (' vnet' + $rgname ) - ResourceGroupName $rgname ;
300
+ $subnetId = $vnet.Subnets [0 ].Id;
301
+
302
+ # New VMSS Parameters
303
+ $vmssName = ' vmss' + $rgname ;
304
+
305
+ $adminUsername = ' Foo12' ;
306
+ $adminPassword = $PLACEHOLDER ;
307
+
308
+ $imgRef = Get-DefaultCRPImage - loc $loc ;
309
+ $vhdContainer = " https://" + $stoname + " .blob.core.windows.net/" + $vmssName ;
310
+
311
+ $extname = ' csetest' ;
312
+ $publisher = ' Microsoft.Compute' ;
313
+ $exttype = ' BGInfo' ;
314
+ $extver = ' 2.1' ;
315
+
316
+ $ipCfg = New-AzureRmVmssIPConfig - Name ' test' - SubnetId $subnetId ;
317
+ $vmss = New-AzureRmVmssConfig - Location $loc - SkuCapacity 2 - SkuName ' Standard_A0' - UpgradePolicyMode ' Manual' `
318
+ | Add-AzureRmVmssNetworkInterfaceConfiguration - Name ' test' - Primary $true - IPConfiguration $ipCfg `
319
+ | Set-AzureRmVmssOSProfile - ComputerNamePrefix ' test' - AdminUsername $adminUsername - AdminPassword $adminPassword `
320
+ | Set-AzureRmVmssStorageProfile - Name ' test' - OsDiskCreateOption ' FromImage' - OsDiskCaching ' None' `
321
+ - ImageReferenceOffer $imgRef.Offer - ImageReferenceSku $imgRef.Skus - ImageReferenceVersion $imgRef.Version `
322
+ - ImageReferencePublisher $imgRef.PublisherName - VhdContainer $vhdContainer `
323
+ | Add-AzureRmVmssExtension - Name $extname - Publisher $publisher - Type $exttype - TypeHandlerVersion $extver - AutoUpgradeMinorVersion $true ;
324
+
325
+ $result = New-AzureRmVmss - ResourceGroupName $rgname - Name $vmssName - VirtualMachineScaleSet $vmss ;
326
+
327
+ Assert-AreEqual $loc $result.Location ;
328
+ Assert-AreEqual 2 $result.Sku.Capacity ;
329
+ Assert-AreEqual ' Standard_A0' $result.Sku.Name ;
330
+ Assert-AreEqual ' Manual' $result.UpgradePolicy.Mode ;
331
+
332
+ # Validate Network Profile
333
+ Assert-AreEqual ' test' $result.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations [0 ].Name;
334
+ Assert-AreEqual $true $result.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations [0 ].Primary;
335
+ Assert-AreEqual $subnetId `
336
+ $result.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations [0 ].IpConfigurations[0 ].Subnet.Id;
337
+
338
+ # Validate OS Profile
339
+ Assert-AreEqual ' test' $result.VirtualMachineProfile.OsProfile.ComputerNamePrefix ;
340
+ Assert-AreEqual $adminUsername $result.VirtualMachineProfile.OsProfile.AdminUsername ;
341
+ Assert-Null $result.VirtualMachineProfile.OsProfile.AdminPassword ;
342
+
343
+ # Validate Storage Profile
344
+ Assert-AreEqual ' test' $result.VirtualMachineProfile.StorageProfile.OsDisk.Name ;
345
+ Assert-AreEqual ' FromImage' $result.VirtualMachineProfile.StorageProfile.OsDisk.CreateOption ;
346
+ Assert-AreEqual ' None' $result.VirtualMachineProfile.StorageProfile.OsDisk.Caching ;
347
+ Assert-AreEqual $vhdContainer $result.VirtualMachineProfile.StorageProfile.OsDisk.VhdContainers [0 ];
348
+ Assert-AreEqual $imgRef.Offer $result.VirtualMachineProfile.StorageProfile.ImageReference.Offer ;
349
+ Assert-AreEqual $imgRef.Skus $result.VirtualMachineProfile.StorageProfile.ImageReference.Sku ;
350
+ Assert-AreEqual $imgRef.Version $result.VirtualMachineProfile.StorageProfile.ImageReference.Version ;
351
+ Assert-AreEqual $imgRef.PublisherName $result.VirtualMachineProfile.StorageProfile.ImageReference.Publisher ;
352
+
353
+ # Validate Extension Profile
354
+ Assert-AreEqual $extname $result.VirtualMachineProfile.ExtensionProfile.Extensions [0 ].Name;
355
+ Assert-AreEqual $publisher $result.VirtualMachineProfile.ExtensionProfile.Extensions [0 ].Publisher;
356
+ Assert-AreEqual $exttype $result.VirtualMachineProfile.ExtensionProfile.Extensions [0 ].Type;
357
+ Assert-AreEqual $extver $result.VirtualMachineProfile.ExtensionProfile.Extensions [0 ].TypeHandlerVersion;
358
+ Assert-AreEqual $true $result.VirtualMachineProfile.ExtensionProfile.Extensions [0 ].AutoUpgradeMinorVersion;
359
+
360
+ # Verify the result of VMSS
361
+ $vmss = Get-AzureRmVmss - ResourceGroupName $rgname - VMScaleSetName $vmssName ;
362
+ Assert-AreEqual $null $vmss.Zones ;
363
+ Assert-AreEqual 0 $vmss.Tags.Count ;
364
+ Assert-AreEqual 2 $vmss.Sku.Capacity ;
365
+
366
+ Assert-ThrowsContains {
367
+ Update-AzureRmVmss - ResourceGroupName $rgname - Name $vmssName - DisablePasswordAuthentication $true - EnableAutomaticUpdate $true ; } `
368
+ " Cannot specify both Windows and Linux configurations." ;
369
+
370
+ $tags = @ {test1 = " testval1" ; test2 = " testval2" };
371
+ Update-AzureRmVmss - ResourceGroupName $rgname - Name $vmssName - Tag $tags - SkuCapacity 3 ;
372
+
373
+ $vmss = Get-AzureRmVmss - ResourceGroupName $rgname - VMScaleSetName $vmssName ;
374
+ $returned_tags = $vmss.Tags ;
375
+ Assert-AreEqual 2 $returned_tags.Count ;
376
+ Assert-AreEqual $tags [" test1" ] $returned_tags [" test1" ];
377
+ Assert-AreEqual $tags [" test2" ] $returned_tags [" test2" ];
378
+ Assert-AreEqual 3 $vmss.Sku.Capacity ;
379
+
380
+ $vmss2 = $vmss | Update-AzureRmVmss - SkuCapacity 4 ;
381
+ $returned_tags2 = $vmss2.Tags ;
382
+ Assert-AreEqual 2 $returned_tags2.Count ;
383
+ Assert-AreEqual $tags [" test1" ] $returned_tags [" test1" ];
384
+ Assert-AreEqual $tags [" test2" ] $returned_tags [" test2" ];
385
+ Assert-AreEqual 4 $vmss2.Sku.Capacity ;
386
+ }
387
+ finally
388
+ {
389
+ # Cleanup
390
+ Clean - ResourceGroup $rgname
391
+ }
392
+ }
393
+
275
394
<#
276
395
. SYNOPSIS
277
396
Test Virtual Machine Scale Set Reimage and Upgrade
0 commit comments