public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { WriteWarning("Set-AzureRmVmssDiskEncrpytionExtension: A property of the output of this cmdlet will change in an upcoming breaking change release. " + "The StorageAccountType property for a DataDisk will return Standard_LRS and Premium_LRS"); if (this.ShouldProcess(VMScaleSetName, Properties.Resources.EnableDiskEncryptionAction) && (this.Force.IsPresent || this.ShouldContinue(Properties.Resources.EnableAzureDiskEncryptionConfirmation, Properties.Resources.EnableAzureDiskEncryptionCaption))) // Change this. { VerifyParameters(); VirtualMachineScaleSet vmssResponse = this.VirtualMachineScaleSetClient.Get( this.ResourceGroupName, VMScaleSetName); if (vmssResponse == null || vmssResponse.VirtualMachineProfile == null) { ThrowInvalidArgumentError("The given VM Scale Set, {0}, does not exist.", this.VMScaleSetName); } SetOSType(vmssResponse.VirtualMachineProfile); this.VolumeType = GetVolumeType(this.VolumeType, vmssResponse.VirtualMachineProfile.StorageProfile); VerifyVolumeType(); VirtualMachineScaleSetExtension parameters = GetVmssExtensionParameters(); if (vmssResponse.VirtualMachineProfile.ExtensionProfile == null) { vmssResponse.VirtualMachineProfile.ExtensionProfile = new VirtualMachineScaleSetExtensionProfile(); } if (vmssResponse.VirtualMachineProfile.ExtensionProfile.Extensions == null) { vmssResponse.VirtualMachineProfile.ExtensionProfile.Extensions = new List <VirtualMachineScaleSetExtension>(); } vmssResponse.VirtualMachineProfile.ExtensionProfile.Extensions.Add(parameters); VirtualMachineScaleSetExtension result = this.VirtualMachineScaleSetExtensionsClient.CreateOrUpdate( this.ResourceGroupName, this.VMScaleSetName, this.ExtensionName, parameters); var psResult = result.ToPSVirtualMachineScaleSetExtension(this.ResourceGroupName, this.VMScaleSetName); WriteObject(psResult); } }); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { if (this.ShouldProcess(VMScaleSetName, Properties.Resources.EnableDiskEncryptionAction) && (this.Force.IsPresent || this.ShouldContinue(Properties.Resources.EnableAzureDiskEncryptionConfirmation, Properties.Resources.EnableAzureDiskEncryptionCaption))) // Change this. { VerifyParameters(); VirtualMachineScaleSet vmssResponse = this.VirtualMachineScaleSetClient.Get( this.ResourceGroupName, VMScaleSetName); if (vmssResponse == null || vmssResponse.VirtualMachineProfile == null) { ThrowInvalidArgumentError("The given VM Scale Set, {0}, does not exist.", this.VMScaleSetName); } SetOSType(vmssResponse.VirtualMachineProfile); this.VolumeType = GetVolumeType(this.VolumeType, vmssResponse.VirtualMachineProfile.StorageProfile); VerifyVolumeType(); VirtualMachineScaleSetExtension parameters = GetVmssExtensionParameters(); if (vmssResponse.VirtualMachineProfile.ExtensionProfile == null) { vmssResponse.VirtualMachineProfile.ExtensionProfile = new VirtualMachineScaleSetExtensionProfile(); } if (vmssResponse.VirtualMachineProfile.ExtensionProfile.Extensions == null) { vmssResponse.VirtualMachineProfile.ExtensionProfile.Extensions = new List <VirtualMachineScaleSetExtension>(); } vmssResponse.VirtualMachineProfile.ExtensionProfile.Extensions.Add(parameters); VirtualMachineScaleSetExtension result = this.VirtualMachineScaleSetExtensionsClient.CreateOrUpdate( this.ResourceGroupName, this.VMScaleSetName, this.ExtensionName, parameters); var psResult = result.ToPSVirtualMachineScaleSetExtension(this.ResourceGroupName, this.VMScaleSetName); WriteObject(psResult); } }); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { if (this.ShouldProcess(VMScaleSetName, Properties.Resources.RemoveDiskEncryptionAction) && (this.Force.IsPresent || this.ShouldContinue(Properties.Resources.VirtualMachineExtensionRemovalConfirmation, Properties.Resources.VirtualMachineExtensionRemovalCaption))) { VirtualMachineScaleSet vmss = this.VirtualMachineScaleSetClient.Get(this.ResourceGroupName, this.VMScaleSetName); if (vmss == null || vmss.VirtualMachineProfile == null) { ThrowTerminatingError(new ErrorRecord( new ArgumentException("The given VM Scale Set does not exist."), "InvalidArgument", ErrorCategory.InvalidArgument, null)); } SetOSType(vmss.VirtualMachineProfile); if (OperatingSystemTypes.Windows.Equals(this.CurrentOSType)) { this.ExtensionName = this.ExtensionName ?? AzureVmssDiskEncryptionExtensionContext.ExtensionDefaultName; } else if (OperatingSystemTypes.Linux.Equals(this.CurrentOSType)) { this.ExtensionName = this.ExtensionName ?? AzureVmssDiskEncryptionExtensionContext.LinuxExtensionDefaultName; } this.VolumeType = GetVolumeType(this.VolumeType, vmss.VirtualMachineProfile.StorageProfile); if (vmss.VirtualMachineProfile.ExtensionProfile == null || vmss.VirtualMachineProfile.ExtensionProfile.Extensions == null || vmss.VirtualMachineProfile.ExtensionProfile.Extensions.Count == 0) { ThrowTerminatingError(new ErrorRecord( new ArgumentException("Disk Encryption extension is not installed in the VM Scale Set."), "InvalidArgument", ErrorCategory.InvalidArgument, null)); } bool extensionFound = false; foreach (var ext in vmss.VirtualMachineProfile.ExtensionProfile.Extensions) { if (ext.Type1.Equals(this.ExtensionName)) { ext.Settings = GetDisalbeEncryptionSetting(); ext.ProtectedSettings = null; ext.ForceUpdateTag = this.ForceUpdate.IsPresent ? Guid.NewGuid().ToString() : null; if (OperatingSystemTypes.Windows.Equals(this.CurrentOSType)) { this.ExtensionName = AzureVmssDiskEncryptionExtensionContext.ExtensionDefaultName; } else if (OperatingSystemTypes.Linux.Equals(this.CurrentOSType)) { this.ExtensionName = AzureVmssDiskEncryptionExtensionContext.LinuxExtensionDefaultName; } VirtualMachineScaleSetExtension result = this.VirtualMachineScaleSetExtensionsClient.CreateOrUpdate( this.ResourceGroupName, this.VMScaleSetName, this.ExtensionName, ext); var psResult = result.ToPSVirtualMachineScaleSetExtension(this.ResourceGroupName, this.VMScaleSetName); extensionFound = true; WriteObject(psResult); break; } } if (!extensionFound) { ThrowTerminatingError(new ErrorRecord( new ArgumentException(string.Format("Extension, {0}, is not installed in the VM Scale Set.", this.ExtensionName)), "InvalidArgument", ErrorCategory.InvalidArgument, null)); } } }); }