Skip to content

Commit 6a55c50

Browse files
haaghawyunchi-ms
andauthored
[Compute] Powershell changes for RunCommand, VMSS Scale In Policy (#18186)
* Changes * adding test * changelog * help changes * Update ChangeLog.md Co-authored-by: Yunchi Wang <[email protected]>
1 parent 5fc3fa1 commit 6a55c50

File tree

8 files changed

+772
-1420
lines changed

8 files changed

+772
-1420
lines changed

src/Compute/Compute.Test/SessionRecords/Microsoft.Azure.Commands.Compute.Test.ScenarioTests.RestorePointsTests/TestRestorePoints.json

Lines changed: 654 additions & 1391 deletions
Large diffs are not rendered by default.

src/Compute/Compute/ChangeLog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
- `New-AzSnapshotUpdateConfig`
3535
- `New-AzGalleryImageDefinition`
3636
* Added `-InstanceView` parameter to `Get-AzRestorePoint`
37+
* Added parameter `-ScriptString` to `Invoke-AzvmRunCommand` and `Invoke-AzvmssRunCommand`
38+
* Added parameter `-ScaleInPolicyForceDeletion` to `Update-Azvmss`
3739

3840
## Version 4.26.0
3941
* Added `-ImageReferenceId` parameter to following cmdlets: `New-AzVm`, `New-AzVmConfig`, `New-AzVmss`, `Set-AzVmssStorageProfile`

src/Compute/Compute/Generated/VirtualMachine/VirtualMachineRunCommandMethod.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ public override void ExecuteCmdlet()
7070
string fileContent = Commands.Common.Authentication.Abstractions.FileUtilities.DataStore.ReadFileAsText(filePath.FullName);
7171
parameters.Script = fileContent.Split(new string[] { "\r\n", "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries);
7272
}
73+
else if (this.ScriptString != null)
74+
{
75+
parameters.Script = new List<string>() { this.ScriptString };
76+
}
7377
if (this.Parameter != null)
7478
{
7579
var vParameter = new List<RunCommandInputParameter>();
@@ -118,6 +122,10 @@ public override void ExecuteCmdlet()
118122
[AllowNull]
119123
public string ScriptPath { get; set; }
120124

125+
[Parameter(
126+
Mandatory = false)]
127+
public string ScriptString { get; set; }
128+
121129
[Parameter(
122130
Mandatory = false)]
123131
[AllowNull]

src/Compute/Compute/Generated/VirtualMachineScaleSet/VirtualMachineScaleSetUpdateMethod.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,10 @@ public override void ExecuteCmdlet()
234234
Mandatory = false)]
235235
public bool Overprovision { get; set; }
236236

237+
[Parameter(
238+
Mandatory = false)]
239+
public bool ScaleInPolicyForceDeletion { get; set; }
240+
237241
[Parameter(
238242
Mandatory = false)]
239243
[ValidateNotNullOrEmpty]
@@ -956,6 +960,19 @@ private void BuildPatchObject()
956960
this.VirtualMachineScaleSetUpdate.ScaleInPolicy.Rules = this.ScaleInPolicy;
957961
}
958962

963+
if (this.IsParameterBound(c => c.ScaleInPolicyForceDeletion))
964+
{
965+
if (this.VirtualMachineScaleSetUpdate == null)
966+
{
967+
this.VirtualMachineScaleSetUpdate = new VirtualMachineScaleSetUpdate();
968+
}
969+
if (this.VirtualMachineScaleSetUpdate.ScaleInPolicy == null)
970+
{
971+
this.VirtualMachineScaleSetUpdate.ScaleInPolicy = new ScaleInPolicy();
972+
}
973+
this.VirtualMachineScaleSetUpdate.ScaleInPolicy.ForceDeletion = this.ScaleInPolicyForceDeletion;
974+
}
975+
959976
if (this.IsParameterBound(c => c.SinglePlacementGroup))
960977
{
961978
if (this.VirtualMachineScaleSetUpdate == null)
@@ -1677,6 +1694,15 @@ private void BuildPutObject()
16771694
this.VirtualMachineScaleSet.ScaleInPolicy.Rules = this.ScaleInPolicy;
16781695
}
16791696

1697+
if (this.IsParameterBound(c => c.ScaleInPolicyForceDeletion))
1698+
{
1699+
if (this.VirtualMachineScaleSet.ScaleInPolicy == null)
1700+
{
1701+
this.VirtualMachineScaleSet.ScaleInPolicy = new ScaleInPolicy();
1702+
}
1703+
this.VirtualMachineScaleSet.ScaleInPolicy.ForceDeletion = this.ScaleInPolicyForceDeletion;
1704+
}
1705+
16801706
if (this.IsParameterBound(c => c.SinglePlacementGroup))
16811707
{
16821708
this.VirtualMachineScaleSet.SinglePlacementGroup = this.SinglePlacementGroup;

src/Compute/Compute/Generated/VirtualMachineScaleSetVM/VirtualMachineScaleSetVMRunCommandMethod.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@ public override void ExecuteCmdlet()
7474
string fileContent = Commands.Common.Authentication.Abstractions.FileUtilities.DataStore.ReadFileAsText(filePath.FullName);
7575
parameters.Script = fileContent.Split(new string[] { "\r\n", "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries);
7676
}
77+
else if (this.ScriptString != null)
78+
{
79+
parameters.Script = new List<string>() { this.ScriptString };
80+
}
7781
if (this.Parameter != null)
7882
{
7983
var vParameter = new List<RunCommandInputParameter>();
@@ -129,6 +133,10 @@ public override void ExecuteCmdlet()
129133
[AllowNull]
130134
public string ScriptPath { get; set; }
131135

136+
[Parameter(
137+
Mandatory = false)]
138+
public string ScriptString { get; set; }
139+
132140
[Parameter(
133141
Mandatory = false)]
134142
[AllowNull]

src/Compute/Compute/help/Invoke-AzVMRunCommand.md

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,22 @@ Run a command on the VM.
1515
### DefaultParameter (Default)
1616
```
1717
Invoke-AzVMRunCommand [-ResourceGroupName] <String> [-VMName] <String> -CommandId <String>
18-
[-ScriptPath <String>] [-Parameter <Hashtable>] [-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf]
19-
[-Confirm] [<CommonParameters>]
18+
[-ScriptPath <String>] [-ScriptString <String>] [-Parameter <Hashtable>] [-AsJob]
19+
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
2020
```
2121

2222
### ResourceIdParameter
2323
```
24-
Invoke-AzVMRunCommand -CommandId <String> [-ScriptPath <String>] [-Parameter <Hashtable>]
25-
[-ResourceId] <String> [-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm]
26-
[<CommonParameters>]
24+
Invoke-AzVMRunCommand -CommandId <String> [-ScriptPath <String>] [-ScriptString <String>]
25+
[-Parameter <Hashtable>] [-ResourceId] <String> [-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf]
26+
[-Confirm] [<CommonParameters>]
2727
```
2828

2929
### VMParameter
3030
```
31-
Invoke-AzVMRunCommand -CommandId <String> [-ScriptPath <String>] [-Parameter <Hashtable>]
32-
[-VM] <PSVirtualMachine> [-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm]
33-
[<CommonParameters>]
31+
Invoke-AzVMRunCommand -CommandId <String> [-ScriptPath <String>] [-ScriptString <String>]
32+
[-Parameter <Hashtable>] [-VM] <PSVirtualMachine> [-AsJob] [-DefaultProfile <IAzureContextContainer>]
33+
[-WhatIf] [-Confirm] [<CommonParameters>]
3434
```
3535

3636
## DESCRIPTION
@@ -166,6 +166,21 @@ Accept pipeline input: False
166166
Accept wildcard characters: False
167167
```
168168
169+
### -ScriptString
170+
{{ Fill ScriptString Description }}
171+
172+
```yaml
173+
Type: System.String
174+
Parameter Sets: (All)
175+
Aliases:
176+
177+
Required: False
178+
Position: Named
179+
Default value: None
180+
Accept pipeline input: False
181+
Accept wildcard characters: False
182+
```
183+
169184
### -VM
170185
The PS virtual machine object.
171186

src/Compute/Compute/help/Invoke-AzVmssVMRunCommand.md

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,22 @@ Run command on the Virtual Machine Scale Set VM.
1515
### DefaultParameter (Default)
1616
```
1717
Invoke-AzVmssVMRunCommand [-ResourceGroupName] <String> [-VMScaleSetName] <String> [-InstanceId] <String>
18-
-CommandId <String> [-ScriptPath <String>] [-Parameter <Hashtable>] [-AsJob]
18+
-CommandId <String> [-ScriptPath <String>] [-ScriptString <String>] [-Parameter <Hashtable>] [-AsJob]
1919
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
2020
```
2121

2222
### ResourceIdParameter
2323
```
24-
Invoke-AzVmssVMRunCommand -CommandId <String> [-ScriptPath <String>] [-Parameter <Hashtable>]
25-
[-ResourceId] <String> [-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm]
26-
[<CommonParameters>]
24+
Invoke-AzVmssVMRunCommand -CommandId <String> [-ScriptPath <String>] [-ScriptString <String>]
25+
[-Parameter <Hashtable>] [-ResourceId] <String> [-AsJob] [-DefaultProfile <IAzureContextContainer>] [-WhatIf]
26+
[-Confirm] [<CommonParameters>]
2727
```
2828

2929
### ObjectParameter
3030
```
31-
Invoke-AzVmssVMRunCommand -CommandId <String> [-ScriptPath <String>] [-Parameter <Hashtable>]
32-
[-VirtualMachineScaleSetVM] <PSVirtualMachineScaleSetVM> [-AsJob] [-DefaultProfile <IAzureContextContainer>]
33-
[-WhatIf] [-Confirm] [<CommonParameters>]
31+
Invoke-AzVmssVMRunCommand -CommandId <String> [-ScriptPath <String>] [-ScriptString <String>]
32+
[-Parameter <Hashtable>] [-VirtualMachineScaleSetVM] <PSVirtualMachineScaleSetVM> [-AsJob]
33+
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
3434
```
3535

3636
## DESCRIPTION
@@ -175,6 +175,21 @@ Accept pipeline input: False
175175
Accept wildcard characters: False
176176
```
177177
178+
### -ScriptString
179+
The script as a string.
180+
181+
```yaml
182+
Type: System.String
183+
Parameter Sets: (All)
184+
Aliases:
185+
186+
Required: False
187+
Position: Named
188+
Default value: None
189+
Accept pipeline input: False
190+
Accept wildcard characters: False
191+
```
192+
178193
### -VirtualMachineScaleSetVM
179194
The PS Virtual Machine Scale Set VM Object.
180195

src/Compute/Compute/help/Update-AzVmss.md

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ Update-AzVmss [-ResourceGroupName] <String> [-VMScaleSetName] <String>
2525
[-ImageUri <String>] [-LicenseType <String>] [-ManagedDiskStorageAccountType <String>]
2626
[-MaxBatchInstancePercent <Int32>] [-MaxPrice <Double>] [-MaxUnhealthyInstancePercent <Int32>]
2727
[-MaxUnhealthyUpgradedInstancePercent <Int32>] [-OsDiskCaching <CachingTypes>]
28-
[-OsDiskWriteAccelerator <Boolean>] [-Overprovision <Boolean>] [-PauseTimeBetweenBatches <String>]
29-
[-PlanName <String>] [-PlanProduct <String>] [-PlanPromotionCode <String>] [-PlanPublisher <String>]
30-
[-ProvisionVMAgent <Boolean>] [-ProximityPlacementGroupId <String>] [-ScaleInPolicy <String[]>]
31-
[-SinglePlacementGroup <Boolean>] [-SkipExtensionsOnOverprovisionedVMs <Boolean>] [-SkuCapacity <Int32>]
32-
[-SkuName <String>] [-SkuTier <String>] [-Tag <Hashtable>]
28+
[-OsDiskWriteAccelerator <Boolean>] [-Overprovision <Boolean>] [-ScaleInPolicyForceDeletion <Boolean>]
29+
[-PauseTimeBetweenBatches <String>] [-PlanName <String>] [-PlanProduct <String>] [-PlanPromotionCode <String>]
30+
[-PlanPublisher <String>] [-ProvisionVMAgent <Boolean>] [-ProximityPlacementGroupId <String>]
31+
[-ScaleInPolicy <String[]>] [-SinglePlacementGroup <Boolean>] [-SkipExtensionsOnOverprovisionedVMs <Boolean>]
32+
[-SkuCapacity <Int32>] [-SkuName <String>] [-SkuTier <String>] [-Tag <Hashtable>]
3333
[-TerminateScheduledEventNotBeforeTimeoutInMinutes <Int32>] [-TerminateScheduledEvents <Boolean>]
3434
[-TimeZone <String>] [-UltraSSDEnabled <Boolean>] [-UpgradePolicyMode <UpgradeMode>]
3535
[-CapacityReservationGroupId <String>] [-VhdContainer <String[]>] [-AsJob] [-EncryptionAtHost <Boolean>]
@@ -50,15 +50,15 @@ Update-AzVmss [-ResourceGroupName] <String> [-VMScaleSetName] <String>
5050
[-ManagedDiskStorageAccountType <String>] [-MaxBatchInstancePercent <Int32>] [-MaxPrice <Double>]
5151
[-MaxUnhealthyInstancePercent <Int32>] [-MaxUnhealthyUpgradedInstancePercent <Int32>]
5252
[-OsDiskCaching <CachingTypes>] [-OsDiskWriteAccelerator <Boolean>] [-Overprovision <Boolean>]
53-
[-PauseTimeBetweenBatches <String>] [-PlanName <String>] [-PlanProduct <String>] [-PlanPromotionCode <String>]
54-
[-PlanPublisher <String>] [-ProvisionVMAgent <Boolean>] [-ProximityPlacementGroupId <String>]
55-
[-ScaleInPolicy <String[]>] [-SinglePlacementGroup <Boolean>] [-SkipExtensionsOnOverprovisionedVMs <Boolean>]
56-
[-SkuCapacity <Int32>] [-SkuName <String>] [-SkuTier <String>] [-Tag <Hashtable>]
57-
[-TerminateScheduledEventNotBeforeTimeoutInMinutes <Int32>] [-TerminateScheduledEvents <Boolean>]
58-
[-TimeZone <String>] [-UltraSSDEnabled <Boolean>] [-UpgradePolicyMode <UpgradeMode>]
59-
[-CapacityReservationGroupId <String>] [-VhdContainer <String[]>] [-AsJob] [-EncryptionAtHost <Boolean>]
60-
[-UserData <String>] [-AutomaticRepairAction <String>] [-DefaultProfile <IAzureContextContainer>] [-WhatIf]
61-
[-Confirm] [<CommonParameters>]
53+
[-ScaleInPolicyForceDeletion <Boolean>] [-PauseTimeBetweenBatches <String>] [-PlanName <String>]
54+
[-PlanProduct <String>] [-PlanPromotionCode <String>] [-PlanPublisher <String>] [-ProvisionVMAgent <Boolean>]
55+
[-ProximityPlacementGroupId <String>] [-ScaleInPolicy <String[]>] [-SinglePlacementGroup <Boolean>]
56+
[-SkipExtensionsOnOverprovisionedVMs <Boolean>] [-SkuCapacity <Int32>] [-SkuName <String>] [-SkuTier <String>]
57+
[-Tag <Hashtable>] [-TerminateScheduledEventNotBeforeTimeoutInMinutes <Int32>]
58+
[-TerminateScheduledEvents <Boolean>] [-TimeZone <String>] [-UltraSSDEnabled <Boolean>]
59+
[-UpgradePolicyMode <UpgradeMode>] [-CapacityReservationGroupId <String>] [-VhdContainer <String[]>] [-AsJob]
60+
[-EncryptionAtHost <Boolean>] [-UserData <String>] [-AutomaticRepairAction <String>]
61+
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
6262
```
6363

6464
## DESCRIPTION
@@ -723,6 +723,21 @@ Accept pipeline input: False
723723
Accept wildcard characters: False
724724
```
725725
726+
### -ScaleInPolicyForceDeletion
727+
Applying Force Deletion when using ScaleIn Policy.
728+
729+
```yaml
730+
Type: System.Boolean
731+
Parameter Sets: (All)
732+
Aliases:
733+
734+
Required: False
735+
Position: Named
736+
Default value: None
737+
Accept pipeline input: False
738+
Accept wildcard characters: False
739+
```
740+
726741
### -SinglePlacementGroup
727742
Specifies the single placement group.
728743

0 commit comments

Comments
 (0)