Skip to content

Commit 66e9af7

Browse files
committed
update image cmdlets
1 parent 8c913fd commit 66e9af7

16 files changed

+3108
-618
lines changed

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

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ function Test-VirtualMachineImageList
213213

214214
# List Tests
215215
$foundAnyImage = $false;
216-
$pubNames = Get-AzureVMImagePublisher -Location $locStr | select -ExpandProperty Resources | select -ExpandProperty Name;
216+
$pubNames = Get-AzureVMImagePublisher -Location $locStr | select -ExpandProperty PublisherName;
217217
$maxPubCheck = 3;
218218
$numPubCheck = 1;
219219
$pubNameFilter = '*Windows*';
@@ -223,43 +223,42 @@ function Test-VirtualMachineImageList
223223
if (-not ($pub -like $pubNameFilter)) { continue; }
224224

225225
$s2 = Get-AzureVMImageOffer -Location $locStr -PublisherName $pub;
226-
if ($s2.Resources.Count -gt 0)
226+
if ($s2.Count -gt 0)
227227
{
228228
# Check "$maxPubCheck" publishers at most
229229
$numPubCheck = $numPubCheck + 1;
230230
if ($numPubCheck -gt $maxPubCheck) { break; }
231231

232-
$offerNames = $s2.Resources | select -ExpandProperty Name;
232+
$offerNames = $s2 | select -ExpandProperty Offer;
233233
foreach ($offer in $offerNames)
234234
{
235235
$s3 = Get-AzureVMImageSku -Location $locStr -PublisherName $pub -Offer $offer;
236-
if ($s3.Resources.Count -gt 0)
236+
if ($s3.Count -gt 0)
237237
{
238-
$skus = $s3.Resources | select -ExpandProperty Name;
238+
$skus = $s3 | select -ExpandProperty Skus;
239239
foreach ($sku in $skus)
240240
{
241241
$s4 = Get-AzureVMImageVersion -Location $locStr -PublisherName $pub -Offer $offer -Sku $sku;
242-
if ($s4.Resources.Count -gt 0)
242+
if ($s4.Count -gt 0)
243243
{
244-
$versions = $s4.Resources | select -ExpandProperty Name;
244+
$versions = $s4 | select -ExpandProperty Version;
245245

246246
$s6 = Get-AzureVMImageVersion -Location $locStr -PublisherName $pub -Offer $offer -Sku $sku -FilterExpression ('name -eq *');
247247
Assert-NotNull $s6;
248-
Assert-NotNull $s6.Resources;
249-
$verNames = $s6.Resources | select -ExpandProperty Name;
248+
Assert-NotNull $s6.Count -gt 0;
249+
$verNames = $s6 | select -ExpandProperty Version;
250250

251251
foreach ($ver in $versions)
252252
{
253253
if ($ver -eq $null -or $ver -eq '') { continue; }
254254
$s6 = Get-AzureVMImage -Location $locStr -PublisherName $pub -Offer $offer -Sku $sku -Version $ver;
255255
Assert-NotNull $s6;
256-
Assert-NotNull $s6.VirtualMachineImage;
257-
$s6.VirtualMachineImage;
256+
$s6;
258257

259258
Assert-True { $verNames -contains $ver };
260-
Assert-True { $verNames -contains $s6.VirtualMachineImage.Name };
259+
Assert-True { $verNames -contains $s6.Name };
261260

262-
$s6.VirtualMachineImage.Id;
261+
$s6.Id;
263262

264263
$foundAnyImage = $true;
265264
}
@@ -282,22 +281,21 @@ function Test-VirtualMachineImageList
282281
if (-not ($pub -like $pubNameFilter)) { continue; }
283282

284283
$s1 = Get-AzureVMExtensionImageType -Location $locStr -PublisherName $pub;
285-
$types = $s1.Resources | select -ExpandProperty Name;
284+
$types = $s1 | select -ExpandProperty Type;
286285
if ($types.Count -gt 0)
287286
{
288287
foreach ($type in $types)
289288
{
290289
$s2 = Get-AzureVMExtensionImageVersion -Location $locStr -PublisherName $pub -Type $type -FilterExpression '*';
291-
$versions = $s2.Resources | select -ExpandProperty Name;
290+
$versions = $s2 | select -ExpandProperty Version;
292291
foreach ($ver in $versions)
293292
{
294293
$s3 = Get-AzureVMExtensionImage -Location $locStr -PublisherName $pub -Type $type -Version $ver -FilterExpression '*';
295294

296295
Assert-NotNull $s3;
297-
Assert-NotNull $s3.VirtualMachineExtensionImage;
298-
Assert-True { $s3.VirtualMachineExtensionImage.Name -eq $ver; }
296+
Assert-True { $s3.Version -eq $ver; }
299297

300-
$s3.VirtualMachineExtensionImage.Id;
298+
$s3.Id;
301299

302300
$foundAnyExtensionImage = $true;
303301
}
@@ -307,6 +305,15 @@ function Test-VirtualMachineImageList
307305

308306
Assert-True { $foundAnyExtensionImage };
309307

308+
# Test Piping
309+
$pubNameFilter = '*Microsoft*Windows*Server*';
310+
$imgs = Get-AzureVMImagePublisher -Location $locStr | where { $_.PublisherName -like $pubNameFilter } | Get-AzureVMImageOffer | Get-AzureVMImageSku | Get-AzureVMImageVersion | Get-AzureVMImage;
311+
Assert-True { $imgs.Count -gt 0 };
312+
313+
$pubNameFilter = '*Microsoft.Compute*';
314+
$extimgs = Get-AzureVMImagePublisher -Location $locStr | where { $_.PublisherName -like $pubNameFilter } | Get-AzureVMExtensionImageType | Get-AzureVMExtensionImageVersion | Get-AzureVMExtensionImage;
315+
Assert-True { $extimgs.Count -gt 0 };
316+
310317
# Negative Tests
311318
# VM Images
312319
$s1 = Get-AzureVMImagePublisher -Location $locStr;

src/ResourceManager/Compute/Commands.Compute.Test/SessionRecords/Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineTests/TestVirtualMachineImageList.json

Lines changed: 2762 additions & 578 deletions
Large diffs are not rendered by default.

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,11 @@
168168
<Compile Include="Models\PSSshPublicKey.cs" />
169169
<Compile Include="Models\PSVaultCertificate.cs" />
170170
<Compile Include="Models\PSVaultSecretGroup.cs" />
171+
<Compile Include="Models\PSOperationContext.cs" />
172+
<Compile Include="Models\PSVirtualMachineExtensionImageDetails.cs" />
173+
<Compile Include="Models\PSVirtualMachineExtensionImage.cs" />
174+
<Compile Include="Models\PSVirtualMachineImageDetails.cs" />
175+
<Compile Include="Models\PSVirtualMachineImage.cs" />
171176
<Compile Include="Models\PSVirtualMachineExtension.cs" />
172177
<Compile Include="Models\PSAvailabilitySet.cs" />
173178
<Compile Include="Models\PSVirtualMachineInstanceView.cs" />

src/ResourceManager/Compute/Commands.Compute/ExtensionImages/GetAzureVMExtensionImageCommand.cs

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,15 @@
1313
// ----------------------------------------------------------------------------------
1414

1515
using Microsoft.Azure.Commands.Compute.Common;
16+
using Microsoft.Azure.Commands.Compute.Models;
1617
using Microsoft.Azure.Management.Compute;
1718
using Microsoft.Azure.Management.Compute.Models;
1819
using System.Management.Automation;
1920

2021
namespace Microsoft.Azure.Commands.Compute
2122
{
2223
[Cmdlet(VerbsCommon.Get, ProfileNouns.VirtualMachineExtensionImage)]
23-
[OutputType(typeof(VirtualMachineExtensionImageGetResponse))]
24+
[OutputType(typeof(PSVirtualMachineExtensionImageDetails))]
2425
public class GetAzureVMExtensionImageCommand : VirtualMachineExtensionImageBaseCmdlet
2526
{
2627
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true), ValidateNotNullOrEmpty]
@@ -52,7 +53,25 @@ public override void ExecuteCmdlet()
5253
};
5354

5455
VirtualMachineExtensionImageGetResponse result = this.VirtualMachineExtensionImageClient.Get(parameters);
55-
WriteObject(result);
56+
57+
var image = new PSVirtualMachineExtensionImageDetails
58+
{
59+
RequestId = result.RequestId,
60+
StatusCode = result.StatusCode,
61+
Id = result.VirtualMachineExtensionImage.Id,
62+
Location = result.VirtualMachineExtensionImage.Location,
63+
Name = result.VirtualMachineExtensionImage.Name,
64+
HandlerSchema = result.VirtualMachineExtensionImage.HandlerSchema,
65+
OperatingSystem = result.VirtualMachineExtensionImage.OperatingSystem,
66+
ComputeRole = result.VirtualMachineExtensionImage.ComputeRole,
67+
SupportsMultipleExtensions = result.VirtualMachineExtensionImage.SupportsMultipleExtensions,
68+
VMScaleSetEnabled = result.VirtualMachineExtensionImage.VMScaleSetEnabled,
69+
PublisherName = this.PublisherName,
70+
Type = this.Type,
71+
Version = this.Version
72+
};
73+
74+
WriteObject(image);
5675
}
5776
}
5877
}

src/ResourceManager/Compute/Commands.Compute/ExtensionImages/GetAzureVMExtensionImageTypeCommand.cs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@
1313
// ----------------------------------------------------------------------------------
1414

1515
using Microsoft.Azure.Commands.Compute.Common;
16+
using Microsoft.Azure.Commands.Compute.Models;
1617
using Microsoft.Azure.Management.Compute;
1718
using Microsoft.Azure.Management.Compute.Models;
19+
using System.Linq;
1820
using System.Management.Automation;
1921

2022
namespace Microsoft.Azure.Commands.Compute
2123
{
2224
[Cmdlet(VerbsCommon.Get, ProfileNouns.VirtualMachineExtensionImageType)]
23-
[OutputType(typeof(VirtualMachineImageResourceList))]
25+
[OutputType(typeof(PSVirtualMachineExtensionImage))]
2426
public class GetAzureVMExtensionImageTypeCommand : VirtualMachineExtensionImageBaseCmdlet
2527
{
2628
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true), ValidateNotNullOrEmpty]
@@ -40,7 +42,19 @@ public override void ExecuteCmdlet()
4042
};
4143

4244
VirtualMachineImageResourceList result = this.VirtualMachineExtensionImageClient.ListTypes(parameters);
43-
WriteObject(result);
45+
46+
var images = from r in result.Resources
47+
select new PSVirtualMachineExtensionImage
48+
{
49+
RequestId = result.RequestId,
50+
StatusCode = result.StatusCode,
51+
Id = r.Id,
52+
Location = r.Location,
53+
Type = r.Name,
54+
PublisherName = this.PublisherName
55+
};
56+
57+
WriteObject(images, true);
4458
}
4559
}
4660
}

src/ResourceManager/Compute/Commands.Compute/ExtensionImages/GetAzureVMExtensionImageVersionCommand.cs

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@
1313
// ----------------------------------------------------------------------------------
1414

1515
using Microsoft.Azure.Commands.Compute.Common;
16+
using Microsoft.Azure.Commands.Compute.Models;
1617
using Microsoft.Azure.Management.Compute;
1718
using Microsoft.Azure.Management.Compute.Models;
19+
using System.Linq;
1820
using System.Management.Automation;
1921

2022
namespace Microsoft.Azure.Commands.Compute
2123
{
2224
[Cmdlet(VerbsCommon.Get, ProfileNouns.VirtualMachineExtensionImageVersion)]
23-
[OutputType(typeof(VirtualMachineImageResourceList))]
25+
[OutputType(typeof(PSVirtualMachineExtensionImage))]
2426
public class GetAzureVMExtensionImageVersionCommand : VirtualMachineExtensionImageBaseCmdlet
2527
{
2628
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true), ValidateNotNullOrEmpty]
@@ -48,7 +50,21 @@ public override void ExecuteCmdlet()
4850
};
4951

5052
VirtualMachineImageResourceList result = this.VirtualMachineExtensionImageClient.ListVersions(parameters);
51-
WriteObject(result);
53+
54+
var images = from r in result.Resources
55+
select new PSVirtualMachineExtensionImage
56+
{
57+
RequestId = result.RequestId,
58+
StatusCode = result.StatusCode,
59+
Id = r.Id,
60+
Location = r.Location,
61+
Version = r.Name,
62+
PublisherName = this.PublisherName,
63+
Type = this.Type,
64+
FilterExpression = this.FilterExpression
65+
};
66+
67+
WriteObject(images, true);
5268
}
5369
}
5470
}

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

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,26 @@
1313
// ----------------------------------------------------------------------------------
1414

1515
using Microsoft.Azure.Commands.Compute.Common;
16+
using Microsoft.Azure.Commands.Compute.Models;
1617
using Microsoft.Azure.Management.Compute;
1718
using Microsoft.Azure.Management.Compute.Models;
19+
using System.Linq;
1820
using System.Management.Automation;
1921

2022
namespace Microsoft.Azure.Commands.Compute
2123
{
2224
[Cmdlet(VerbsCommon.Get, ProfileNouns.VirtualMachineImage)]
23-
[OutputType(typeof(VirtualMachineImageGetResponse))]
25+
[OutputType(typeof(PSVirtualMachineImageDetails))]
2426
public class GetAzureVMImageCommand : VirtualMachineImageBaseCmdlet
2527
{
2628
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true), ValidateNotNullOrEmpty]
2729
public string Location { get; set; }
2830

2931
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true), ValidateNotNullOrEmpty]
30-
public string Offer { get; set; }
32+
public string PublisherName { get; set; }
3133

3234
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true), ValidateNotNullOrEmpty]
33-
public string PublisherName { get; set; }
35+
public string Offer { get; set; }
3436

3537
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true), ValidateNotNullOrEmpty]
3638
public string Skus { get; set; }
@@ -45,14 +47,31 @@ public override void ExecuteCmdlet()
4547
var parameters = new VirtualMachineImageGetParameters
4648
{
4749
Location = Location,
48-
Offer = Offer,
4950
PublisherName = PublisherName,
51+
Offer = Offer,
5052
Skus = Skus,
5153
Version = Version
5254
};
5355

54-
VirtualMachineImageGetResponse result = this.VirtualMachineImageClient.Get(parameters);
55-
WriteObject(result);
56+
VirtualMachineImageGetResponse response = this.VirtualMachineImageClient.Get(parameters);
57+
58+
var image = new PSVirtualMachineImageDetails
59+
{
60+
RequestId = response.RequestId,
61+
StatusCode = response.StatusCode,
62+
Id = response.VirtualMachineImage.Id,
63+
Location = response.VirtualMachineImage.Location,
64+
Name = response.VirtualMachineImage.Name,
65+
OSDiskImage = response.VirtualMachineImage.OSDiskImage,
66+
DataDiskImages = response.VirtualMachineImage.DataDiskImages,
67+
PurchasePlan = response.VirtualMachineImage.PurchasePlan,
68+
PublisherName = this.PublisherName,
69+
Offer = this.Offer,
70+
Skus = this.Skus,
71+
Version = this.Version
72+
};
73+
74+
WriteObject(image);
5675
}
5776
}
5877
}

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

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@
1313
// ----------------------------------------------------------------------------------
1414

1515
using Microsoft.Azure.Commands.Compute.Common;
16+
using Microsoft.Azure.Commands.Compute.Models;
1617
using Microsoft.Azure.Management.Compute;
1718
using Microsoft.Azure.Management.Compute.Models;
19+
using System.Linq;
1820
using System.Management.Automation;
1921

2022
namespace Microsoft.Azure.Commands.Compute
2123
{
2224
[Cmdlet(VerbsCommon.Get, ProfileNouns.VirtualMachineImageOffer)]
23-
[OutputType(typeof(VirtualMachineImageResourceList))]
25+
[OutputType(typeof(PSVirtualMachineImage))]
2426
public class GetAzureVMImageOfferCommand : VirtualMachineImageBaseCmdlet
2527
{
2628
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true), ValidateNotNullOrEmpty]
@@ -40,7 +42,19 @@ public override void ExecuteCmdlet()
4042
};
4143

4244
VirtualMachineImageResourceList result = this.VirtualMachineImageClient.ListOffers(parameters);
43-
WriteObject(result);
45+
46+
var images = from r in result.Resources
47+
select new PSVirtualMachineImage
48+
{
49+
RequestId = result.RequestId,
50+
StatusCode = result.StatusCode,
51+
Id = r.Id,
52+
Location = r.Location,
53+
Offer = r.Name,
54+
PublisherName = this.PublisherName
55+
};
56+
57+
WriteObject(images, true);
4458
}
4559
}
4660
}

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

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@
1313
// ----------------------------------------------------------------------------------
1414

1515
using Microsoft.Azure.Commands.Compute.Common;
16+
using Microsoft.Azure.Commands.Compute.Models;
1617
using Microsoft.Azure.Management.Compute;
1718
using Microsoft.Azure.Management.Compute.Models;
19+
using System.Linq;
1820
using System.Management.Automation;
1921

2022
namespace Microsoft.Azure.Commands.Compute
2123
{
2224
[Cmdlet(VerbsCommon.Get, ProfileNouns.VirtualMachineImagePublisher)]
23-
[OutputType(typeof(VirtualMachineImageResourceList))]
25+
[OutputType(typeof(PSVirtualMachineImage))]
2426
public class GetAzureVMImagePublisherCommand : VirtualMachineImageBaseCmdlet
2527
{
2628
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true), ValidateNotNullOrEmpty]
@@ -36,7 +38,18 @@ public override void ExecuteCmdlet()
3638
};
3739

3840
VirtualMachineImageResourceList result = this.VirtualMachineImageClient.ListPublishers(parameters);
39-
WriteObject(result);
41+
42+
var images = from r in result.Resources
43+
select new PSVirtualMachineImage
44+
{
45+
RequestId = result.RequestId,
46+
StatusCode = result.StatusCode,
47+
Id = r.Id,
48+
Location = r.Location,
49+
PublisherName = r.Name
50+
};
51+
52+
WriteObject(images, true);
4053
}
4154
}
4255
}

0 commit comments

Comments
 (0)