Skip to content

Commit ccfbc1c

Browse files
committed
Update the format of Get-AzureRmVM result
1 parent 7720b73 commit ccfbc1c

File tree

11 files changed

+5605
-10
lines changed

11 files changed

+5605
-10
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,9 @@
448448
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineTests\TestVirtualMachineDataDiskNegative.json">
449449
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
450450
</None>
451+
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineTests\TestVirtualMachineGetStatus.json">
452+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
453+
</None>
451454
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineTests\TestVirtualMachineImageList.json">
452455
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
453456
</None>

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,5 +191,12 @@ public void TestVirtualMachineRedeploy()
191191
{
192192
ComputeTestController.NewInstance.RunPsTest("Test-VirtualMachineRedeploy");
193193
}
194+
195+
[Fact]
196+
[Trait(Category.AcceptanceType, Category.CheckIn)]
197+
public void TestVirtualMachineGetStatus()
198+
{
199+
ComputeTestController.NewInstance.RunPsTest("Test-VirtualMachineGetStatus");
200+
}
194201
}
195202
}

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

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ function Test-VirtualMachine
176176
$a = $vms | Out-String;
177177
Write-Verbose("Get-AzureRmVM (List) output:");
178178
Write-Verbose($a);
179+
Assert-True{$a.Contains("NIC");}
179180
Assert-AreNotEqual $vms $null;
180181

181182
# Remove All VMs
@@ -2657,3 +2658,133 @@ function Test-VirtualMachineRedeploy
26572658
Clean-ResourceGroup $rgname
26582659
}
26592660
}
2661+
2662+
<#
2663+
.SYNOPSIS
2664+
Test Virtual Machines
2665+
#>
2666+
function Test-VirtualMachineGetStatus
2667+
{
2668+
param ($loc)
2669+
# Setup
2670+
$rgname = Get-ComputeTestResourceName
2671+
2672+
try
2673+
{
2674+
# Common
2675+
if ($loc -eq $null)
2676+
{
2677+
$loc = Get-ComputeVMLocation;
2678+
}
2679+
New-AzureRmResourceGroup -Name $rgname -Location $loc -Force;
2680+
2681+
# VM Profile & Hardware
2682+
$vmsize = 'Standard_A4';
2683+
$vmname = 'vm' + $rgname;
2684+
$p = New-AzureRmVMConfig -VMName $vmname -VMSize $vmsize;
2685+
Assert-AreEqual $p.HardwareProfile.VmSize $vmsize;
2686+
2687+
# NRP
2688+
$subnet = New-AzureRmVirtualNetworkSubnetConfig -Name ('subnet' + $rgname) -AddressPrefix "10.0.0.0/24";
2689+
$vnet = New-AzureRmVirtualNetwork -Force -Name ('vnet' + $rgname) -ResourceGroupName $rgname -Location $loc -AddressPrefix "10.0.0.0/16" -Subnet $subnet;
2690+
$vnet = Get-AzureRmVirtualNetwork -Name ('vnet' + $rgname) -ResourceGroupName $rgname;
2691+
$subnetId = $vnet.Subnets[0].Id;
2692+
$pubip = New-AzureRmPublicIpAddress -Force -Name ('pubip' + $rgname) -ResourceGroupName $rgname -Location $loc -AllocationMethod Dynamic -DomainNameLabel ('pubip' + $rgname);
2693+
$pubip = Get-AzureRmPublicIpAddress -Name ('pubip' + $rgname) -ResourceGroupName $rgname;
2694+
$pubipId = $pubip.Id;
2695+
$nic = New-AzureRmNetworkInterface -Force -Name ('nic' + $rgname) -ResourceGroupName $rgname -Location $loc -SubnetId $subnetId -PublicIpAddressId $pubip.Id;
2696+
$nic = Get-AzureRmNetworkInterface -Name ('nic' + $rgname) -ResourceGroupName $rgname;
2697+
$nicId = $nic.Id;
2698+
2699+
$p = Add-AzureRmVMNetworkInterface -VM $p -Id $nicId;
2700+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1;
2701+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces[0].Id $nicId;
2702+
2703+
# Storage Account (SA)
2704+
$stoname = 'sto' + $rgname;
2705+
$stotype = 'Standard_GRS';
2706+
New-AzureRmStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype;
2707+
$stoaccount = Get-AzureRmStorageAccount -ResourceGroupName $rgname -Name $stoname;
2708+
2709+
$osDiskName = 'osDisk';
2710+
$osDiskCaching = 'ReadWrite';
2711+
$osDiskVhdUri = "https://$stoname.blob.core.windows.net/test/os.vhd";
2712+
2713+
$p = Set-AzureRmVMOSDisk -VM $p -Name $osDiskName -VhdUri $osDiskVhdUri -Caching $osDiskCaching -CreateOption FromImage;
2714+
2715+
Assert-AreEqual $p.StorageProfile.OSDisk.Caching $osDiskCaching;
2716+
Assert-AreEqual $p.StorageProfile.OSDisk.Name $osDiskName;
2717+
Assert-AreEqual $p.StorageProfile.OSDisk.Vhd.Uri $osDiskVhdUri;
2718+
2719+
# OS & Image
2720+
$user = "Foo12";
2721+
$password = $PLACEHOLDER;
2722+
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force;
2723+
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);
2724+
$computerName = 'test';
2725+
$vhdContainer = "https://$stoname.blob.core.windows.net/test";
2726+
2727+
# $p.StorageProfile.OSDisk = $null;
2728+
$p = Set-AzureRmVMOperatingSystem -VM $p -Windows -ComputerName $computerName -Credential $cred;
2729+
2730+
$imgRef = Get-DefaultCRPImage -loc $loc;
2731+
$p = ($imgRef | Set-AzureRmVMSourceImage -VM $p);
2732+
2733+
Assert-AreEqual $p.OSProfile.AdminUsername $user;
2734+
Assert-AreEqual $p.OSProfile.ComputerName $computerName;
2735+
Assert-AreEqual $p.OSProfile.AdminPassword $password;
2736+
2737+
Assert-AreEqual $p.StorageProfile.ImageReference.Offer $imgRef.Offer;
2738+
Assert-AreEqual $p.StorageProfile.ImageReference.Publisher $imgRef.PublisherName;
2739+
Assert-AreEqual $p.StorageProfile.ImageReference.Sku $imgRef.Skus;
2740+
Assert-AreEqual $p.StorageProfile.ImageReference.Version $imgRef.Version;
2741+
2742+
# Virtual Machine
2743+
New-AzureRmVM -ResourceGroupName $rgname -Location $loc -VM $p;
2744+
2745+
# Get VM
2746+
$vm1 = Get-AzureRmVM -Name $vmname -ResourceGroupName $rgname;
2747+
$a = $vm1 | Out-String;
2748+
Write-Verbose("Get-AzureRmVM output:");
2749+
Write-Verbose($a);
2750+
$a = $vm1 | Format-Table | Out-String;
2751+
Write-Verbose("Get-AzureRmVM | Format-Table output:");
2752+
Write-Verbose($a);
2753+
2754+
Assert-AreEqual $vm1.Name $vmname;
2755+
Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces.Count 1;
2756+
Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces[0].Id $nicId;
2757+
2758+
Assert-AreEqual $vm1.StorageProfile.ImageReference.Offer $imgRef.Offer;
2759+
Assert-AreEqual $vm1.StorageProfile.ImageReference.Publisher $imgRef.PublisherName;
2760+
Assert-AreEqual $vm1.StorageProfile.ImageReference.Sku $imgRef.Skus;
2761+
Assert-AreEqual $vm1.StorageProfile.ImageReference.Version $imgRef.Version;
2762+
2763+
Assert-AreEqual $vm1.OSProfile.AdminUsername $user;
2764+
Assert-AreEqual $vm1.OSProfile.ComputerName $computerName;
2765+
Assert-AreEqual $vm1.HardwareProfile.VmSize $vmsize;
2766+
2767+
$vm = Get-AzureRmVM -Name $vmname -ResourceGroupName $rgname -Status;
2768+
$a = $vm | Out-String;
2769+
Write-Verbose($a);
2770+
Assert-True {$a.Contains("Statuses");}
2771+
2772+
$vms = Get-AzureRmVM -ResourceGroupName $rgname -Status;
2773+
$a = $vms | Out-String;
2774+
Write-Verbose($a);
2775+
Assert-True {$a.Contains("PowerState");}
2776+
2777+
$vms = Get-AzureRmVM -Status;
2778+
$a = $vms | Out-String;
2779+
Write-Verbose($a);
2780+
Assert-True {$a.Contains("PowerState");}
2781+
2782+
# Remove
2783+
Remove-AzureRmVM -Name $vmname -ResourceGroupName $rgname -Force;
2784+
}
2785+
finally
2786+
{
2787+
# Cleanup
2788+
Clean-ResourceGroup $rgname
2789+
}
2790+
}

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

Lines changed: 5155 additions & 0 deletions
Large diffs are not rendered by default.

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,8 @@
307307
<Compile Include="Models\PSAvailabilitySet.cs" />
308308
<Compile Include="Models\PSVirtualMachineImageResource.cs" />
309309
<Compile Include="Models\PSVirtualMachineInstanceView.cs" />
310+
<Compile Include="Models\PSVirtualMachineList.cs" />
311+
<Compile Include="Models\PSVirtualMachineListStatus.cs" />
310312
<Compile Include="Models\PSVirtualMachineSize.cs" />
311313
<Compile Include="Common\LocationStringExtensions.cs" />
312314
<Compile Include="Models\UploadParameters.cs" />

src/ResourceManager/Compute/Commands.Compute/Common/ComputeAutoMapperProfile.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,23 @@ protected override void Configure()
165165
Mapper.CreateMap<AzureOperationResponse<IEnumerable<FROM.VirtualMachine>>, TO.PSVirtualMachine>()
166166
.ForMember(c => c.StatusCode, o => o.MapFrom(r => r.Response.StatusCode));
167167

168+
// VirtualMachine => PSVirtualMachineListStatusContext
169+
Mapper.CreateMap<FROM.VirtualMachine, TO.PSVirtualMachineListStatus>()
170+
.ForMember(c => c.AvailabilitySetReference, o => o.MapFrom(r => r.AvailabilitySet))
171+
.ForMember(c => c.Extensions, o => o.MapFrom(r => r.Resources))
172+
.ForMember(c => c.OSProfile, o => o.MapFrom(r => r.OsProfile));
173+
174+
Mapper.CreateMap<AzureOperationResponse<FROM.VirtualMachine>, TO.PSVirtualMachineListStatus>()
175+
.ForMember(c => c.StatusCode, o => o.MapFrom(r => r.Response.StatusCode));
176+
177+
Mapper.CreateMap<AzureOperationResponse<IPage<FROM.VirtualMachine>>, TO.PSVirtualMachineListStatus>()
178+
.ForMember(c => c.StatusCode, o => o.MapFrom(r => r.Response.StatusCode));
179+
180+
Mapper.CreateMap<AzureOperationResponse<IEnumerable<FROM.VirtualMachine>>, TO.PSVirtualMachineListStatus>()
181+
.ForMember(c => c.StatusCode, o => o.MapFrom(r => r.Response.StatusCode));
182+
183+
Mapper.CreateMap<TO.PSVirtualMachineListStatus, TO.PSVirtualMachineList>();
184+
168185
// VirtualMachineSize => PSVirtualMachineSize
169186
Mapper.CreateMap<FROM.VirtualMachineSize, TO.PSVirtualMachineSize>();
170187

src/ResourceManager/Compute/Commands.Compute/Microsoft.Azure.Commands.Compute.format.generated.ps1xml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,22 @@
270270
<Label>Location</Label>
271271
<Alignment>Right</Alignment>
272272
</TableColumnHeader>
273+
<TableColumnHeader>
274+
<Label>VmSize</Label>
275+
<Alignment>Right</Alignment>
276+
</TableColumnHeader>
277+
<TableColumnHeader>
278+
<Label>OsType</Label>
279+
<Alignment>Right</Alignment>
280+
</TableColumnHeader>
281+
<TableColumnHeader>
282+
<Label>NIC</Label>
283+
<Alignment>Right</Alignment>
284+
</TableColumnHeader>
285+
<TableColumnHeader>
286+
<Label>ProvisioningState</Label>
287+
<Alignment>Right</Alignment>
288+
</TableColumnHeader>
273289
</TableHeaders>
274290
<TableRowEntries>
275291
<TableRowEntry>
@@ -283,6 +299,24 @@
283299
<TableColumnItem>
284300
<ScriptBlock>$_.Location</ScriptBlock>
285301
</TableColumnItem>
302+
<TableColumnItem>
303+
<ScriptBlock>$_.HardwareProfile.VmSize</ScriptBlock>
304+
</TableColumnItem>
305+
<TableColumnItem>
306+
<ScriptBlock>$_.StorageProfile.OsDisk.OsType</ScriptBlock>
307+
</TableColumnItem>
308+
<TableColumnItem>
309+
<ScriptBlock>
310+
$nics = $_.NetworkProfile.NetworkInterfaces;
311+
foreach ($nic in $nics)
312+
{
313+
$nic.Id.Substring($nic.Id.LastIndexof('/') + 1);
314+
}
315+
</ScriptBlock>
316+
</TableColumnItem>
317+
<TableColumnItem>
318+
<ScriptBlock>$_.ProvisioningState</ScriptBlock>
319+
</TableColumnItem>
286320
</TableColumnItems>
287321
</TableRowEntry>
288322
</TableRowEntries>

0 commit comments

Comments
 (0)