Skip to content

Commit 39ef2e1

Browse files
committed
Merge pull request #10 from Azure/dev
.
2 parents 921c3e1 + 0eb0d57 commit 39ef2e1

File tree

77 files changed

+18016
-10373
lines changed

Some content is hidden

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

77 files changed

+18016
-10373
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: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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/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: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@
177177
<Compile Include="Images\GetAzureVMImageOfferCommand.cs" />
178178
<Compile Include="Images\GetAzureVMImageDetailCommand.cs" />
179179
<Compile Include="Images\VirtualMachineImageBaseCmdlet.cs" />
180+
<Compile Include="Models\PSOperationResponse.cs" />
180181
<Compile Include="Models\PSUsage.cs" />
181182
<Compile Include="Models\PSVirtualMachineExtensionImage.cs" />
182183
<Compile Include="Models\PSVirtualMachineImage.cs" />

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,8 +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-
7675
Mapper.CreateMap<FROM.ComputeLongRunningOperationResponse, TO.PSComputeLongRunningOperation>();
76+
Mapper.CreateMap<Microsoft.Azure.AzureOperationResponse, TO.PSOperationResponse>();
7777
}
7878
}
7979
}

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

Lines changed: 62 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@
2121

2222
namespace Microsoft.Azure.Commands.Compute
2323
{
24-
[Cmdlet(VerbsCommon.Get, ProfileNouns.VirtualMachineExtensionImage)]
25-
[OutputType(typeof(PSVirtualMachineExtensionImage))]
24+
[Cmdlet(VerbsCommon.Get,
25+
ProfileNouns.VirtualMachineExtensionImage)]
26+
[OutputType(typeof(PSVirtualMachineExtensionImageDetails))]
2627
public class GetAzureVMExtensionImageCommand : VirtualMachineExtensionImageBaseCmdlet
2728
{
2829
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true), ValidateNotNullOrEmpty]
@@ -37,34 +38,73 @@ public class GetAzureVMExtensionImageCommand : VirtualMachineExtensionImageBaseC
3738
[Parameter, ValidateNotNullOrEmpty]
3839
public string FilterExpression { get; set; }
3940

41+
[Parameter(Mandatory = false, ValueFromPipelineByPropertyName = true)]
42+
public string Version { get; set; }
43+
4044
public override void ExecuteCmdlet()
4145
{
4246
base.ExecuteCmdlet();
4347

44-
var parameters = new VirtualMachineExtensionImageListVersionsParameters
48+
if (string.IsNullOrEmpty(this.Version))
49+
{
50+
var parameters = new VirtualMachineExtensionImageListVersionsParameters
51+
{
52+
Location = Location.Canonicalize(),
53+
PublisherName = PublisherName,
54+
Type = Type,
55+
FilterExpression = FilterExpression
56+
};
57+
58+
VirtualMachineImageResourceList result = this.VirtualMachineExtensionImageClient.ListVersions(parameters);
59+
60+
var images = from r in result.Resources
61+
select new PSVirtualMachineExtensionImage
62+
{
63+
RequestId = result.RequestId,
64+
StatusCode = result.StatusCode,
65+
Id = r.Id,
66+
Location = r.Location,
67+
Version = r.Name,
68+
PublisherName = this.PublisherName,
69+
Type = this.Type,
70+
FilterExpression = this.FilterExpression
71+
};
72+
73+
WriteObject(images, true);
74+
}
75+
else
4576
{
46-
Location = Location.Canonicalize(),
47-
PublisherName = PublisherName,
48-
Type = Type,
49-
FilterExpression = FilterExpression
50-
};
5177

52-
VirtualMachineImageResourceList result = this.VirtualMachineExtensionImageClient.ListVersions(parameters);
78+
var parameters = new VirtualMachineExtensionImageGetParameters
79+
{
80+
Location = Location.Canonicalize(),
81+
PublisherName = PublisherName,
82+
Type = Type,
83+
FilterExpression = FilterExpression,
84+
Version = Version
85+
};
86+
87+
VirtualMachineExtensionImageGetResponse result = this.VirtualMachineExtensionImageClient.Get(parameters);
5388

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-
};
89+
var image = new PSVirtualMachineExtensionImageDetails
90+
{
91+
RequestId = result.RequestId,
92+
StatusCode = result.StatusCode,
93+
Id = result.VirtualMachineExtensionImage.Id,
94+
Location = result.VirtualMachineExtensionImage.Location,
95+
Name = result.VirtualMachineExtensionImage.Name,
96+
HandlerSchema = result.VirtualMachineExtensionImage.HandlerSchema,
97+
OperatingSystem = result.VirtualMachineExtensionImage.OperatingSystem,
98+
ComputeRole = result.VirtualMachineExtensionImage.ComputeRole,
99+
SupportsMultipleExtensions = result.VirtualMachineExtensionImage.SupportsMultipleExtensions,
100+
VMScaleSetEnabled = result.VirtualMachineExtensionImage.VMScaleSetEnabled,
101+
PublisherName = this.PublisherName,
102+
Type = this.Type,
103+
Version = this.Version
104+
};
66105

67-
WriteObject(images, true);
106+
WriteObject(image);
107+
}
68108
}
69109
}
70110
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ public override void ExecuteCmdlet()
4343
{
4444
base.ExecuteCmdlet();
4545

46+
WriteWarning(Properties.Resources.DeprecationOfGetAzureVMExtensionImageDetail);
47+
4648
var parameters = new VirtualMachineExtensionImageGetParameters
4749
{
4850
Location = Location.Canonicalize(),

0 commit comments

Comments
 (0)