private PSVmssVMDiskEncryptionStatusContext GetDiskStatus(string rgName, string vmssName, string instanceID) { PSVmssVMDiskEncryptionStatusContext psResult = new PSVmssVMDiskEncryptionStatusContext { InstanceId = instanceID }; var vmssVMInstanceView = this.VirtualMachineScaleSetVMsClient.GetInstanceView(rgName, vmssName, instanceID); var vmssVM = this.VirtualMachineScaleSetVMsClient.Get(rgName, vmssName, instanceID); SetOSType(vmssVM); if (string.IsNullOrWhiteSpace(this.ExtensionName)) { this.ExtensionName = (this.CurrentOSType == OperatingSystemTypes.Windows) ? AzureVmssDiskEncryptionExtensionContext.ExtensionDefaultName : AzureVmssDiskEncryptionExtensionContext.LinuxExtensionDefaultName; } psResult.Disks = new List <DiskInstanceView>(); foreach (var disk in vmssVMInstanceView.Disks) { psResult.Disks.Add(disk); } try { psResult.Extension = vmssVMInstanceView.Extensions.First(e => e.Name.Equals(this.ExtensionName)); } catch (InvalidOperationException) { psResult.DiskEncryptionStatus = string.Format("The Extension, {0}, is not installed.", this.ExtensionName); } if (psResult.Extension != null && psResult.Extension.Statuses != null && psResult.Extension.Statuses.Count > 0) { psResult.DiskEncryptionStatus = psResult.Extension.Statuses[0].DisplayStatus; } psResult.OsVolumeEncrypted = GetOsDiskEncryptionStatus(psResult.Disks, vmssVM.StorageProfile); psResult.DataVolumesEncrypted = GetDataDiskEncryptionStatus(rgName, vmssName, psResult.DiskEncryptionStatus, vmssVM.StorageProfile); return(psResult); }
private PSVmssVMDiskEncryptionStatusContext GetDiskStatus(string rgName, string vmssName, string instanceID) { PSVmssVMDiskEncryptionStatusContext psResult = new PSVmssVMDiskEncryptionStatusContext { InstanceId = instanceID }; var vmssVMInstanceView = this.VirtualMachineScaleSetVMsClient.GetInstanceView(rgName, vmssName, instanceID); var vmssVM = this.VirtualMachineScaleSetVMsClient.Get(rgName, vmssName, instanceID); SetOSType(vmssVM); if (string.IsNullOrWhiteSpace(this.ExtensionName)) { this.ExtensionName = (this.CurrentOSType == OperatingSystemTypes.Windows) ? AzureVmssDiskEncryptionExtensionContext.ExtensionDefaultName : AzureVmssDiskEncryptionExtensionContext.LinuxExtensionDefaultName; } psResult.Disks = new List <DiskInstanceView>(); foreach (var disk in vmssVMInstanceView.Disks) { psResult.Disks.Add(disk); } psResult.Extension = null; psResult.DiskEncryptionStatus = string.Format("The Extension, {0}, is not installed.", this.ExtensionName); // replace defaults with extension and status data for the instance if found if (vmssVMInstanceView != null && vmssVMInstanceView.Extensions != null) { psResult.Extension = vmssVMInstanceView.Extensions.DefaultIfEmpty(null).FirstOrDefault(e => e.Name.Equals(this.ExtensionName)); if (psResult.Extension != null && psResult.Extension.Statuses != null && psResult.Extension.Statuses.Count > 0) { psResult.DiskEncryptionStatus = psResult.Extension.Statuses[0].DisplayStatus; } } psResult.OsVolumeEncrypted = GetOsDiskEncryptionStatus(psResult.Disks, vmssVM.StorageProfile); psResult.DataVolumesEncryptionStatus = JsonConvert.SerializeObject(GetDataDisksEncryptionStatus(psResult.Disks, vmssVM.StorageProfile)); return(psResult); }