Skip to content

Commit 0fc9fb2

Browse files
committed
Merge branch 'dev' of https://github.com/Azure/azure-powershell into dev
2 parents c7ee618 + a58af04 commit 0fc9fb2

File tree

96 files changed

+15242
-3964
lines changed

Some content is hidden

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

96 files changed

+15242
-3964
lines changed

ChangeLog.txt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
2015.05.01 version 0.9.1
1+
2015.05.04 version 0.9.1
22
* Azure SQL Database: new support for configuring audit retention.
33
* Azure Automation
44
* Added Automation cmdlets support in AzureResourceManager mode
@@ -26,6 +26,15 @@
2626
* Set-AzureAutomationModule
2727
* Start-AzureAutomationDscCompilationJob
2828
* Unregister-AzureAutomationDscNode
29+
* Azure Key Vault
30+
* Added new cmdlets for key vault management in AzureResourceManager mode
31+
* New-AzureKeyVault
32+
* Get-AzureKeyVault
33+
* Remove-AzureKeyVault
34+
* Set-AzureKeyVaultAccessPolicy
35+
* Remove-AzureKeyVaultAccessPolicy
36+
* Added new cmdlet for secret management in AzureResourceManager mode
37+
* Set-AzureKeyVaultSecretAttribute
2938

3039
2015.04.29 version 0.9.0
3140
* Azure Compute

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<meta name="google-site-verification" content="tZgbB2s-hTI0IePQQRCjHqL_Vf0j_XJmehXAHJerrn4" />
12
# Microsoft Azure PowerShell
23

34
This repository contains a set of PowerShell cmdlets for developers and administrators to develop, deploy and manage Microsoft Azure applications.

setup/azurecmdfiles.wxi

Lines changed: 602 additions & 362 deletions
Large diffs are not rendered by default.

src/Common/Commands.Profile/Models/PsAzureSubscription.cs

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

15+
using System.Linq;
16+
using Microsoft.Azure.Common.Authentication;
1517
using Microsoft.Azure.Common.Authentication.Models;
1618

1719
namespace Microsoft.WindowsAzure.Commands.Profile.Models
1820
{
1921
public class PSAzureSubscription
2022
{
23+
public PSAzureSubscription() {}
24+
public PSAzureSubscription(AzureSubscription subscription, AzureProfile profile)
25+
{
26+
SubscriptionId = subscription.Id.ToString();
27+
SubscriptionName = subscription.Name;
28+
Environment = subscription.Environment;
29+
SupportedModes = subscription.GetProperty(AzureSubscription.Property.SupportedModes);
30+
DefaultAccount = subscription.Account;
31+
Accounts = profile.Accounts.Values.Where(a => a.HasSubscription(subscription.Id)).ToArray();
32+
IsDefault = subscription.IsPropertySet(AzureSubscription.Property.Default);
33+
IsCurrent = profile.Context.Subscription != null && profile.Context.Subscription.Id == subscription.Id;
34+
CurrentStorageAccountName = subscription.GetProperty(AzureSubscription.Property.StorageAccount);
35+
TenantId = subscription.GetPropertyAsArray(AzureSubscription.Property.Tenants).FirstOrDefault();
36+
}
37+
2138
public string SubscriptionId { get; set; }
2239
public string SubscriptionName { get; set; }
2340
public string Environment { get; set; }

src/Common/Commands.Profile/Models/PsAzureSubscriptionExtended.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public PSAzureSubscriptionExtended(PSAzureSubscription subscription)
2929
base.Accounts = subscription.Accounts;
3030
base.IsDefault = subscription.IsDefault;
3131
base.IsCurrent = subscription.IsCurrent;
32+
base.TenantId = subscription.TenantId;
3233
}
3334
public string ActiveDirectoryUserId { get; set; }
3435
public AzureAccount Account { get; set; }

src/Common/Commands.Profile/Subscription/GetAzureSubscription.cs

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ namespace Microsoft.WindowsAzure.Commands.Profile
3232
/// the AzureProfile layer.
3333
/// </summary>
3434
[Cmdlet(VerbsCommon.Get, "AzureSubscription", DefaultParameterSetName = "ByName")]
35-
[OutputType(typeof(AzureSubscription))]
35+
[OutputType(typeof(PSAzureSubscription))]
3636
public class GetAzureSubscriptionCommand : SubscriptionCmdletBase
3737
{
3838
public GetAzureSubscriptionCommand()
@@ -141,29 +141,12 @@ private void WriteSubscriptions(IEnumerable<AzureSubscription> subscriptions)
141141
}
142142
else
143143
{
144-
subscriptionOutput = subscriptions.Select(ConstructPsAzureSubscription);
144+
subscriptionOutput = subscriptions.Select(s => new PSAzureSubscription(s, ProfileClient.Profile));
145145
}
146146

147147
WriteObject(subscriptionOutput, true);
148148
}
149149

150-
private PSAzureSubscription ConstructPsAzureSubscription(AzureSubscription subscription)
151-
{
152-
PSAzureSubscription psObject = new PSAzureSubscription();
153-
154-
psObject.SubscriptionId = subscription.Id.ToString();
155-
psObject.SubscriptionName = subscription.Name;
156-
psObject.Environment = subscription.Environment;
157-
psObject.SupportedModes = subscription.GetProperty(AzureSubscription.Property.SupportedModes);
158-
psObject.DefaultAccount = subscription.Account;
159-
psObject.Accounts = ProfileClient.Profile.Accounts.Values.Where(a => a.HasSubscription(subscription.Id)).ToArray();
160-
psObject.IsDefault = subscription.IsPropertySet(AzureSubscription.Property.Default);
161-
psObject.IsCurrent = Profile.Context.Subscription != null && Profile.Context.Subscription.Id == subscription.Id;
162-
psObject.CurrentStorageAccountName = subscription.GetProperty(AzureSubscription.Property.StorageAccount);
163-
psObject.TenantId = subscription.GetPropertyAsArray(AzureSubscription.Property.Tenants).FirstOrDefault();
164-
return psObject;
165-
}
166-
167150
private PSAzureSubscriptionExtended ConstructPsAzureSubscriptionExtended(AzureSubscription subscription, IClientFactory clientFactory)
168151
{
169152
using (var client = clientFactory.CreateClient<ManagementClient>(Profile, subscription, AzureEnvironment.Endpoint.ServiceManagement))
@@ -172,8 +155,8 @@ private PSAzureSubscriptionExtended ConstructPsAzureSubscriptionExtended(AzureSu
172155
var environment = ProfileClient.GetEnvironmentOrDefault(subscription.Environment);
173156
var account = ProfileClient.Profile.Accounts[subscription.Account];
174157
bool isCert = account.Type == AzureAccount.AccountType.Certificate;
175-
176-
PSAzureSubscriptionExtended result = new PSAzureSubscriptionExtended(ConstructPsAzureSubscription(subscription))
158+
var psAzureSubscription = new PSAzureSubscription(subscription, ProfileClient.Profile);
159+
PSAzureSubscriptionExtended result = new PSAzureSubscriptionExtended(psAzureSubscription)
177160
{
178161
AccountAdminLiveEmailId = response.AccountAdminLiveEmailId,
179162
ActiveDirectoryUserId = subscription.Account,

src/Common/Commands.Profile/Subscription/SelectAzureSubscription.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,14 @@
2020
using Microsoft.WindowsAzure.Commands.Common.Properties;
2121
using Microsoft.WindowsAzure.Commands.Utilities.Profile;
2222
using Microsoft.Azure.Common.Authentication;
23+
using Microsoft.WindowsAzure.Commands.Profile.Models;
2324

2425
namespace Microsoft.WindowsAzure.Commands.Profile
2526
{
2627

2728

2829
[Cmdlet(VerbsCommon.Select, "AzureSubscription", DefaultParameterSetName = SelectSubscriptionByNameParameterSet)]
29-
[OutputType(typeof(AzureSubscription))]
30+
[OutputType(typeof(PSAzureSubscription))]
3031
public class SelectAzureSubscriptionCommand : SubscriptionCmdletBase
3132
{
3233
private const string SelectSubscriptionByIdParameterSet = "SelectSubscriptionByIdParameterSet";
@@ -123,7 +124,7 @@ public override void ExecuteCmdlet()
123124

124125
if (PassThru.IsPresent && azureSubscription != null)
125126
{
126-
WriteObject(azureSubscription);
127+
WriteObject(new PSAzureSubscription(azureSubscription, ProfileClient.Profile));
127128
}
128129
}
129130

src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/Commands.ApiManagement.Test.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@
184184
<None Include="SessionRecords\Microsoft.Azure.Commands.ApiManagement.Test.ScenarioTests.ApiManagementTests\TestUpdateApiManagementDeployment.json">
185185
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
186186
</None>
187-
<None Include="SessionRecords\Microsoft.Azure.Commands.ApiManagement.Test.ScenarioTests.ApiManagementTests\TestUpdateApiManagementDeploymentWithHelpersAndPipline.json">
187+
<None Include="SessionRecords\Microsoft.Azure.Commands.ApiManagement.Test.ScenarioTests.ApiManagementTests\TestUpdateDeploymentComplex.json">
188188
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
189189
</None>
190190
<None Include="testcertificate.pfx">

src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/ScenarioTests/ApiManagementTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ public void TestUpdateApiManagementDeployment()
114114

115115
[Fact]
116116
[Trait(Category.AcceptanceType, Category.CheckIn)]
117-
public void TestUpdateApiManagementDeploymentWithHelpersAndPipline()
117+
public void TestUpdateDeploymentComplex()
118118
{
119119
RunPowerShellTest("Test-UpdateApiManagementDeploymentWithHelpersAndPipline");
120120
}

src/ResourceManager/ApiManagement/Commands.ApiManagement/Commands.ApiManagement.csproj

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,29 @@
2222
<DefineConstants>TRACE;DEBUG;CODE_ANALYSIS</DefineConstants>
2323
<ErrorReport>prompt</ErrorReport>
2424
<WarningLevel>4</WarningLevel>
25+
<RunCodeAnalysis>true</RunCodeAnalysis>
26+
<UseVSHostingProcess>true</UseVSHostingProcess>
2527
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
28+
<Prefer32Bit>false</Prefer32Bit>
2629
</PropertyGroup>
2730
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
2831
<DebugType>pdbonly</DebugType>
2932
<Optimize>true</Optimize>
30-
<OutputPath>bin\Release\</OutputPath>
31-
<DefineConstants>TRACE</DefineConstants>
33+
<OutputPath>..\..\..\Package\Release\ResourceManager\AzureResourceManager\ApiManagement\</OutputPath>
34+
<DefineConstants>TRACE;SIGN</DefineConstants>
35+
<PlatformTarget>AnyCPU</PlatformTarget>
36+
<CodeAnalysisLogFile>bin\Release\Management.Automation.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
37+
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
38+
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
3239
<ErrorReport>prompt</ErrorReport>
33-
<WarningLevel>4</WarningLevel>
40+
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
41+
<CodeAnalysisRuleSetDirectories>;$(ProgramFiles)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\Rule Sets</CodeAnalysisRuleSetDirectories>
42+
<CodeAnalysisRuleDirectories>;$(ProgramFiles)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\FxCop\Rules</CodeAnalysisRuleDirectories>
43+
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
44+
<SignAssembly>true</SignAssembly>
45+
<AssemblyOriginatorKeyFile>MSSharedLibKey.snk</AssemblyOriginatorKeyFile>
46+
<DelaySign>true</DelaySign>
47+
<Prefer32Bit>false</Prefer32Bit>
3448
</PropertyGroup>
3549
<ItemGroup>
3650
<Reference Include="AutoMapper">
@@ -188,6 +202,7 @@
188202
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
189203
</Content>
190204
<None Include="packages.config" />
205+
<None Include="MSSharedLibKey.snk" />
191206
</ItemGroup>
192207
<ItemGroup>
193208
<WCFMetadata Include="Service References\" />

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,12 @@
262262
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineNetworkInterfaceTests\TestVirtualMachineSingleNetworkInterface.json">
263263
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
264264
</None>
265+
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineProfileTests\TestVirtualMachineProfileWithoutAUC.json">
266+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
267+
</None>
268+
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineTests\TestLinuxVirtualMachine.json">
269+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
270+
</None>
265271
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineTests\TestVirtualMachine.json">
266272
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
267273
</None>
@@ -295,6 +301,9 @@
295301
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineTests\TestVirtualMachineTags.json">
296302
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
297303
</None>
304+
<None Include="SessionRecords\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineTests\TestVirtualMachineWithVMAgentAutoUpdate.json">
305+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
306+
</None>
298307
</ItemGroup>
299308
<ItemGroup>
300309
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,12 @@ public void TestVirtualMachineProfile()
2525
{
2626
ComputeTestController.NewInstance.RunPsTest("Test-VirtualMachineProfile");
2727
}
28+
29+
[Fact]
30+
[Trait(Category.AcceptanceType, Category.CheckIn)]
31+
public void TestVirtualMachineProfileWithoutAUC()
32+
{
33+
ComputeTestController.NewInstance.RunPsTest("Test-VirtualMachineProfileWithoutAUC");
34+
}
2835
}
2936
}

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

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,3 +165,118 @@ function Test-VirtualMachineProfile
165165
Assert-AreEqual $sshPath $p.OSProfile.LinuxConfiguration.SshConfiguration.PublicKeys[1].Path;
166166
Assert-AreEqual $true $p.OSProfile.LinuxConfiguration.DisablePasswordAuthentication
167167
}
168+
169+
<#
170+
.SYNOPSIS
171+
Test Virtual Machine Profile without AdditionalUnattendContent
172+
#>
173+
function Test-VirtualMachineProfileWithoutAUC
174+
{
175+
# VM Profile & Hardware
176+
$vmsize = 'Standard_A2';
177+
$vmname = 'pstestvm' + ((Get-Random) % 10000);
178+
$p = New-AzureVMConfig -VMName $vmname -VMSize $vmsize;
179+
Assert-AreEqual $p.HardwareProfile.VirtualMachineSize $vmsize;
180+
181+
# Network
182+
$ipname = 'hpfip' + ((Get-Random) % 10000);
183+
$ipRefUri = "https://test.foo.bar/$ipname";
184+
$nicName = $ipname + 'nic1';
185+
$publicIPName = $ipname + 'name1';
186+
187+
$p = Add-AzureVMNetworkInterface -VM $p -Id $ipRefUri;
188+
189+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1;
190+
Assert-AreEqual $p.NetworkProfile.NetworkInterfaces[0].ReferenceUri $ipRefUri;
191+
192+
# Storage
193+
$stoname = 'hpfteststo' + ((Get-Random) % 10000);
194+
$stotype = 'Standard_GRS';
195+
196+
$osDiskName = 'osDisk';
197+
$osDiskCaching = 'ReadWrite';
198+
$osDiskVhdUri = "https://$stoname.blob.core.windows.net/test/os.vhd";
199+
$dataDiskVhdUri1 = "https://$stoname.blob.core.windows.net/test/data1.vhd";
200+
$dataDiskVhdUri2 = "https://$stoname.blob.core.windows.net/test/data2.vhd";
201+
$dataDiskVhdUri3 = "https://$stoname.blob.core.windows.net/test/data3.vhd";
202+
203+
$p = Set-AzureVMOSDisk -VM $p -Name $osDiskName -VhdUri $osDiskVhdUri -Caching $osDiskCaching -CreateOption Empty;
204+
205+
$p = Add-AzureVMDataDisk -VM $p -Name 'testDataDisk1' -Caching 'ReadOnly' -DiskSizeInGB 10 -Lun 0 -VhdUri $dataDiskVhdUri1 -CreateOption Empty;
206+
$p = Add-AzureVMDataDisk -VM $p -Name 'testDataDisk2' -Caching 'ReadOnly' -DiskSizeInGB 11 -Lun 1 -VhdUri $dataDiskVhdUri2 -CreateOption Empty;
207+
$p = Add-AzureVMDataDisk -VM $p -Name 'testDataDisk3' -Caching 'ReadOnly' -DiskSizeInGB 12 -Lun 2 -VhdUri $dataDiskVhdUri3 -CreateOption Empty;
208+
$p = Remove-AzureVMDataDisk -VM $p -Name 'testDataDisk3';
209+
210+
Assert-AreEqual $p.StorageProfile.OSDisk.Caching $osDiskCaching;
211+
Assert-AreEqual $p.StorageProfile.OSDisk.Name $osDiskName;
212+
Assert-AreEqual $p.StorageProfile.OSDisk.VirtualHardDisk.Uri $osDiskVhdUri;
213+
Assert-AreEqual $p.StorageProfile.DataDisks.Count 2;
214+
Assert-AreEqual $p.StorageProfile.DataDisks[0].Caching 'ReadOnly';
215+
Assert-AreEqual $p.StorageProfile.DataDisks[0].DiskSizeGB 10;
216+
Assert-AreEqual $p.StorageProfile.DataDisks[0].Lun 0;
217+
Assert-AreEqual $p.StorageProfile.DataDisks[0].VirtualHardDisk.Uri $dataDiskVhdUri1;
218+
Assert-AreEqual $p.StorageProfile.DataDisks[1].Caching 'ReadOnly';
219+
Assert-AreEqual $p.StorageProfile.DataDisks[1].DiskSizeGB 11;
220+
Assert-AreEqual $p.StorageProfile.DataDisks[1].Lun 1;
221+
Assert-AreEqual $p.StorageProfile.DataDisks[1].VirtualHardDisk.Uri $dataDiskVhdUri2;
222+
223+
# Windows OS
224+
$user = "Foo12";
225+
$password = 'BaR@000' + ((Get-Random) % 10000);
226+
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force;
227+
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);
228+
$computerName = 'test';
229+
$vhdContainer = "https://$stoname.blob.core.windows.net/test";
230+
$img = 'a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-201503.01-en.us-127GB.vhd';
231+
232+
$winRMCertUrl = "http://keyVaultName.vault.azure.net/secrets/secretName/secretVersion";
233+
$timeZone = "Pacific Standard Time";
234+
$custom = "echo 'Hello World'";
235+
$encodedCustom = "ZWNobyAnSGVsbG8gV29ybGQn";
236+
237+
$p = Set-AzureVMOperatingSystem -VM $p -Windows -ComputerName $computerName -Credential $cred -CustomData $custom -WinRMHttp -WinRMHttps -WinRMCertificateUrl $winRMCertUrl -ProvisionVMAgent -EnableAutoUpdate -TimeZone $timeZone;
238+
$p = Set-AzureVMSourceImage -VM $p -Name $img;
239+
$subid = (Get-AzureSubscription -Current).SubscriptionId;
240+
241+
$referenceUri = "/subscriptions/" + $subid + "/resourceGroups/RgTest1/providers/Microsoft.KeyVault/vaults/TestVault123";
242+
$certStore = "My";
243+
$certUrl = "https://testvault123.vault.azure.net/secrets/Test1/514ceb769c984Assert-True379a7e0230bdd703272";
244+
$p = Add-AzureVMSecret -VM $p -SourceVaultId $referenceUri -CertificateStore $certStore -CertificateUrl $certUrl;
245+
246+
$referenceUri2 = "/subscriptions/" + $subid + "/resourceGroups/RgTest1/providers/Microsoft.KeyVault/vaults/TestVault456";
247+
$p = Add-AzureVMSecret -VM $p -SourceVaultId $referenceUri2 -CertificateStore $certStore -CertificateUrl $certUrl;
248+
249+
$certStore2 = "My2";
250+
$certUrl2 = "https://testvault123.vault.azure.net/secrets/Test1/514ceb769c984379a7e0230bddaaaaaa";
251+
$p = Add-AzureVMSecret -VM $p -SourceVaultId $referenceUri -CertificateStore $certStore2 -CertificateUrl $certUrl2;
252+
253+
Assert-AreEqual $p.OSProfile.AdminUsername $user;
254+
Assert-AreEqual $p.OSProfile.ComputerName $computerName;
255+
Assert-AreEqual $p.OSProfile.AdminPassword $password;
256+
Assert-AreEqual $p.StorageProfile.SourceImage.ReferenceUri ('/' + $subid + '/services/images/' + $img);
257+
Assert-AreEqual $p.OSProfile.Secrets[0].SourceVault.ReferenceUri $referenceUri;
258+
Assert-AreEqual $p.OSProfile.Secrets[0].VaultCertificates[0].CertificateStore $certStore;
259+
Assert-AreEqual $p.OSProfile.Secrets[0].VaultCertificates[0].CertificateUrl $certUrl;
260+
Assert-AreEqual $p.OSProfile.Secrets[0].SourceVault.ReferenceUri $referenceUri;
261+
Assert-AreEqual $p.OSProfile.Secrets[0].VaultCertificates[1].CertificateStore $certStore2;
262+
Assert-AreEqual $p.OSProfile.Secrets[0].VaultCertificates[1].CertificateUrl $certUrl2;
263+
Assert-AreEqual $p.OSProfile.Secrets[1].SourceVault.ReferenceUri $referenceUri2;
264+
Assert-AreEqual $p.OSProfile.Secrets[1].VaultCertificates[0].CertificateStore $certStore;
265+
Assert-AreEqual $p.OSProfile.Secrets[1].VaultCertificates[0].CertificateUrl $certUrl;
266+
Assert-AreEqual $encodedCustom $p.OSProfile.CustomData;
267+
268+
# Verify WinRM
269+
Assert-Null $p.OSProfile.WindowsConfiguration.WinRMConfiguration.Listeners[0].CertificateUrl;
270+
Assert-AreEqual "http" $p.OSProfile.WindowsConfiguration.WinRMConfiguration.Listeners[0].Protocol ;
271+
Assert-AreEqual $winRMCertUrl $p.OSProfile.WindowsConfiguration.WinRMConfiguration.Listeners[1].CertificateUrl ;
272+
Assert-AreEqual "https" $p.OSProfile.WindowsConfiguration.WinRMConfiguration.Listeners[1].Protocol ;
273+
274+
# Verify Windows Provisioning Setup
275+
Assert-AreEqual $true $p.OSProfile.WindowsConfiguration.ProvisionVMAgent;
276+
Assert-AreEqual $true $p.OSProfile.WindowsConfiguration.EnableAutomaticUpdates;
277+
Assert-AreEqual $timeZone $p.OSProfile.WindowsConfiguration.TimeZone;
278+
279+
# Verify Additional Unattend Content
280+
Assert-Null $p.OSProfile.WindowsConfiguration.AdditionalUnattendContents "NULL";
281+
Assert-False {$p.OSProfile.WindowsConfiguration.AdditionalUnattendContents.IsInitialized};
282+
}

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,20 @@ public void TestVirtualMachine()
2626
ComputeTestController.NewInstance.RunPsTest("Test-VirtualMachine");
2727
}
2828

29+
[Fact]
30+
[Trait(Category.AcceptanceType, Category.CheckIn)]
31+
public void TestLinuxVirtualMachine()
32+
{
33+
ComputeTestController.NewInstance.RunPsTest("Test-LinuxVirtualMachine");
34+
}
35+
36+
[Fact]
37+
[Trait(Category.AcceptanceType, Category.CheckIn)]
38+
public void TestVirtualMachineWithVMAgentAutoUpdate()
39+
{
40+
ComputeTestController.NewInstance.RunPsTest("Test-VirtualMachineWithVMAgentAutoUpdate");
41+
}
42+
2943
[Fact]
3044
[Trait(Category.AcceptanceType, Category.CheckIn)]
3145
public void TestVirtualMachineImageList()

0 commit comments

Comments
 (0)