Skip to content

Commit 81c2187

Browse files
authored
Merge main into preview branch (#24591)
2 parents 1cda116 + 37badb2 commit 81c2187

File tree

1,623 files changed

+404436
-81368
lines changed

Some content is hidden

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

1,623 files changed

+404436
-81368
lines changed

build.proj

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -256,13 +256,7 @@
256256
<Exec Command="$(PowerShellCoreCommandPrefix) &quot;. $(RepoTools)CleanupBuild.ps1 -BuildConfig $(Configuration) -GenerateDocumentationFile $(GenerateDocumentationFile) &quot;" />
257257

258258
<Error Condition="'$(NuGetKey)' == ''" Text="You must provide the NuGetKey parameter to the build: /p:NuGetKey=YOUR_PUBLISHING_KEY" />
259-
<Exec Command="$(PowerShellCoreCommandPrefix) &quot;. $(RepoTools)PublishModules.ps1 -TargetBuild $(TargetBuild) -IsNetCore:$$(NetCore) -BuildConfig $(Configuration) -Scope $(Scope) -ApiKey $(NuGetKey) -RepositoryLocation /&quot;$(NuGetPublishingSource)/&quot;&quot; -NugetExe $(NuGetCommand)" />
260-
</Target>
261-
262-
<Target Name="BuildInstaller" AfterTargets="Publish" Condition="('$(Scope)' == 'All' or '$(Scope)' == 'Latest' or '$(Scope)' == 'Netcore')">
263-
<Exec Command="$(PowerShellCoreCommandPrefix) &quot;. Register-PSRepository -Name MSIcreationrepository -SourceLocation $(RepoArtifacts) -InstallationPolicy Trusted &quot;" />
264-
<Exec Command="$(PowerShellCoreCommandPrefix) &quot;. $(RepoRoot)/setup/generate.ps1 -repository MSIcreationrepository &quot;" />
265-
<Exec Command="$(PowerShellCoreCommandPrefix) &quot;. Unregister-PSRepository -Name MSIcreationrepository &quot;" />
259+
<Exec Command="$(PowerShellCoreCommandPrefix) &quot;. $(RepoTools)PublishModules.ps1 -TargetBuild $(TargetBuild) -IsNetCore:$$(NetCore) -BuildConfig $(Configuration) -Scope $(Scope) -ApiKey $(NuGetKey) -RepositoryLocation &quot;$(NuGetPublishingSource)&quot;&quot; -NugetExe $(NuGetCommand)" />
266260
</Target>
267261

268262
<Target Name="BuildImages">

documentation/breaking-changes/upcoming-breaking-changes.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Upcoming breaking changes in Azure PowerShell
22

3+
## General
4+
5+
- In the upcoming major release of Azure PowerShell (Az 12.0.0), the `DisplaySecretsWarning` configuration option will be activated by default. A warning message will be shown when secrets are detected in the output of a cmdlet.
6+
For additional context, please visit [Hardening your defense in depth with secrets awareness in Azure command line tools](https://techcommunity.microsoft.com/t5/azure-tools-blog/hardening-your-defense-in-depth-with-secrets-awareness-in-azure/ba-p/4049883).
7+
For command usage details, please refer to [Protect secrets in Azure PowerShell](https://go.microsoft.com/fwlink/?linkid=2258844).
8+
39
## Az.Accounts
410

511
### `Clear-AzConfig`

src/Batch/Batch.Test/Batch.Test.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
</PropertyGroup>
1414

1515
<ItemGroup>
16-
<PackageReference Include="Microsoft.Azure.Batch" Version="16.0.0" />
16+
<PackageReference Include="Microsoft.Azure.Batch" Version="16.2.0" />
1717
<PackageReference Include="Microsoft.Azure.Management.Batch" Version="15.0.0" />
1818
<PackageReference Include="WindowsAzure.Storage" Version="9.3.0" />
1919
</ItemGroup>

src/Batch/Batch.Test/Pools/GetBatchPoolNodeCountsCommandTests.cs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ public void WhenGetBatchPoolNodeCountsCommandIsCalledWithoutFilter_ShouldReturnA
7474
unknown: 11,
7575
unusable: 12,
7676
waitingForStartTask: 13,
77-
total: 91), // Total
77+
total: 91,
78+
upgradingOS: 1), // Total
7879
LowPriority = new ProxyModels.NodeCounts(
7980
creating: 1,
8081
idle: 2,
@@ -89,7 +90,8 @@ public void WhenGetBatchPoolNodeCountsCommandIsCalledWithoutFilter_ShouldReturnA
8990
unknown: 11,
9091
unusable: 12,
9192
waitingForStartTask: 13,
92-
total: 91), // Total
93+
total: 91,
94+
upgradingOS: 1), // Total
9395
};
9496

9597
var poolNodeCounts2 = new ProxyModels.PoolNodeCounts()
@@ -109,7 +111,8 @@ public void WhenGetBatchPoolNodeCountsCommandIsCalledWithoutFilter_ShouldReturnA
109111
unknown: 21,
110112
unusable: 22,
111113
waitingForStartTask: 23,
112-
total: 221), // Total
114+
total: 221,
115+
upgradingOS: 1), // Total
113116
LowPriority = new ProxyModels.NodeCounts(
114117
creating: 11,
115118
idle: 12,
@@ -124,7 +127,8 @@ public void WhenGetBatchPoolNodeCountsCommandIsCalledWithoutFilter_ShouldReturnA
124127
unknown: 21,
125128
unusable: 22,
126129
waitingForStartTask: 23,
127-
total: 221), // Total
130+
total: 221,
131+
upgradingOS: 1), // Total
128132
};
129133

130134
// Simulate node state counts for two pools are returned
@@ -246,6 +250,7 @@ public void WhenPSNodeCountsFormatObjectIsCalled_ShouldSerlializeNodeCountsToStr
246250
const int unusable = 12;
247251
const int waitingForStartTask = 13;
248252
const int total = 91;
253+
const int upgradingOS = 1;
249254

250255
var poolNodeCounts = new ProxyModels.PoolNodeCounts()
251256
{
@@ -265,7 +270,8 @@ public void WhenPSNodeCountsFormatObjectIsCalled_ShouldSerlializeNodeCountsToStr
265270
unknown: unknown,
266271
unusable: unusable,
267272
waitingForStartTask: waitingForStartTask,
268-
total: total), // Total
273+
total: total,
274+
upgradingOS: upgradingOS), // Total
269275
// all zero properties
270276
LowPriority = new ProxyModels.NodeCounts(
271277
creating: 0,
@@ -281,7 +287,8 @@ public void WhenPSNodeCountsFormatObjectIsCalled_ShouldSerlializeNodeCountsToStr
281287
unknown: 0,
282288
unusable: 0,
283289
waitingForStartTask: 0,
284-
total: 0), // Total
290+
total: 0,
291+
upgradingOS: 0), // Total
285292
};
286293

287294
BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys();

src/Batch/Batch.Test/Pools/NewBatchPoolCommandTests.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
using System.Management.Automation;
2525
using Xunit;
2626
using BatchClient = Microsoft.Azure.Commands.Batch.Models.BatchClient;
27+
using Microsoft.Azure.Commands.Common.Strategies;
2728

2829
namespace Microsoft.Azure.Commands.Batch.Test.Pools
2930
{
@@ -95,18 +96,27 @@ public void NewBatchPoolParametersGetPassedToRequestTest()
9596
cmdlet.InterComputeNodeCommunicationEnabled = true;
9697
cmdlet.TaskSlotsPerNode = 4;
9798
cmdlet.Metadata = new Dictionary<string, string> { { "meta1", "value1" } };
99+
cmdlet.ResourceTag = new Dictionary<string, string> { { "resource1", "value1" } };
98100
cmdlet.ResizeTimeout = TimeSpan.FromMinutes(20);
99101
cmdlet.StartTask = new PSStartTask("cmd /c echo start task");
100102
cmdlet.TargetDedicatedComputeNodes = 3;
101103
cmdlet.TargetLowPriorityComputeNodes = 2;
102104
cmdlet.TargetNodeCommunicationMode = Microsoft.Azure.Batch.Common.NodeCommunicationMode.Simplified;
103105
cmdlet.TaskSchedulingPolicy = new PSTaskSchedulingPolicy(Azure.Batch.Common.ComputeNodeFillType.Spread);
106+
cmdlet.UpgradePolicy = new PSUpgradePolicy(Azure.Batch.Common.UpgradeMode.Automatic);
104107
cmdlet.VirtualMachineConfiguration = new PSVirtualMachineConfiguration(new PSImageReference("offer", "publisher", "sku"), "node agent");
105108
cmdlet.VirtualMachineConfiguration.Extensions = new List<PSVMExtension>
106109
{
107110
new PSVMExtension("sample-extension", "sample-publisher", "sample-type") { EnableAutomaticUpgrade = true },
108111
};
109112
cmdlet.VirtualMachineConfiguration.ContainerConfiguration = new PSContainerConfiguration() { Type = "CriCompatible" };
113+
cmdlet.VirtualMachineConfiguration.SecurityProfile = new PSSecurityProfile();
114+
cmdlet.VirtualMachineConfiguration.SecurityProfile.SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch;
115+
cmdlet.VirtualMachineConfiguration.SecurityProfile.EncryptionAtHost = true;
116+
cmdlet.VirtualMachineConfiguration.SecurityProfile.UefiSettings = new PSUefiSettings();
117+
cmdlet.VirtualMachineConfiguration.SecurityProfile.UefiSettings.SecureBootEnabled = true;
118+
cmdlet.VirtualMachineConfiguration.SecurityProfile.UefiSettings.VTpmEnabled = true;
119+
cmdlet.VirtualMachineConfiguration.ServiceArtifactReference = new PSServiceArtifactReference("testid");
110120
cmdlet.VirtualMachineSize = "small";
111121
cmdlet.MountConfiguration = new[] {
112122
new PSMountConfiguration(new PSAzureBlobFileSystemConfiguration("foo", "bar", "baz", AzureStorageAuthenticationKey.FromAccountKey("abc"))),
@@ -141,21 +151,27 @@ public void NewBatchPoolParametersGetPassedToRequestTest()
141151
Assert.Equal(cmdlet.TaskSlotsPerNode, requestParameters.TaskSlotsPerNode);
142152
Assert.Equal(cmdlet.Metadata.Count, requestParameters.Metadata.Count);
143153
Assert.Equal(cmdlet.Metadata["meta1"], requestParameters.Metadata[0].Value);
154+
Assert.Equal(cmdlet.ResourceTag.Count, requestParameters.ResourceTags.Count);
155+
Assert.Equal(cmdlet.ResourceTag["resource1"], requestParameters.ResourceTags["resource1"]);
144156
Assert.Equal(cmdlet.ResizeTimeout, requestParameters.ResizeTimeout);
145157
Assert.Equal(cmdlet.StartTask.CommandLine, requestParameters.StartTask.CommandLine);
146158
Assert.Equal(cmdlet.TargetDedicatedComputeNodes, requestParameters.TargetDedicatedNodes);
147159
Assert.Equal(cmdlet.TargetLowPriorityComputeNodes, requestParameters.TargetLowPriorityNodes);
148160
Assert.Equal(cmdlet.TaskSchedulingPolicy.ComputeNodeFillType.ToString(), requestParameters.TaskSchedulingPolicy.NodeFillType.ToString());
161+
Assert.Equal(cmdlet.UpgradePolicy.Mode.ToString(), requestParameters.UpgradePolicy.Mode.ToString());
149162
Assert.Equal(cmdlet.TargetNodeCommunicationMode.ToString(), NodeCommunicationMode.Simplified.ToString());
150163
Assert.Equal(cmdlet.VirtualMachineConfiguration.NodeAgentSkuId, requestParameters.VirtualMachineConfiguration.NodeAgentSKUId);
151164
Assert.Equal(cmdlet.VirtualMachineConfiguration.ImageReference.Publisher, requestParameters.VirtualMachineConfiguration.ImageReference.Publisher);
152165
Assert.Equal(cmdlet.VirtualMachineConfiguration.ImageReference.Offer, requestParameters.VirtualMachineConfiguration.ImageReference.Offer);
153166
Assert.Equal(cmdlet.VirtualMachineConfiguration.ImageReference.Sku, requestParameters.VirtualMachineConfiguration.ImageReference.Sku);
167+
Assert.Equal(cmdlet.VirtualMachineConfiguration.SecurityProfile.SecurityType.ToString(), requestParameters.VirtualMachineConfiguration.SecurityProfile.SecurityType.ToString());
168+
Assert.Equal(cmdlet.VirtualMachineConfiguration.SecurityProfile.UefiSettings.SecureBootEnabled, requestParameters.VirtualMachineConfiguration.SecurityProfile.UefiSettings.SecureBootEnabled);
154169
Assert.Equal(cmdlet.VirtualMachineConfiguration.Extensions[0].Name, requestParameters.VirtualMachineConfiguration.Extensions[0].Name);
155170
Assert.Equal(cmdlet.VirtualMachineConfiguration.Extensions[0].Publisher, requestParameters.VirtualMachineConfiguration.Extensions[0].Publisher);
156171
Assert.Equal(cmdlet.VirtualMachineConfiguration.Extensions[0].Type, requestParameters.VirtualMachineConfiguration.Extensions[0].Type);
157172
Assert.Equal(cmdlet.VirtualMachineConfiguration.Extensions[0].EnableAutomaticUpgrade, requestParameters.VirtualMachineConfiguration.Extensions[0].EnableAutomaticUpgrade);
158173
Assert.Equal(cmdlet.VirtualMachineConfiguration.ContainerConfiguration.Type, requestParameters.VirtualMachineConfiguration.ContainerConfiguration.Type);
174+
Assert.Equal(cmdlet.VirtualMachineConfiguration.ServiceArtifactReference.Id, requestParameters.VirtualMachineConfiguration.ServiceArtifactReference.Id);
159175
Assert.Equal(cmdlet.VirtualMachineSize, requestParameters.VmSize);
160176
Assert.Equal(cmdlet.MountConfiguration[0].AzureBlobFileSystemConfiguration.AccountName, requestParameters.MountConfiguration[0].AzureBlobFileSystemConfiguration.AccountName);
161177
Assert.Equal(cmdlet.MountConfiguration[0].AzureBlobFileSystemConfiguration.AccountKey, requestParameters.MountConfiguration[0].AzureBlobFileSystemConfiguration.AccountKey);

src/Batch/Batch.Test/ScenarioTests/BatchApplicationPackageTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public void TestUpdatePoolWithApplicationPackage()
106106
{
107107
context = new ScenarioTestContext();
108108
ScenarioTestHelpers.CreateApplicationPackage(this, context, id, version, filePath);
109-
ScenarioTestHelpers.CreateTestPool(this, context, poolId, targetDedicated: 1, targetLowPriority: 0);
109+
ScenarioTestHelpers.CreateTestPoolVirtualMachine(this, context, poolId, targetDedicated: 1, targetLowPriority: 0);
110110
},
111111
() =>
112112
{

src/Batch/Batch.Test/ScenarioTests/BatchApplicationPackageTests.ps1

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,14 @@ function Test-CreatePoolWithApplicationPackage
7979
$apr = [Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference[]]$apr1
8080

8181
# Create a pool with application package reference
82-
$osFamily = "4"
83-
$targetOSVersion = "*"
84-
$paasConfiguration = New-Object Microsoft.Azure.Commands.Batch.Models.PSCloudServiceConfiguration -ArgumentList @($osFamily, $targetOSVersion)
85-
86-
New-AzBatchPool -Id $poolId -CloudServiceConfiguration $paasConfiguration -TargetDedicated 3 -VirtualMachineSize "small" -BatchContext $context -ApplicationPackageReferences $apr
82+
$vmSize = "standard_d1_v2"
83+
$publisher = "microsoft-azure-batch"
84+
$offer = "ubuntu-server-container"
85+
$osSKU = "20-04-lts"
86+
$nodeAgent = "batch.node.ubuntu 20.04"
87+
$imageRef = New-Object Microsoft.Azure.Commands.Batch.Models.PSImageReference -ArgumentList @($offer, $publisher, $osSKU)
88+
$iaasConfiguration = New-Object Microsoft.Azure.Commands.Batch.Models.PSVirtualMachineConfiguration -ArgumentList @($imageRef, $nodeAgent)
89+
New-AzBatchPool -Id $poolId -VirtualMachineSize "standard_d1_v2" -TargetDedicated 3 -VirtualMachineConfiguration $iaasConfiguration -BatchContext $context -ApplicationPackageReferences $apr
8790
}
8891
finally
8992
{

src/Batch/Batch.Test/ScenarioTests/CertificateTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public void TestCancelCertificateDelete()
5757
certRef.ThumbprintAlgorithm = BatchTestHelpers.TestCertificateAlgorithm;
5858
certRef.Thumbprint = thumbprint;
5959
certRef.Visibility = CertificateVisibility.Task;
60-
ScenarioTestHelpers.CreateTestPool(this, context, poolId, targetDedicated: 0, targetLowPriority: 0, certReference: certRef);
60+
ScenarioTestHelpers.CreateTestPoolVirtualMachine(this, context, poolId, targetDedicated: 0, targetLowPriority: 0, certReference: certRef);
6161
ScenarioTestHelpers.DeleteTestCertificate(this, context, BatchTestHelpers.TestCertificateAlgorithm, thumbprint);
6262
ScenarioTestHelpers.WaitForCertificateToFailDeletion(this, context, BatchTestHelpers.TestCertificateAlgorithm, thumbprint);
6363
},

src/Batch/Batch.Test/ScenarioTests/ComputeNodeTests.cs

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

15+
using Microsoft.Azure.Batch;
1516
using Microsoft.WindowsAzure.Commands.ScenarioTest;
17+
using System;
1618
using Xunit;
1719

1820
namespace Microsoft.Azure.Commands.Batch.Test.ScenarioTests
@@ -33,12 +35,28 @@ public void TestRemoveComputeNodes()
3335
{
3436
BatchAccountContext context = null;
3537
string removeNodePoolId = "removenodepool";
38+
UpgradePolicy upgradePolicy = new UpgradePolicy(Azure.Batch.Common.UpgradeMode.Automatic);
39+
upgradePolicy.AutomaticOSUpgradePolicy = new AutomaticOSUpgradePolicy();
40+
upgradePolicy.AutomaticOSUpgradePolicy.DisableAutomaticRollback = true;
41+
upgradePolicy.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade = true;
42+
upgradePolicy.AutomaticOSUpgradePolicy.UseRollingUpgradePolicy = true;
43+
upgradePolicy.AutomaticOSUpgradePolicy.OsRollingUpgradeDeferral = true;
44+
45+
upgradePolicy.RollingUpgradePolicy = new RollingUpgradePolicy();
46+
upgradePolicy.RollingUpgradePolicy.EnableCrossZoneUpgrade = true;
47+
upgradePolicy.RollingUpgradePolicy.MaxBatchInstancePercent = 20;
48+
upgradePolicy.RollingUpgradePolicy.MaxUnhealthyUpgradedInstancePercent = 20;
49+
upgradePolicy.RollingUpgradePolicy.MaxUnhealthyInstancePercent = 20;
50+
upgradePolicy.RollingUpgradePolicy.PauseTimeBetweenBatches = TimeSpan.FromSeconds(5);
51+
upgradePolicy.RollingUpgradePolicy.PrioritizeUnhealthyInstances = false;
52+
upgradePolicy.RollingUpgradePolicy.RollbackFailedInstancesOnPolicyBreach = false;
53+
3654
TestRunner.RunTestScript(
3755
null,
3856
mockContext =>
3957
{
4058
context = new ScenarioTestContext();
41-
ScenarioTestHelpers.CreateTestPool(this, context, removeNodePoolId, targetDedicated: 2, targetLowPriority: 0);
59+
ScenarioTestHelpers.CreateTestPoolVirtualMachine(this, context, removeNodePoolId, targetDedicated: 2, targetLowPriority: 0, upgradePolicy: upgradePolicy);
4260
ScenarioTestHelpers.WaitForSteadyPoolAllocation(this, context, removeNodePoolId);
4361
},
4462
() =>
@@ -53,10 +71,15 @@ public void TestRemoveComputeNodes()
5371
[Trait(Category.AcceptanceType, Category.CheckIn)]
5472
public void TestRebootAndReimageComputeNode()
5573
{
74+
BatchAccountContext context = null;
75+
string poolId = "rebootandreimagenodepool";
76+
5677
TestRunner.RunTestScript(
5778
mockContext =>
5879
{
59-
_ = new ScenarioTestContext();
80+
context = new ScenarioTestContext();
81+
ScenarioTestHelpers.CreateTestPoolVirtualMachine(this, context, poolId, targetDedicated: 2, targetLowPriority: 0);
82+
ScenarioTestHelpers.WaitForSteadyPoolAllocation(this, context, poolId);
6083
},
6184
$"Test-RebootAndReimageComputeNode '{poolId}'"
6285
);
@@ -66,10 +89,15 @@ public void TestRebootAndReimageComputeNode()
6689
[Trait(Category.AcceptanceType, Category.CheckIn)]
6790
public void TestDisableAndEnableComputeNodeScheduling()
6891
{
92+
BatchAccountContext context = null;
93+
string poolId = "disableandenablenodepool";
94+
6995
TestRunner.RunTestScript(
7096
mockContext =>
7197
{
72-
_ = new ScenarioTestContext();
98+
context = new ScenarioTestContext();
99+
ScenarioTestHelpers.CreateTestPoolVirtualMachine(this, context, poolId, targetDedicated: 2, targetLowPriority: 0);
100+
ScenarioTestHelpers.WaitForSteadyPoolAllocation(this, context, poolId);
73101
},
74102
$"Test-DisableAndEnableComputeNodeScheduling '{poolId}'"
75103
);
@@ -79,12 +107,17 @@ public void TestDisableAndEnableComputeNodeScheduling()
79107
[Trait(Category.AcceptanceType, Category.CheckIn)]
80108
public void TestGetComputeNodeRemoteLoginSettings()
81109
{
110+
BatchAccountContext context = null;
111+
string poolId = "noderemoteloginpool";
112+
82113
TestRunner.RunTestScript(
83114
mockContext =>
84115
{
85-
_ = new ScenarioTestContext();
116+
context = new ScenarioTestContext();
117+
ScenarioTestHelpers.CreateTestPoolVirtualMachine(this, context, poolId, targetDedicated: 2, targetLowPriority: 0);
118+
ScenarioTestHelpers.WaitForSteadyPoolAllocation(this, context, poolId);
86119
},
87-
$"Test-GetRemoteLoginSettings '{iaasPoolId}'"
120+
$"Test-GetRemoteLoginSettings '{poolId}'"
88121
);
89122
}
90123
}

0 commit comments

Comments
 (0)