Skip to content

Commit b5d8103

Browse files
committed
Fix VM Image cmdlet
1 parent 828ede1 commit b5d8103

File tree

2 files changed

+61
-2
lines changed

2 files changed

+61
-2
lines changed

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

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,65 @@ function Test-VirtualMachineImageList
214214
{
215215
$locStr = 'EastAsia';
216216

217+
# List Tests
218+
$foundAnyImage = $false;
219+
$pubNames = Get-AzureVMImagePublisher -Location $locStr | select -ExpandProperty Resources | select -ExpandProperty Name;
220+
$maxPubCheck = 3;
221+
$numPubCheck = 1;
222+
$pubNameFilter = '*Windows*';
223+
foreach ($pub in $pubNames)
224+
{
225+
# Filter Windows Images
226+
if (-not ($pub -like $pubNameFilter)) { continue; }
227+
228+
$s2 = Get-AzureVMImageOffer -Location $locStr -PublisherName $pub;
229+
if ($s2.Resources.Count -gt 0)
230+
{
231+
# Check "$maxPubCheck" publishers at most
232+
$numPubCheck = $numPubCheck + 1;
233+
if ($numPubCheck -gt $maxPubCheck) { break; }
234+
235+
$offerNames = $s2.Resources | select -ExpandProperty Name;
236+
foreach ($offer in $offerNames)
237+
{
238+
$s3 = Get-AzureVMImageSku -Location $locStr -PublisherName $pub -Offer $offer;
239+
if ($s3.Resources.Count -gt 0)
240+
{
241+
$skus = $s3.Resources | select -ExpandProperty Name;
242+
foreach ($sku in $skus)
243+
{
244+
$s4 = Get-AzureVMImage -Location $locStr -PublisherName $pub -Offer $offer -Sku $sku;
245+
if ($s4.Resources.Count -gt 0)
246+
{
247+
$versions = $s4.Resources | select -ExpandProperty Name;
248+
249+
$s6 = Get-AzureVMImage -Location $locStr -PublisherName $pub -Offer $offer -Sku $sku -FilterExpression ('name -eq *');
250+
Assert-NotNull $s6;
251+
Assert-NotNull $s6.Resources;
252+
$verNames = $s6.Resources | select -ExpandProperty Name;
253+
254+
foreach ($ver in $versions)
255+
{
256+
$s6 = Get-AzureVMImage -Location $locStr -PublisherName $pub -Offer $offer -Sku $sku -Version $ver;
257+
Assert-NotNull $s6;
258+
Assert-NotNull $s6.VirtualMachineImage;
259+
$s6.VirtualMachineImage;
260+
261+
Assert-True { $verNames -contains $ver };
262+
Assert-True { $verNames -contains $s6.VirtualMachineImage.Name };
263+
264+
$foundAnyImage = $true;
265+
}
266+
}
267+
}
268+
}
269+
}
270+
}
271+
}
272+
273+
Assert-True { $foundAnyImage };
274+
275+
# Negative Tests
217276
# VM Images
218277
$s1 = Get-AzureVMImagePublisher -Location $locStr;
219278
Assert-NotNull $s1;

src/ResourceManager/Compute/Commands.Compute/Images/GetAzureVMImageCommand.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ public class GetAzureVMImageCommand : VirtualMachineImageBaseCmdlet
3838
[Parameter(Mandatory = true), ValidateNotNullOrEmpty]
3939
public string Skus { get; set; }
4040

41-
[Parameter, ValidateNotNullOrEmpty]
41+
[Parameter(ParameterSetName = GetVirtualMachineImageDetailsParamSet), ValidateNotNullOrEmpty]
4242
public string Version { get; set; }
4343

44-
[Parameter, ValidateNotNullOrEmpty]
44+
[Parameter(ParameterSetName = ListVirtualMachineImageParamSet), ValidateNotNullOrEmpty]
4545
public string FilterExpression { get; set; }
4646

4747
public override void ExecuteCmdlet()

0 commit comments

Comments
 (0)