Skip to content

Commit 9096af2

Browse files
authored
Merge pull request #4912 from hyonholee/preview
[Compute] Update-AzureRmVmss update for patch operation
2 parents 6451aa7 + 7e10da0 commit 9096af2

File tree

48 files changed

+13736
-59
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+13736
-59
lines changed

src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineScaleSetTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,14 @@ public void TestVirtualMachineScaleSet_ManagedDisks()
3737
{
3838
ComputeTestController.NewInstance.RunPsTest("Test-VirtualMachineScaleSet-ManagedDisks");
3939
}
40+
41+
[Fact]
42+
[Trait(Category.AcceptanceType, Category.CheckIn)]
43+
public void TestVirtualMachineScaleSetUpdate()
44+
{
45+
ComputeTestController.NewInstance.RunPsTest("Test-VirtualMachineScaleSetUpdate");
46+
}
47+
4048
[Fact]
4149
[Trait(Category.AcceptanceType, Category.CheckIn)]
4250
public void TestVirtualMachineScaleSetReimageUpdate()

src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineScaleSetTests.ps1

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,125 @@ function Test-VirtualMachineScaleSet-Common($IsManaged)
272272
}
273273
}
274274

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+
275394
<#
276395
.SYNOPSIS
277396
Test Virtual Machine Scale Set Reimage and Upgrade

0 commit comments

Comments
 (0)