@@ -1465,3 +1465,128 @@ function Test-VirtualMachineScaleSetWriteAcceleratorUpdate
1465
1465
Clean - ResourceGroup $rgname
1466
1466
}
1467
1467
}
1468
+
1469
+ <#
1470
+ . SYNOPSIS
1471
+ Test Virtual Machine Scale Set Force Service Fabric UD Walk
1472
+ #>
1473
+ function Test-VirtualMachineScaleSetForceUDWalk
1474
+ {
1475
+ # Setup
1476
+ $rgname = " vmsssfudtest"
1477
+
1478
+ try
1479
+ {
1480
+ # Common
1481
+ $loc = ' CentralUS' ;
1482
+ $adminUsername = ' Foo12' ;
1483
+ $adminPassword = $PLACEHOLDER ;
1484
+ New-AzureRMResourceGroup - Name $rgname - Location $loc - Force;
1485
+ $testMode = Get-ComputeTestMode ;
1486
+
1487
+ if ($testMode -eq [Microsoft.Azure.Test.HttpRecorder.HttpRecorderMode ]::Playback)
1488
+ {
1489
+ $sf_endpoint = " https://${loc} .servicefabric.azure.com/runtime/clusters/828bd729-f938-41de-8fba-24139669e2d2" ;
1490
+ $sf_nodename = " nt1vm" ;
1491
+ $sf_durability = " Bronze" ;
1492
+ }
1493
+ else
1494
+ {
1495
+ # ##
1496
+ # ## For record test, first run the following commands.
1497
+ # ##
1498
+ $password = ConvertTo-SecureString $adminPassword - AsPlainText - Force;
1499
+ New-AzureRmServiceFabricCluster - ResourceGroupName $rgname - Location $loc - VmPassword $password ;
1500
+ $sf_cluster = Get-AzureRmServiceFabricCluster - ResourceGroupName $rgname - Name $rgname ;
1501
+ $sf_endpoint = $sf_cluster.ClusterEndpoint ;
1502
+ $sf_nodename = $sf_cluster.NodeTypes [0 ].Name;
1503
+ $sf_durability = $sf_cluster.NodeTypes [0 ].DurabilityLevel;
1504
+ }
1505
+
1506
+ # NRP
1507
+ $subnet = New-AzureRMVirtualNetworkSubnetConfig - Name (' subnet' + $rgname ) - AddressPrefix " 10.0.0.0/24" ;
1508
+ $vnet = New-AzureRMVirtualNetwork - Force - Name (' vnet' + $rgname ) - ResourceGroupName $rgname - Location $loc - AddressPrefix " 10.0.0.0/16" - Subnet $subnet ;
1509
+ $vnet = Get-AzureRMVirtualNetwork - Name (' vnet' + $rgname ) - ResourceGroupName $rgname ;
1510
+ $subnetId = $vnet.Subnets [0 ].Id;
1511
+
1512
+ # New VMSS Parameters
1513
+ $vmssName = ' vmss' + $rgname ;
1514
+ $imgRef = Get-DefaultCRPImage - loc $loc ;
1515
+
1516
+ $extname = ' udwalktest' ;
1517
+ $publisher = ' Microsoft.Azure.ServiceFabric' ;
1518
+ $exttype = ' ServiceFabricNode' ;
1519
+ $extver = ' 1.0' ;
1520
+ $settings = @ {" clusterEndpoint" = ${sf_endpoint} ;" nodeTypeRef" = ${sf_nodename} ;" durabilityLevel" = ${sf_durability} ;" enableParallelJobs" = " true" ;" dataPath" = " D:\\\\SvcFab" };
1521
+
1522
+ $ipCfg = New-AzureRmVmssIPConfig - Name ' test' - SubnetId $subnetId ;
1523
+ $vmss = New-AzureRmVmssConfig - Location $loc - SkuCapacity 2 - SkuName ' Standard_A0' - UpgradePolicyMode ' Automatic' `
1524
+ | Add-AzureRmVmssNetworkInterfaceConfiguration - Name ' test' - Primary $true - IPConfiguration $ipCfg `
1525
+ | Set-AzureRmVmssOSProfile - ComputerNamePrefix ' test' - AdminUsername $adminUsername - AdminPassword $adminPassword `
1526
+ | Set-AzureRmVmssStorageProfile - OsDiskCreateOption ' FromImage' - OsDiskCaching ' None' `
1527
+ - ImageReferenceOffer $imgRef.Offer - ImageReferenceSku $imgRef.Skus - ImageReferenceVersion $imgRef.Version `
1528
+ - ImageReferencePublisher $imgRef.PublisherName `
1529
+ | Add-AzureRmVmssExtension - Name $extname - Publisher $publisher - Type $exttype - TypeHandlerVersion $extver - Setting $settings - AutoUpgradeMinorVersion $true ;
1530
+
1531
+ $result = New-AzureRmVmss - ResourceGroupName $rgname - Name $vmssName - VirtualMachineScaleSet $vmss ;
1532
+
1533
+ Assert-AreEqual $LOC $RESULT.LOCATION ;
1534
+ Assert-AreEqual 2 $RESULT.SKU.CAPACITY ;
1535
+ Assert-AreEqual ' STANDARD_A0' $RESULT.SKU.NAME ;
1536
+ Assert-AreEqual ' Automatic' $result.UpgradePolicy.Mode ;
1537
+
1538
+ # Validate Network Profile
1539
+ Assert-AreEqual ' test' $result.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations [0 ].Name;
1540
+ Assert-AreEqual $true $result.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations [0 ].Primary;
1541
+ Assert-AreEqual $subnetId `
1542
+ $result.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations [0 ].IpConfigurations[0 ].Subnet.Id;
1543
+
1544
+ # Validate OS Profile
1545
+ Assert-AreEqual ' test' $result.VirtualMachineProfile.OsProfile.ComputerNamePrefix ;
1546
+ Assert-AreEqual $adminUsername $result.VirtualMachineProfile.OsProfile.AdminUsername ;
1547
+ Assert-Null $result.VirtualMachineProfile.OsProfile.AdminPassword ;
1548
+
1549
+ # Validate Storage Profile
1550
+ Assert-AreEqual $imgRef.Offer $result.VirtualMachineProfile.StorageProfile.ImageReference.Offer ;
1551
+ Assert-AreEqual $imgRef.Skus $result.VirtualMachineProfile.StorageProfile.ImageReference.Sku ;
1552
+ Assert-AreEqual $imgRef.Version $result.VirtualMachineProfile.StorageProfile.ImageReference.Version ;
1553
+ Assert-AreEqual $imgRef.PublisherName $result.VirtualMachineProfile.StorageProfile.ImageReference.Publisher ;
1554
+
1555
+ # Validate Extension Profile
1556
+ Assert-AreEqual $extname $result.VirtualMachineProfile.ExtensionProfile.Extensions [0 ].Name;
1557
+ Assert-AreEqual $publisher $result.VirtualMachineProfile.ExtensionProfile.Extensions [0 ].Publisher;
1558
+ Assert-AreEqual $exttype $result.VirtualMachineProfile.ExtensionProfile.Extensions [0 ].Type;
1559
+ Assert-AreEqual $extver $result.VirtualMachineProfile.ExtensionProfile.Extensions [0 ].TypeHandlerVersion;
1560
+ Assert-AreEqual $true $result.VirtualMachineProfile.ExtensionProfile.Extensions [0 ].AutoUpgradeMinorVersion;
1561
+
1562
+ # Verify the result of VMSS
1563
+ $vmss = Get-AzureRmVmss - ResourceGroupName $rgname - VMScaleSetName $vmssName ;
1564
+ Assert-AreEqual $null $vmss.Zones ;
1565
+ Assert-AreEqual 0 $vmss.Tags.Count ;
1566
+ Assert-AreEqual 2 $vmss.Sku.Capacity ;
1567
+ Assert-AreEqual $false $vmss.VirtualMachineProfile.StorageProfile.OsDisk.WriteAcceleratorEnabled ;
1568
+
1569
+ $vmss = Get-AzureRmVmss - ResourceGroupName $rgname - Name $vmssName ;
1570
+ $job = Update-AzureRmVmss - ResourceGroupName $rgname - Name $vmssName - VirtualMachineScaleSet $vmss - SkuName ' Standard_A1' - AsJob;
1571
+
1572
+ Wait-Seconds 300 ;
1573
+ $vmss_view = Get-AzureRmVmss - ResourceGroupName $rgname - Name $vmssName - InstanceView;
1574
+ $output = $vmss_view | Out-String
1575
+
1576
+ $result = Repair-AzureRmVmssServiceFabricUpdateDomain - ResourceGroupName $rgname - VMScaleSetName $vmssName - PlatformUpdateDomain 0 ;
1577
+ Assert-True {$result.WalkPerformed };
1578
+ Assert-AreEqual 1 $result.NextPlatformUpdateDomain ;
1579
+
1580
+ $result = $vmss | Repair-AzureRmVmssServiceFabricUD - PlatformUpdateDomain 1 ;
1581
+ Assert-True {$result.WalkPerformed };
1582
+ Assert-AreEqual 2 $result.NextPlatformUpdateDomain ;
1583
+
1584
+ $result = Repair-AzureRmVmssServiceFabricUD - ResourceId $vmss.Id - PlatformUpdateDomain 2 ;
1585
+ Assert-True {$result.WalkPerformed };
1586
+ }
1587
+ finally
1588
+ {
1589
+ # Cleanup
1590
+ Clean - ResourceGroup $rgname
1591
+ }
1592
+ }
0 commit comments