Skip to content

Commit 090403a

Browse files
author
Maddie Clayton
authored
Merge pull request #7754 from praries880/6499_UltraSSD_SIG_Compute
Add support for ultrassd and SIG to simple param sets for New-AzVm(ss) cmdlets
2 parents a9d0f28 + 511d57b commit 090403a

File tree

19 files changed

+16006
-3805
lines changed

19 files changed

+16006
-3805
lines changed

src/ResourceManager/Compute/Commands.Compute.Test/Commands.Compute.Test.csproj

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,15 @@
254254
<None Include="ScenarioTests\StrategiesVirtualMachineTests.ps1">
255255
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
256256
</None>
257-
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.StrategiesVirtualMachineTests\TestSimpleNewVm.json" />
257+
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.StrategiesVirtualMachineTests\TestSimpleNewVm.json" >
258+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
259+
</None>
260+
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.StrategiesVirtualMachineTests\TestSimpleNewVmFromSIGImage.json" >
261+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
262+
</None>
263+
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.StrategiesVirtualMachineTests\TestSimpleNewVmWithUltraSSD.json" >
264+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
265+
</None>
258266
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.StrategiesVirtualMachineTests\TestSimpleNewVmWithSystemAssignedAndUserAssignedIdentity.json">
259267
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
260268
</None>
@@ -264,7 +272,15 @@
264272
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.StrategiesVirtualMachineTests\TestSimpleNewVmWithUserAssignedIdentity.json">
265273
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
266274
</None>
267-
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.StrategiesVmssTests\TestSimpleNewVmss.json" />
275+
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.StrategiesVmssTests\TestSimpleNewVmss.json">
276+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
277+
</None>
278+
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.StrategiesVmssTests\TestSimpleNewVmssFromSIGImage.json">
279+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
280+
</None>
281+
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.StrategiesVmssTests\TestSimpleNewVmssWithUltraSSD.json">
282+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
283+
</None>
268284
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.StrategiesVmssTests\TestSimpleNewVmssWithSystemAssignedIdentity.json">
269285
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
270286
</None>

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,20 @@ public void TestSimpleNewVm()
4040
ComputeTestController.NewInstance.RunPsTest(_logger, "Test-SimpleNewVm");
4141
}
4242

43+
[Fact]
44+
[Trait(Category.AcceptanceType, Category.CheckIn)]
45+
public void TestSimpleNewVmFromSIGImage()
46+
{
47+
ComputeTestController.NewInstance.RunPsTest(_logger, "Test-SimpleNewVmFromSIGImage");
48+
}
49+
50+
[Fact]
51+
[Trait(Category.AcceptanceType, Category.CheckIn)]
52+
public void TestSimpleNewVmWithUltraSSD()
53+
{
54+
ComputeTestController.NewInstance.RunPsTest(_logger, "Test-SimpleNewVmWithUltraSSD");
55+
}
56+
4357
[Fact]
4458
[Trait(Category.AcceptanceType, Category.CheckIn)]
4559
public void TestSimpleNewVmWithAccelNet()

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

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,83 @@ function Test-SimpleNewVm
3333

3434
Assert-AreEqual $vmname $x.Name;
3535
Assert-Null $x.Identity
36+
Assert-False { $x.AdditionalCapabilities.UltraSSDEnabled };
37+
38+
$nic = Get-AzureRmNetworkInterface -ResourceGroupName $vmname -Name $vmname
39+
Assert-NotNull $nic
40+
Assert-False { $nic.EnableAcceleratedNetworking }
41+
}
42+
finally
43+
{
44+
# Cleanup
45+
Clean-ResourceGroup $vmname
46+
}
47+
}
48+
49+
<#
50+
.SYNOPSIS
51+
Test Simple Paremeter Set for New Vm
52+
#>
53+
function Test-SimpleNewVmFromSIGImage
54+
{
55+
#This test needs to be run form the following subscription in record mode :
56+
# 9e223dbe-3399-4e19-88eb-0975f02ac87f
57+
#The vm needs to be created in the one of the following regions :
58+
# "South Central US", "East US 2" and "Central US"
59+
#To see more information on the steps to create a new SIG image go here: https://aka.ms/AA37jbt
60+
# Setup
61+
$vmname = Get-ResourceName
62+
63+
try
64+
{
65+
$username = "admin01"
66+
$password = Get-PasswordForVM | ConvertTo-SecureString -AsPlainText -Force
67+
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $password
68+
[string]$domainNameLabel = "$vmname-$vmname".tolower();
69+
70+
# Common
71+
$x = New-AzureRmVM -Name $vmname -Credential $cred -DomainNameLabel $domainNameLabel -Location "East US 2" -Size "Standard_D2s_v3" -Image "/subscriptions/9e223dbe-3399-4e19-88eb-0975f02ac87f/resourceGroups/SIGTestGroupoDoNotDelete/providers/Microsoft.Compute/galleries/SIGTestGalleryDoNotDelete/images/SIGTestImageWindowsDoNotDelete"
72+
73+
Assert-AreEqual $vmname $x.Name;
74+
Assert-Null $x.Identity
75+
Assert-False { $x.AdditionalCapabilities.UltraSSDEnabled };
76+
77+
$nic = Get-AzureRmNetworkInterface -ResourceGroupName $vmname -Name $vmname
78+
Assert-NotNull $nic
79+
Assert-False { $nic.EnableAcceleratedNetworking }
80+
}
81+
finally
82+
{
83+
# Cleanup
84+
Clean-ResourceGroup $vmname
85+
}
86+
}
87+
88+
<#
89+
.SYNOPSIS
90+
Test Simple Paremeter Set for New Vm with ultraSSD
91+
#>
92+
function Test-SimpleNewVmWithUltraSSD
93+
{
94+
# Setup
95+
$vmname = Get-ResourceName
96+
97+
try
98+
{
99+
$username = "admin01"
100+
$password = Get-PasswordForVM | ConvertTo-SecureString -AsPlainText -Force
101+
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $password
102+
[string]$domainNameLabel = "$vmname-$vmname".tolower();
103+
104+
# Common
105+
#As of now the ultrasd feature is only supported in east us 2 and in the size Standard_D2s_v3, on the features GA the restriction will be lifted
106+
#Use the follwing command to figure out the one to use
107+
#Get-AzureRmComputeResourceSku | where {$_.ResourceType -eq "disks" -and $_.Name -eq "UltraSSD_LRS" }
108+
$x = New-AzureRmVM -Name $vmname -Credential $cred -DomainNameLabel $domainNameLabel -Location "east US 2" -EnableUltraSSD -Zone 3 -Size "Standard_D2s_v3"
109+
110+
Assert-AreEqual $vmname $x.Name;
111+
Assert-Null $x.Identity
112+
Assert-True { $x.AdditionalCapabilities.UltraSSDEnabled };
36113

37114
$nic = Get-AzureRmNetworkInterface -ResourceGroupName $vmname -Name $vmname
38115
Assert-NotNull $nic

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,20 @@ public void TestSimpleNewVmss()
4040
ComputeTestController.NewInstance.RunPsTest(_logger, "Test-SimpleNewVmss");
4141
}
4242

43+
[Fact]
44+
[Trait(Category.AcceptanceType, Category.CheckIn)]
45+
public void TestSimpleNewVmssFromSIGImage()
46+
{
47+
ComputeTestController.NewInstance.RunPsTest(_logger, "Test-SimpleNewVmssFromSIGImage");
48+
}
49+
50+
[Fact]
51+
[Trait(Category.AcceptanceType, Category.CheckIn)]
52+
public void TestSimpleNewVmssWithUltraSSD()
53+
{
54+
ComputeTestController.NewInstance.RunPsTest(_logger, "Test-SimpleNewVmssWithUltraSSD");
55+
}
56+
4357
[Fact]
4458
[Trait(Category.AcceptanceType, Category.CheckIn)]
4559
public void TestSimpleNewVmssLbErrorScenario()

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

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ function Test-SimpleNewVmss
3636
Assert-AreEqual $vmssname $x.ResourceGroupName;
3737
Assert-AreEqual $vmssname $x.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].Name;
3838
Assert-AreEqual $vmssname $x.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].IpConfigurations[0].Name;
39+
Assert-False { $x.VirtualMachineProfile.AdditionalCapabilities.UltraSSDEnabled };
3940
Assert-AreEqual "Standard_DS1_v2" $x.Sku.Name
4041
Assert-AreEqual $username $x.VirtualMachineProfile.OsProfile.AdminUsername
4142
Assert-AreEqual "2016-Datacenter" $x.VirtualMachineProfile.StorageProfile.ImageReference.Sku
@@ -55,6 +56,103 @@ function Test-SimpleNewVmss
5556
}
5657
}
5758

59+
<#
60+
.SYNOPSIS
61+
Test Simple Paremeter Set for New Vm
62+
#>
63+
function Test-SimpleNewVmssFromSIGImage
64+
{
65+
#This test needs to be run form the following subscription in record mode :
66+
# 9e223dbe-3399-4e19-88eb-0975f02ac87f
67+
#The vm needs to be created in the one of the following regions :
68+
# "South Central US", "East US 2" and "Central US"
69+
#To see more information on the steps to create a new SIG image go here: https://aka.ms/AA37jbt
70+
# Setup
71+
$vmssname = Get-ResourceName
72+
73+
try
74+
{
75+
$lbName = $vmssname + "LoadBalancer"
76+
$username = "admin01"
77+
$password = Get-PasswordForVM | ConvertTo-SecureString -AsPlainText -Force
78+
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $password
79+
[string]$domainNameLabel = "$vmssname$vmssname".tolower();
80+
81+
# Common
82+
$x = New-AzureRmVmss -Name $vmssname -Credential $cred -DomainNameLabel $domainNameLabel -LoadBalancerName $lbName -Location "East US 2" -VmSize "Standard_D2s_v3" -ImageName "/subscriptions/9e223dbe-3399-4e19-88eb-0975f02ac87f/resourceGroups/SIGTestGroupoDoNotDelete/providers/Microsoft.Compute/galleries/SIGTestGalleryDoNotDelete/images/SIGTestImageWindowsDoNotDelete"
83+
84+
Assert-AreEqual $vmssname $x.Name;
85+
Assert-AreEqual $vmssname $x.ResourceGroupName;
86+
Assert-AreEqual $vmssname $x.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].Name;
87+
Assert-AreEqual $vmssname $x.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].IpConfigurations[0].Name;
88+
Assert-False { $x.VirtualMachineProfile.AdditionalCapabilities.UltraSSDEnabled };
89+
Assert-AreEqual "Standard_D2s_v3" $x.Sku.Name
90+
Assert-AreEqual $username $x.VirtualMachineProfile.OsProfile.AdminUsername
91+
Assert-AreEqual "/subscriptions/9e223dbe-3399-4e19-88eb-0975f02ac87f/resourceGroups/SIGTestGroupoDoNotDelete/providers/Microsoft.Compute/galleries/SIGTestGalleryDoNotDelete/images/SIGTestImageWindowsDoNotDelete" $x.VirtualMachineProfile.StorageProfile.ImageReference.Id
92+
Assert-Null $x.VirtualMachineProfile.StorageProfile.ImageReference.Sku
93+
Assert-NotNull $x.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].IpConfigurations[0].LoadBalancerBackendAddressPools;
94+
Assert-NotNull $x.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].IpConfigurations[0].Subnet
95+
Assert-False { $x.SinglePlacementGroup }
96+
Assert-Null $x.Identity
97+
98+
$lb = Get-AzureRmLoadBalancer -Name $lbName -ResourceGroupName $vmssname
99+
Assert-NotNull $lb
100+
Assert-AreEqual $lbName $lb.Name
101+
}
102+
finally
103+
{
104+
# Cleanup
105+
Clean-ResourceGroup $vmssname
106+
}
107+
}
108+
109+
<#
110+
.SYNOPSIS
111+
Test Simple Paremeter Set for New Vm
112+
#>
113+
function Test-SimpleNewVmssWithUltraSSD
114+
{
115+
# Setup
116+
$vmssname = Get-ResourceName
117+
118+
try
119+
{
120+
$lbName = $vmssname + "LoadBalancer"
121+
$username = "admin01"
122+
$password = Get-PasswordForVM | ConvertTo-SecureString -AsPlainText -Force
123+
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $password
124+
[string]$domainNameLabel = "$vmssname$vmssname".tolower();
125+
126+
# Common
127+
#As of now the ultrasd feature is only supported in east us 2 and in the size Standard_D2s_v3, on the features GA the restriction will be lifted
128+
#Use the follwing command to figure out the one to use
129+
#Get-AzureRmComputeResourceSku | where {$_.ResourceType -eq "disks" -and $_.Name -eq "UltraSSD_LRS" }
130+
$x = New-AzureRmVmss -Name $vmssname -Credential $cred -DomainNameLabel $domainNameLabel -LoadBalancerName $lbName -Location "east us 2" -EnableUltraSSD -Zone 3 -VmSize "Standard_D2s_v3"
131+
132+
Assert-AreEqual $vmssname $x.Name;
133+
Assert-AreEqual $vmssname $x.ResourceGroupName;
134+
Assert-AreEqual $vmssname $x.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].Name;
135+
Assert-AreEqual $vmssname $x.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].IpConfigurations[0].Name;
136+
Assert-True { $x.VirtualMachineProfile.AdditionalCapabilities.UltraSSDEnabled };
137+
Assert-AreEqual "Standard_D2s_v3" $x.Sku.Name
138+
Assert-AreEqual $username $x.VirtualMachineProfile.OsProfile.AdminUsername
139+
Assert-AreEqual "2016-Datacenter" $x.VirtualMachineProfile.StorageProfile.ImageReference.Sku
140+
Assert-NotNull $x.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].IpConfigurations[0].LoadBalancerBackendAddressPools;
141+
Assert-NotNull $x.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].IpConfigurations[0].Subnet
142+
Assert-False { $x.SinglePlacementGroup }
143+
Assert-Null $x.Identity
144+
145+
$lb = Get-AzureRmLoadBalancer -Name $lbName -ResourceGroupName $vmssname
146+
Assert-NotNull $lb
147+
Assert-AreEqual $lbName $lb.Name
148+
}
149+
finally
150+
{
151+
# Cleanup
152+
Clean-ResourceGroup $vmssname
153+
}
154+
}
155+
58156
<#
59157
.SYNOPSIS
60158
Test Simple Paremeter Set for New Vm failure when custom load balancer exists

0 commit comments

Comments
 (0)