Skip to content

Commit fe5ce94

Browse files
Merge branch 'dev' of https://github.com/Azure/azure-powershell into dev
2 parents 1795372 + 237ab20 commit fe5ce94

File tree

86 files changed

+14016
-9386
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+14016
-9386
lines changed

setup/azurecmdfiles.wxi

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

src/Common/Commands.Common/Properties/Resources.Designer.cs

Lines changed: 10 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Common/Commands.Common/Properties/Resources.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1358,4 +1358,7 @@ use and privacy statement at <url> and (c) agree to sharing my contact inf
13581358
<data name="AzureProfileMustNotBeNull" xml:space="preserve">
13591359
<value>Selected profile must not be null.</value>
13601360
</data>
1361+
<data name="SwitchAzureModeDeprecated" xml:space="preserve">
1362+
<value>The Switch-AzureMode cmdlet is deprecated and will be removed in a future release.</value>
1363+
</data>
13611364
</root>

src/Common/Commands.Profile/SwitchAzureMode.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
using System;
1616
using System.Management.Automation;
17+
using Microsoft.WindowsAzure.Commands.Common.Properties;
1718
using Microsoft.WindowsAzure.Commands.Utilities.Common;
1819
using Microsoft.Azure.Common.Authentication;
1920

@@ -34,6 +35,7 @@ public class SwitchAzureMode : AzurePSCmdlet
3435

3536
public override void ExecuteCmdlet()
3637
{
38+
WriteWarning(Resources.SwitchAzureModeDeprecated);
3739
AzureModule moduleToImport = (AzureModule)Enum.Parse(typeof(AzureModule), Name, false);
3840
AzureModule moduleToRemove = moduleToImport == AzureModule.AzureResourceManager ? AzureModule.AzureServiceManagement : AzureModule.AzureResourceManager;
3941
RemoveAzureModule(FileUtilities.GetModuleName(moduleToRemove), FileUtilities.GetPSModulePathForModule(moduleToRemove));

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ function Test-AvailabilitySet
4343
Assert-AreEqual $aset.PlatformUpdateDomainCount $nonDefaultUD;
4444
Assert-AreEqual $aset.PlatformFaultDomainCount $nonDefaultFD;
4545

46-
Remove-AzureAvailabilitySet -ResourceGroupName $rgname -Name $asetName;
46+
Assert-ThrowsContains { Remove-AzureAvailabilitySet -ResourceGroupName $rgname -Name $asetName; } "This cmdlet will remove the specified availability set. Do you want to continue?"
47+
48+
Remove-AzureAvailabilitySet -ResourceGroupName $rgname -Name $asetName -Force;
4749

4850
$asets = Get-AzureAvailabilitySet -ResourceGroupName $rgname;
4951
Assert-AreEqual $asets $null;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ function Get-DefaultCRPImage
211211
$defaultVersion = $result[0];
212212
}
213213

214-
$vmimg = Get-AzureVMImageDetail -Location $loc -Offer $defaultOffer -PublisherName $defaultPublisher -Skus $defaultSku -Version $defaultVersion;
214+
$vmimg = Get-AzureVMImage -Location $loc -Offer $defaultOffer -PublisherName $defaultPublisher -Skus $defaultSku -Version $defaultVersion;
215215

216216
return $vmimg;
217217
}

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

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,26 @@ function Test-VirtualMachineProfile
2626

2727
# Network
2828
$ipname = 'hpfip' + ((Get-Random) % 10000);
29-
$ipRefUri = "https://test.foo.bar/$ipname";
29+
$ipRefUri1 = "https://test.foo.bar/$ipname";
3030
$nicName = $ipname + 'nic1';
3131
$publicIPName = $ipname + 'name1';
3232

33-
$p = Add-AzureVMNetworkInterface -VM $p -Id $ipRefUri;
33+
$p = Add-AzureVMNetworkInterface -VM $p -Id $ipRefUri1;
34+
35+
$ipname = 'hpfip' + ((Get-Random) % 10000);
36+
$ipRefUri2 = "https://test.foo.bar/$ipname";
37+
$p = Add-AzureVMNetworkInterface -VM $p -Id $ipRefUri2;
38+
39+
# Remove all NICs
40+
$p = $p | Remove-AzureVMNetworkInterface
41+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 0;
42+
43+
$p = Add-AzureVMNetworkInterface -VM $p -Id $ipRefUri1;
44+
$p = Add-AzureVMNetworkInterface -VM $p -Id $ipRefUri2;
45+
$p = Remove-AzureVMNetworkInterface -VM $p -Id $ipRefUri2;
3446

3547
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1;
36-
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces[0].ReferenceUri $ipRefUri;
48+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces[0].ReferenceUri $ipRefUri1;
3749

3850
# Storage
3951
$stoname = 'hpfteststo' + ((Get-Random) % 10000);
@@ -66,6 +78,23 @@ function Test-VirtualMachineProfile
6678
Assert-AreEqual $p.StorageProfile.DataDisks[1].Lun 1;
6779
Assert-AreEqual $p.StorageProfile.DataDisks[1].VirtualHardDisk.Uri $dataDiskVhdUri2;
6880

81+
# Remove all data disks
82+
$p = $p | Remove-AzureVMDataDisk;
83+
Assert-AreEqual $p.StorageProfile.DataDisks.Count 0;
84+
85+
$p = Add-AzureVMDataDisk -VM $p -Name 'testDataDisk1' -Caching 'ReadOnly' -DiskSizeInGB 10 -Lun 0 -VhdUri $dataDiskVhdUri1 -CreateOption Empty;
86+
$p = Add-AzureVMDataDisk -VM $p -Name 'testDataDisk2' -Caching 'ReadOnly' -DiskSizeInGB 11 -Lun 1 -VhdUri $dataDiskVhdUri2 -CreateOption Empty;
87+
88+
Assert-AreEqual $p.StorageProfile.DataDisks.Count 2;
89+
Assert-AreEqual $p.StorageProfile.DataDisks[0].Caching 'ReadOnly';
90+
Assert-AreEqual $p.StorageProfile.DataDisks[0].DiskSizeGB 10;
91+
Assert-AreEqual $p.StorageProfile.DataDisks[0].Lun 0;
92+
Assert-AreEqual $p.StorageProfile.DataDisks[0].VirtualHardDisk.Uri $dataDiskVhdUri1;
93+
Assert-AreEqual $p.StorageProfile.DataDisks[1].Caching 'ReadOnly';
94+
Assert-AreEqual $p.StorageProfile.DataDisks[1].DiskSizeGB 11;
95+
Assert-AreEqual $p.StorageProfile.DataDisks[1].Lun 1;
96+
Assert-AreEqual $p.StorageProfile.DataDisks[1].VirtualHardDisk.Uri $dataDiskVhdUri2;
97+
6998
# Windows OS
7099
$user = "Foo12";
71100
$password = 'BaR@000' + ((Get-Random) % 10000);

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

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ function Test-VirtualMachineList
189189

190190
try
191191
{
192-
$s1 = Get-AzureVM -All;
192+
$s1 = Get-AzureVM;
193193
$s2 = Get-AzureVM;
194194

195195
if ($s2 -ne $null)
@@ -252,15 +252,15 @@ function Test-VirtualMachineImageList
252252
{
253253
$versions = $s4 | select -ExpandProperty Version;
254254

255-
$s6 = Get-AzureVMImage -Location $locStr -PublisherName $pub -Offer $offer -Sku $sku -FilterExpression ('name -eq *');
256-
Assert-NotNull $s6;
257-
Assert-NotNull $s6.Count -gt 0;
258-
$verNames = $s6 | select -ExpandProperty Version;
255+
$s5 = Get-AzureVMImage -Location $locStr -PublisherName $pub -Offer $offer -Sku $sku -FilterExpression ('name -eq *');
256+
Assert-NotNull $s5;
257+
Assert-NotNull $s5.Count -gt 0;
258+
$verNames = $s5 | select -ExpandProperty Version;
259259

260260
foreach ($ver in $versions)
261261
{
262262
if ($ver -eq $null -or $ver -eq '') { continue; }
263-
$s6 = Get-AzureVMImageDetail -Location $locStr -PublisherName $pub -Offer $offer -Sku $sku -Version $ver;
263+
$s6 = Get-AzureVMImage -Location $locStr -PublisherName $pub -Offer $offer -Sku $sku -Version $ver;
264264
Assert-NotNull $s6;
265265
$s6;
266266

@@ -299,7 +299,7 @@ function Test-VirtualMachineImageList
299299
$versions = $s2 | select -ExpandProperty Version;
300300
foreach ($ver in $versions)
301301
{
302-
$s3 = Get-AzureVMExtensionImageDetail -Location $locStr -PublisherName $pub -Type $type -Version $ver -FilterExpression '*';
302+
$s3 = Get-AzureVMExtensionImage -Location $locStr -PublisherName $pub -Type $type -Version $ver -FilterExpression '*';
303303

304304
Assert-NotNull $s3;
305305
Assert-True { $s3.Version -eq $ver; }
@@ -316,11 +316,11 @@ function Test-VirtualMachineImageList
316316

317317
# Test Piping
318318
$pubNameFilter = '*Microsoft*Windows*Server*';
319-
$imgs = Get-AzureVMImagePublisher -Location $locStr | where { $_.PublisherName -like $pubNameFilter } | Get-AzureVMImageOffer | Get-AzureVMImageSku | Get-AzureVMImage | Get-AzureVMImageDetail;
319+
$imgs = Get-AzureVMImagePublisher -Location $locStr | where { $_.PublisherName -like $pubNameFilter } | Get-AzureVMImageOffer | Get-AzureVMImageSku | Get-AzureVMImage | Get-AzureVMImage;
320320
Assert-True { $imgs.Count -gt 0 };
321321

322322
$pubNameFilter = '*Microsoft.Compute*';
323-
$extimgs = Get-AzureVMImagePublisher -Location $locStr | where { $_.PublisherName -like $pubNameFilter } | Get-AzureVMExtensionImageType | Get-AzureVMExtensionImage | Get-AzureVMExtensionImageDetail;
323+
$extimgs = Get-AzureVMImagePublisher -Location $locStr | where { $_.PublisherName -like $pubNameFilter } | Get-AzureVMExtensionImageType | Get-AzureVMExtensionImage | Get-AzureVMExtensionImage;
324324
Assert-True { $extimgs.Count -gt 0 };
325325

326326
# Negative Tests
@@ -341,12 +341,12 @@ function Test-VirtualMachineImageList
341341
Assert-ThrowsContains { $s5 = Get-AzureVMImage -Location $locStr -PublisherName $publisherName -Offer $offerName -Skus $skusName -FilterExpression $filter; } "was not found";
342342

343343
$version = '1.0.0';
344-
Assert-ThrowsContains { $s6 = Get-AzureVMImageDetail -Location $locStr -PublisherName $publisherName -Offer $offerName -Skus $skusName -Version $version; } "was not found";
344+
Assert-ThrowsContains { $s6 = Get-AzureVMImage -Location $locStr -PublisherName $publisherName -Offer $offerName -Skus $skusName -Version $version; } "was not found";
345345

346346
# Extension Images
347347
$type = Get-ComputeTestResourceName;
348-
Assert-ThrowsContains { $s7 = Get-AzureVMExtensionImageDetail -Location $locStr -PublisherName $publisherName -Type $type -FilterExpression $filter -Version $version; } "was not found";
349-
348+
Assert-ThrowsContains { $s7 = Get-AzureVMExtensionImage -Location $locStr -PublisherName $publisherName -Type $type -FilterExpression $filter -Version $version; } "was not found";
349+
350350
Assert-ThrowsContains { $s8 = Get-AzureVMExtensionImageType -Location $locStr -PublisherName $publisherName; } "was not found";
351351

352352
Assert-ThrowsContains { $s9 = Get-AzureVMExtensionImage -Location $locStr -PublisherName $publisherName -Type $type -FilterExpression $filter; } "was not found";
@@ -987,7 +987,7 @@ function Test-VirtualMachinePlan2
987987
$vmmImgOfferName = 'a10-vthunder-adc';
988988
$vmmImgSkusName = 'vthunder_byol';
989989
$vmmImgVerName = '1.0.0';
990-
$imgRef = Get-AzureVMImageDetail -PublisherName $vmmImgPubName -Location $loc -Offer $vmmImgOfferName -Skus $vmmImgSkusName -Version $vmmImgVerName;
990+
$imgRef = Get-AzureVMImage -PublisherName $vmmImgPubName -Location $loc -Offer $vmmImgOfferName -Skus $vmmImgSkusName -Version $vmmImgVerName;
991991
$plan = $imgRef.PurchasePlan;
992992
$p = Set-AzureVMSourceImage -VM $p -PublisherName $imgRef.PublisherName -Offer $imgRef.Offer -Skus $imgRef.Skus -Version $imgRef.Version;
993993
$p.Plan = New-Object Microsoft.Azure.Management.Compute.Models.Plan;

src/ResourceManager/Compute/Commands.Compute/AvailabilitySets/NewAzureAvailabilitySetCommand.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,17 @@
1212
// limitations under the License.
1313
// ----------------------------------------------------------------------------------
1414

15+
using AutoMapper;
1516
using Microsoft.Azure.Commands.Compute.Common;
17+
using Microsoft.Azure.Commands.Compute.Models;
1618
using Microsoft.Azure.Management.Compute;
1719
using Microsoft.Azure.Management.Compute.Models;
1820
using System.Management.Automation;
1921

2022
namespace Microsoft.Azure.Commands.Compute
2123
{
2224
[Cmdlet(VerbsCommon.New, ProfileNouns.AvailabilitySet)]
25+
[OutputType(typeof(PSAvailabilitySet))]
2326
public class NewAzureAvailabilitySetCommand : AvailabilitySetBaseCmdlet
2427
{
2528
[Parameter(
@@ -73,11 +76,12 @@ public override void ExecuteCmdlet()
7376
PlatformFaultDomainCount = this.PlatformFaultDomainCount
7477
};
7578

76-
var op = this.AvailabilitySetClient.CreateOrUpdate(
79+
var result = this.AvailabilitySetClient.CreateOrUpdate(
7780
this.ResourceGroupName,
7881
avSetParams);
7982

80-
WriteObject(op);
83+
var psResult = Mapper.Map<PSAvailabilitySet>(result.AvailabilitySet);
84+
WriteObject(psResult);
8185
}
8286
}
8387
}

src/ResourceManager/Compute/Commands.Compute/AvailabilitySets/RemoveAzureAvailabilitySetCommand.cs

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,16 @@
1212
// limitations under the License.
1313
// ----------------------------------------------------------------------------------
1414

15+
using AutoMapper;
1516
using Microsoft.Azure.Commands.Compute.Common;
17+
using Microsoft.Azure.Commands.Compute.Models;
1618
using Microsoft.Azure.Management.Compute;
1719
using System.Management.Automation;
1820

1921
namespace Microsoft.Azure.Commands.Compute
2022
{
2123
[Cmdlet(VerbsCommon.Remove, ProfileNouns.AvailabilitySet)]
24+
[OutputType(typeof(PSOperationResponse))]
2225
public class RemoveAzureAvailabilitySetCommand : AvailabilitySetBaseCmdlet
2326
{
2427
[Parameter(
@@ -37,13 +40,24 @@ public class RemoveAzureAvailabilitySetCommand : AvailabilitySetBaseCmdlet
3740
[ValidateNotNullOrEmpty]
3841
public string Name { get; set; }
3942

43+
[Parameter(
44+
Position = 2,
45+
HelpMessage = "To force the removal.")]
46+
[ValidateNotNullOrEmpty]
47+
public SwitchParameter Force { get; set; }
48+
4049
public override void ExecuteCmdlet()
4150
{
4251
base.ExecuteCmdlet();
4352

44-
var op = this.AvailabilitySetClient.Delete(this.ResourceGroupName, this.Name);
45-
46-
WriteObject(op);
53+
if (this.Force.IsPresent
54+
|| this.ShouldContinue(Properties.Resources.AvailabilitySetRemovalConfirmation,
55+
Properties.Resources.AvailabilitySetRemovalCaption))
56+
{
57+
AzureOperationResponse op = this.AvailabilitySetClient.Delete(this.ResourceGroupName, this.Name);
58+
var result = Mapper.Map<PSOperationResponse>(op);
59+
WriteObject(result);
60+
}
4761
}
4862
}
4963
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@
164164
<Compile Include="Extension\GetAzureVMExtensionCommand.cs" />
165165
<Compile Include="Images\GetAzureVMImageCommand.cs" />
166166
<Compile Include="Models\HashTableExtensions.cs" />
167+
<Compile Include="Models\PSComputeLongRunningOperation.cs" />
167168
<Compile Include="Models\PSOperation.cs" />
168169
<Compile Include="Extension\VMAccess\GetAzureVMAccessExtension.cs" />
169170
<Compile Include="Extension\VMAccess\RemoveAzureVMAccessExtension.cs" />
@@ -176,6 +177,7 @@
176177
<Compile Include="Images\GetAzureVMImageOfferCommand.cs" />
177178
<Compile Include="Images\GetAzureVMImageDetailCommand.cs" />
178179
<Compile Include="Images\VirtualMachineImageBaseCmdlet.cs" />
180+
<Compile Include="Models\PSOperationResponse.cs" />
179181
<Compile Include="Models\PSUsage.cs" />
180182
<Compile Include="Models\PSVirtualMachineExtensionImage.cs" />
181183
<Compile Include="Models\PSVirtualMachineImage.cs" />
@@ -253,6 +255,9 @@
253255
<None Include="Microsoft.Azure.Commands.Compute.dll-Help.psd1">
254256
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
255257
</None>
258+
<None Include="Microsoft.Azure.Commands.Compute.format.generated.ps1xml">
259+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
260+
</None>
256261
<None Include="Microsoft.Azure.Commands.Compute.format.ps1xml">
257262
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
258263
</None>

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ protected override void Configure()
7272
Mapper.CreateMap<FROM.VirtualMachine, TO.PSVirtualMachine>();
7373
Mapper.CreateMap<FROM.VirtualMachineSize, TO.PSVirtualMachineSize>();
7474
Mapper.CreateMap<FROM.Usage, TO.PSUsage>();
75+
Mapper.CreateMap<FROM.ComputeLongRunningOperationResponse, TO.PSComputeLongRunningOperation>();
76+
Mapper.CreateMap<Microsoft.Azure.AzureOperationResponse, TO.PSOperationResponse>();
7577
}
7678
}
7779
}

src/ResourceManager/Compute/Commands.Compute/Extension/RemoveAzureVMExtensionCommand.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,16 @@
1212
// limitations under the License.
1313
// ----------------------------------------------------------------------------------
1414

15+
using AutoMapper;
1516
using Microsoft.Azure.Commands.Compute.Common;
17+
using Microsoft.Azure.Commands.Compute.Models;
1618
using Microsoft.Azure.Management.Compute;
17-
using Microsoft.Azure.Management.Compute.Models;
1819
using System.Management.Automation;
1920

2021
namespace Microsoft.Azure.Commands.Compute
2122
{
2223
[Cmdlet(VerbsCommon.Remove, ProfileNouns.VirtualMachineExtension)]
23-
[OutputType(typeof(ComputeLongRunningOperationResponse))]
24+
[OutputType(typeof(PSComputeLongRunningOperation))]
2425
public class RemoveAzureVMExtensionCommand : VirtualMachineExtensionBaseCmdlet
2526
{
2627
[Parameter(
@@ -61,7 +62,8 @@ public override void ExecuteCmdlet()
6162
|| this.ShouldContinue(Properties.Resources.VirtualMachineExtensionRemovalConfirmation, Properties.Resources.VirtualMachineExtensionRemovalCaption))
6263
{
6364
var op = this.VirtualMachineExtensionClient.Delete(this.ResourceGroupName, this.VMName, this.Name);
64-
WriteObject(op);
65+
var result = Mapper.Map<PSComputeLongRunningOperation>(op);
66+
WriteObject(result);
6567
}
6668
}
6769
}

src/ResourceManager/Compute/Commands.Compute/Extension/SetAzureVMExtensionCommand.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
// limitations under the License.
1313
// ----------------------------------------------------------------------------------
1414

15+
using AutoMapper;
1516
using Microsoft.Azure.Commands.Compute.Common;
17+
using Microsoft.Azure.Commands.Compute.Models;
1618
using Microsoft.Azure.Management.Compute;
1719
using Microsoft.Azure.Management.Compute.Models;
1820
using Newtonsoft.Json;
@@ -25,6 +27,7 @@ namespace Microsoft.Azure.Commands.Compute
2527
VerbsCommon.Set,
2628
ProfileNouns.VirtualMachineExtension,
2729
DefaultParameterSetName = SettingsParamSet)]
30+
[OutputType(typeof(PSComputeLongRunningOperation))]
2831
public class SetAzureVMExtensionCommand : VirtualMachineExtensionBaseCmdlet
2932
{
3033
protected const string SettingStringParamSet = "SettingString";
@@ -124,8 +127,6 @@ public override void ExecuteCmdlet()
124127
{
125128
base.ExecuteCmdlet();
126129

127-
128-
129130
if (this.Settings != null)
130131
{
131132
this.SettingString = JsonConvert.SerializeObject(Settings);
@@ -149,7 +150,8 @@ public override void ExecuteCmdlet()
149150
this.VMName,
150151
parameters);
151152

152-
WriteObject(op);
153+
var result = Mapper.Map<PSComputeLongRunningOperation>(op);
154+
WriteObject(result);
153155
}
154156
}
155157
}

0 commit comments

Comments
 (0)