Skip to content

Commit 563c810

Browse files
pselugarisra-fel
andauthored
Added Delete Option for Set-AzVmssStorageProfile and Add-AzVmssDataD… (Azure#19102)
* Added Delete Option for Set-AzVmssStorageProfile and Add-AzVmssDataDisk cmdlets * Updated Add-AzVmss and Set-AzVmsss .md files Modified Change log and Add-AzVmssDataDisk and Set-AzVmssStorageProfile md files. * Resolve Change Log Conflict Updated change log * Added Help Message and Argument Completer. Added Help Message and Argument Completer and also updated md files to remove unwanted spaces and addressed nit remarks * Updated Change log Updated Change log.md * Renamed OsDiskDeletion parameter to OsDiskDeleteOption Co-authored-by: Yeming Liu <11371776+isra-fel@users.noreply.github.com>
1 parent 982e593 commit 563c810

File tree

5 files changed

+101
-4
lines changed

5 files changed

+101
-4
lines changed

src/Compute/Compute/ChangeLog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@
2020
2121
-->
2222
## Upcoming Release
23+
* Added Disk Delete Optional parameters `OsDisk Deletion Option` and `Delete Option` to the `Set-AzVmssStorageProfile` (OS Disk) and `Add-AzVmssDataDisk` (Data Disk)
24+
2325
* Improve printed output for `Get-AzComputeResourceSku`
26+
2427
* Updated `Update-AzVm` to give constructive error messages when empty variables are passed in parameters. [#15081]
2528

2629
## Version 4.30.0

src/Compute/Compute/Generated/VirtualMachineScaleSet/Config/AddAzureRmVmssDataDiskCommand.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,13 @@ public partial class AddAzureRmVmssDataDiskCommand : Microsoft.Azure.Commands.Re
6969
ValueFromPipelineByPropertyName = true)]
7070
public string CreateOption { get; set; }
7171

72+
[Parameter(
73+
Mandatory = false,
74+
ValueFromPipelineByPropertyName = true,
75+
HelpMessage = "Specifies whether Data disk should be deleted or detached upon VMSS Flex deletion(This feature is available for VMSS with Flexible OrchestrationMode only)")]
76+
[PSArgumentCompleter("Delete", "Detach")]
77+
public string DeleteOption { get; set; }
78+
7279
[Parameter(
7380
Mandatory = false,
7481
ValueFromPipelineByPropertyName = true)]
@@ -133,6 +140,27 @@ private void Run()
133140
vDataDisks.DiskSizeGB = this.IsParameterBound(c => c.DiskSizeGB) ? this.DiskSizeGB : (int?)null;
134141
vDataDisks.DiskIOPSReadWrite = this.IsParameterBound(c => c.DiskIOPSReadWrite) ? this.DiskIOPSReadWrite : (long?)null;
135142
vDataDisks.DiskMBpsReadWrite = this.IsParameterBound(c => c.DiskMBpsReadWrite) ? this.DiskMBpsReadWrite : (long?)null;
143+
144+
if (this.IsParameterBound(c => c.DeleteOption))
145+
{
146+
147+
// VirtualMachineProfile
148+
if (this.VirtualMachineScaleSet.VirtualMachineProfile == null)
149+
{
150+
this.VirtualMachineScaleSet.VirtualMachineProfile = new PSVirtualMachineScaleSetVMProfile();
151+
}
152+
// StorageProfile
153+
if (this.VirtualMachineScaleSet.VirtualMachineProfile.StorageProfile == null)
154+
{
155+
this.VirtualMachineScaleSet.VirtualMachineProfile.StorageProfile = new VirtualMachineScaleSetStorageProfile();
156+
}
157+
// DataDisks
158+
if (this.VirtualMachineScaleSet.VirtualMachineProfile.StorageProfile.DataDisks == null)
159+
{
160+
this.VirtualMachineScaleSet.VirtualMachineProfile.StorageProfile.DataDisks = new List<VirtualMachineScaleSetDataDisk>();
161+
}
162+
vDataDisks.DeleteOption = this.DeleteOption;
163+
}
136164
if (this.IsParameterBound(c => c.StorageAccountType))
137165
{
138166
// ManagedDisk

src/Compute/Compute/Generated/VirtualMachineScaleSet/Config/SetAzureRmVmssStorageProfileCommand.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,13 @@ public partial class SetAzureRmVmssStorageProfileCommand : Microsoft.Azure.Comma
8787
ValueFromPipelineByPropertyName = true)]
8888
public string OsDiskCreateOption { get; set; }
8989

90+
[Parameter(
91+
Mandatory = false,
92+
ValueFromPipelineByPropertyName = true,
93+
HelpMessage = "Specifies whether OS disk should be deleted or detached upon VMSS Flex deletion(This feature is available for VMSS with Flexible OrchestrationMode only)")]
94+
[PSArgumentCompleter("Delete", "Detach")]
95+
public string OsDiskDeleteOption { get; set; }
96+
9097
[Parameter(
9198
Mandatory = false,
9299
Position = 8,
@@ -330,6 +337,27 @@ private void Run()
330337
this.VirtualMachineScaleSet.VirtualMachineProfile.StorageProfile.OsDisk.CreateOption = this.OsDiskCreateOption;
331338
}
332339

340+
//DiskDeletion
341+
if (this.IsParameterBound(c => c.OsDiskDeleteOption))
342+
{
343+
// VirtualMachineProfile
344+
if (this.VirtualMachineScaleSet.VirtualMachineProfile == null)
345+
{
346+
this.VirtualMachineScaleSet.VirtualMachineProfile = new PSVirtualMachineScaleSetVMProfile();
347+
}
348+
// StorageProfile
349+
if (this.VirtualMachineScaleSet.VirtualMachineProfile.StorageProfile == null)
350+
{
351+
this.VirtualMachineScaleSet.VirtualMachineProfile.StorageProfile = new VirtualMachineScaleSetStorageProfile();
352+
}
353+
// OsDisk
354+
if (this.VirtualMachineScaleSet.VirtualMachineProfile.StorageProfile.OsDisk == null)
355+
{
356+
this.VirtualMachineScaleSet.VirtualMachineProfile.StorageProfile.OsDisk = new VirtualMachineScaleSetOSDisk();
357+
}
358+
this.VirtualMachineScaleSet.VirtualMachineProfile.StorageProfile.OsDisk.DeleteOption = this.OsDiskDeleteOption;
359+
}
360+
333361
if (this.IsParameterBound(c => c.DiffDiskPlacement) & !this.IsParameterBound(c => c.DiffDiskPlacement))
334362
{
335363
WriteError(new ErrorRecord(

src/Compute/Compute/help/Add-AzVmssDataDisk.md

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ Adds a data disk to the VMSS.
1414

1515
```
1616
Add-AzVmssDataDisk [-VirtualMachineScaleSet] <PSVirtualMachineScaleSet> [[-Name] <String>] [[-Lun] <Int32>]
17-
[[-Caching] <CachingTypes>] [-WriteAccelerator] [-CreateOption <String>] [-DiskSizeGB <Int32>]
18-
[-DiskIOPSReadWrite <Int64>] [-DiskMBpsReadWrite <Int64>] [-StorageAccountType <String>]
17+
[[-Caching] <CachingTypes>] [-WriteAccelerator] [-CreateOption <String>] [-DeleteOption <String>]
18+
[-DiskSizeGB <Int32>] [-DiskIOPSReadWrite <Int64>] [-DiskMBpsReadWrite <Int64>] [-StorageAccountType <String>]
1919
[-DiskEncryptionSetId <String>] [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm]
2020
[<CommonParameters>]
2121
```
@@ -81,6 +81,25 @@ Accept pipeline input: False
8181
Accept wildcard characters: False
8282
```
8383
84+
### -DeleteOption
85+
Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only)
86+
87+
Accepted Values
88+
Delete - If this value is used, the data disk is deleted when the VMSS Flex VM is deleted.
89+
Detach - If this value is used, the data disk is retained after VMSS Flex VM is deleted.
90+
91+
```yaml
92+
Type: System.String
93+
Parameter Sets: (All)
94+
Aliases:
95+
96+
Required: False
97+
Position: Named
98+
Default value: None
99+
Accept pipeline input: True (ByPropertyName)
100+
Accept wildcard characters: False
101+
```
102+
84103
### -DiskEncryptionSetId
85104
Specifies the resource Id of customer managed disk encryption set. This can only be specified for managed disk.
86105

src/Compute/Compute/help/Set-AzVmssStorageProfile.md

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ Sets the storage profile properties for the VMSS.
1717
Set-AzVmssStorageProfile [-VirtualMachineScaleSet] <PSVirtualMachineScaleSet>
1818
[[-ImageReferencePublisher] <String>] [[-ImageReferenceOffer] <String>] [[-ImageReferenceSku] <String>]
1919
[[-ImageReferenceVersion] <String>] [[-OsDiskName] <String>] [[-OsDiskCaching] <CachingTypes>]
20-
[[-OsDiskCreateOption] <String>] [[-OsDiskOsType] <OperatingSystemTypes>] [[-Image] <String>]
21-
[[-VhdContainer] <String[]>] [-ImageReferenceId <String>] [-OsDiskWriteAccelerator]
20+
[[-OsDiskCreateOption] <String>] [-OsDiskDeleteOption <String>] [[-OsDiskOsType] <OperatingSystemTypes>]
21+
[[-Image] <String>] [[-VhdContainer] <String[]>] [-ImageReferenceId <String>] [-OsDiskWriteAccelerator]
2222
[-DiffDiskSetting <String>] [-DiffDiskPlacement <String>] [-ManagedDisk <String>]
2323
[-DiskEncryptionSetId <String>] [-DataDisk <VirtualMachineScaleSetDataDisk[]>]
2424
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
@@ -266,6 +266,25 @@ Accept pipeline input: True (ByPropertyName)
266266
Accept wildcard characters: False
267267
```
268268
269+
### -OsDiskDeleteOption
270+
Specifies whether OS disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).
271+
272+
Accepted Values
273+
Delete - If this value is used, the OS disk is deleted when the VMSS Flex VM is deleted.
274+
Detach - If this value is used, the OS disk is retained after VMSS Flex VM is deleted.
275+
276+
```yaml
277+
Type: System.String
278+
Parameter Sets: (All)
279+
Aliases:
280+
281+
Required: False
282+
Position: Named
283+
Default value: None
284+
Accept pipeline input: True (ByPropertyName)
285+
Accept wildcard characters: False
286+
```
287+
269288
### -OsDiskName
270289
Specifies the name of the operating system disk.
271290

0 commit comments

Comments
 (0)