public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { VirtualMachine vmParameters = (this.ComputeClient.ComputeManagementClient.VirtualMachines.Get(this.ResourceGroupName, this.VMName)); EncryptionStatus osVolumeEncrypted = IsOsVolumeEncrypted(vmParameters); DiskEncryptionSettings osVolumeEncryptionSettings = GetOsVolumeEncryptionSettings(vmParameters); EncryptionStatus dataVolumesEncrypted = AreDataVolumesEncrypted(vmParameters); OSType osType = GetOSType(vmParameters); switch (osType) { case OSType.Windows: case OSType.Linux: AzureDiskEncryptionStatusContext encryptionStatus = new AzureDiskEncryptionStatusContext { OsVolumeEncrypted = osVolumeEncrypted, DataVolumesEncrypted = dataVolumesEncrypted, OsVolumeEncryptionSettings = osVolumeEncryptionSettings }; WriteObject(encryptionStatus); break; case OSType.Unknown: ThrowTerminatingError(new ErrorRecord(new ApplicationException(string.Format(CultureInfo.CurrentUICulture, "OS type unknown.")), "InvalidResult", ErrorCategory.InvalidResult, null)); break; } }); }
/// <summary> /// Initializes a new instance of the EncryptionSettingsInner class. /// </summary> /// <param name="encryptionStatus">The encryption status to indicates /// if encryption is enabled or not. Possible values include: /// 'Enabled', 'Disabled'</param> /// <param name="keyRolloverStatus">The key rollover status to /// indicates if key rollover is required or not. If secret's /// encryption has been upgraded, then it requires key rollover. /// Possible values include: 'Required', 'NotRequired'</param> /// <param name="id">The path ID that uniquely identifies the /// object.</param> /// <param name="name">The name of the object.</param> /// <param name="type">The hierarchical type of the object.</param> /// <param name="kind">The Kind of the object. Currently only /// Series8000 is supported. Possible values include: /// 'Series8000'</param> public EncryptionSettingsInner(EncryptionStatus encryptionStatus, KeyRolloverStatus keyRolloverStatus, string id = default(string), string name = default(string), string type = default(string), Kind?kind = default(Kind?)) : base(id, name, type, kind) { EncryptionStatus = encryptionStatus; KeyRolloverStatus = keyRolloverStatus; CustomInit(); }
/// <summary> /// Initializes a new instance of the EncryptionSettings class. /// </summary> /// <param name="encryptionStatus">The encryption status which /// indicates if encryption is enabled or not. Possible values include: /// 'Enabled', 'Disabled'</param> /// <param name="keyRolloverStatus">The key rollover status which /// indicates if key rollover is required or not. If secrets encryption /// has been upgraded, then it requires key rollover. Possible values /// include: 'Required', 'NotRequired'</param> /// <param name="id">The identifier.</param> /// <param name="name">The name.</param> /// <param name="type">The type.</param> public EncryptionSettings(EncryptionStatus encryptionStatus, KeyRolloverStatus keyRolloverStatus, string id = default(string), string name = default(string), string type = default(string)) : base(id, name, type) { EncryptionStatus = encryptionStatus; KeyRolloverStatus = keyRolloverStatus; CustomInit(); }
/// <summary> /// Initializes a new instance of the StorageDomain class. /// </summary> /// <param name="storageAccountCredentialIds">The storage account /// credentials.</param> /// <param name="encryptionStatus">The encryption status "Enabled | /// Disabled". Possible values include: 'Enabled', 'Disabled'</param> /// <param name="id">The identifier.</param> /// <param name="name">The name.</param> /// <param name="type">The type.</param> /// <param name="encryptionKey">The encryption key used to encrypt the /// data. This is a user secret.</param> public StorageDomain(IList <string> storageAccountCredentialIds, EncryptionStatus encryptionStatus, string id = default(string), string name = default(string), string type = default(string), AsymmetricEncryptedSecret encryptionKey = default(AsymmetricEncryptedSecret)) : base(id, name, type) { StorageAccountCredentialIds = storageAccountCredentialIds; EncryptionKey = encryptionKey; EncryptionStatus = encryptionStatus; CustomInit(); }
internal static string ToSerializedValue(this EncryptionStatus value) { switch (value) { case EncryptionStatus.Enabled: return("Enabled"); case EncryptionStatus.Disabled: return("Disabled"); } return(null); }
/// <summary> /// Given disk instance view status code, check whether it is encryption status code if yes map it to EncryptionStatus. /// </summary> /// <param name="code">The encryption status code.</param> /// <return>Mapped EncryptionStatus if given code is encryption status code, null otherwise.</return> internal static EncryptionStatus GetEncryptionStatusFromCode(string code) { if (code != null && code.ToLower().StartsWith("encryptionstate")) { // e.g. "code": "EncryptionState/encrypted" // "code": "EncryptionState/notEncrypted" string[] parts = code.Split('/'); if (parts.Length != 2) { return(EncryptionStatus.Unknown); } else { return(EncryptionStatus.Parse(parts[1])); } } return(null); }
public override int GetHashCode() { int hash = 1; if (EncryptionType != global::Google.Cloud.Spanner.Admin.Database.V1.EncryptionInfo.Types.Type.Unspecified) { hash ^= EncryptionType.GetHashCode(); } if (encryptionStatus_ != null) { hash ^= EncryptionStatus.GetHashCode(); } if (KmsKeyVersion.Length != 0) { hash ^= KmsKeyVersion.GetHashCode(); } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
public void MergeFrom(EncryptionInfo other) { if (other == null) { return; } if (other.EncryptionType != global::Google.Cloud.Spanner.Admin.Database.V1.EncryptionInfo.Types.Type.Unspecified) { EncryptionType = other.EncryptionType; } if (other.encryptionStatus_ != null) { if (encryptionStatus_ == null) { EncryptionStatus = new global::Google.Rpc.Status(); } EncryptionStatus.MergeFrom(other.EncryptionStatus); } if (other.KmsKeyVersion.Length != 0) { KmsKeyVersion = other.KmsKeyVersion; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); }
private AzureDiskEncryptionStatusContext getStatusDualPass(VirtualMachine vm) { DiskEncryptionSettings osVolumeEncryptionSettings = GetOsVolumeEncryptionSettingsDualPass(vm); AzureDiskEncryptionStatusContext encryptionStatus = null; switch (vm.StorageProfile.OsDisk.OsType) { case OperatingSystemTypes.Windows: EncryptionStatus osVolumeEncrypted = IsWindowsOsVolumeEncryptedDualPass(vm); EncryptionStatus dataVolumesEncrypted = AreWindowsDataVolumesEncryptedDualPass(vm); encryptionStatus = new AzureDiskEncryptionStatusContext { OsVolumeEncrypted = osVolumeEncrypted, DataVolumesEncrypted = dataVolumesEncrypted, OsVolumeEncryptionSettings = osVolumeEncryptionSettings, ProgressMessage = string.Format(CultureInfo.CurrentUICulture, "OsVolume: {0}, DataVolumes: {1}", osVolumeEncrypted, dataVolumesEncrypted) }; break; case OperatingSystemTypes.Linux: if (!this.IsExtensionInstalled(vm) && this.isVMRunning(vm)) { VirtualMachineExtension parameters = GetDualPassQueryVmExtensionParameters(vm); this.VirtualMachineExtensionClient.CreateOrUpdateWithHttpMessagesAsync( this.ResourceGroupName, this.VMName, this.Name, parameters).GetAwaiter().GetResult(); } Dictionary <string, string> encryptionStatusParsed = null; try { string encryptionStatusJson = GetExtensionStatusMessage(vm, returnSubstatusMessage: true); encryptionStatusParsed = JsonConvert.DeserializeObject <Dictionary <string, string> >(encryptionStatusJson); } catch (KeyNotFoundException) { encryptionStatusParsed = new Dictionary <string, string>() { { AzureDiskEncryptionExtensionConstants.encryptionResultOsKey, EncryptionStatus.Unknown.ToString() }, { AzureDiskEncryptionExtensionConstants.encryptionResultDataKey, EncryptionStatus.Unknown.ToString() } }; } string progressMessage = null; try { progressMessage = GetExtensionStatusMessage(vm); } catch (KeyNotFoundException) { progressMessage = string.Format(CultureInfo.CurrentUICulture, "Extension status not available on the VM"); } encryptionStatus = new AzureDiskEncryptionStatusContext { OsVolumeEncrypted = (EncryptionStatus)Enum.Parse(typeof(EncryptionStatus), encryptionStatusParsed[AzureDiskEncryptionExtensionConstants.encryptionResultOsKey]), DataVolumesEncrypted = (EncryptionStatus)Enum.Parse(typeof(EncryptionStatus), encryptionStatusParsed[AzureDiskEncryptionExtensionConstants.encryptionResultDataKey]), OsVolumeEncryptionSettings = osVolumeEncryptionSettings, ProgressMessage = progressMessage }; break; default: ThrowTerminatingError(new ErrorRecord(new ApplicationException(string.Format(CultureInfo.CurrentUICulture, "OS type unknown.")), "InvalidResult", ErrorCategory.InvalidResult, null)); break; } return(encryptionStatus); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { VirtualMachine vmParameters = (this.ComputeClient.ComputeManagementClient.VirtualMachines.Get(this.ResourceGroupName, this.VMName)); EncryptionStatus osVolumeEncrypted = IsOsVolumeEncrypted(vmParameters); DiskEncryptionSettings osVolumeEncryptionSettings = GetOsVolumeEncryptionSettings(vmParameters); EncryptionStatus dataVolumesEncrypted = AreDataVolumesEncrypted(vmParameters); AzureDiskEncryptionStatusContext encryptionStatus = null; string progressMessage = null; OSType osType = GetOSType(vmParameters); switch (osType) { case OSType.Windows: encryptionStatus = new AzureDiskEncryptionStatusContext { OsVolumeEncrypted = osVolumeEncrypted, DataVolumesEncrypted = dataVolumesEncrypted, OsVolumeEncryptionSettings = osVolumeEncryptionSettings, ProgressMessage = string.Format(CultureInfo.CurrentUICulture, "OsVolume: {0}, DataVolumes: {1}", osVolumeEncrypted, dataVolumesEncrypted) }; WriteObject(encryptionStatus); break; case OSType.Linux: if (!IsExtensionInstalled(osType)) { VirtualMachine virtualMachineResponse = this.ComputeClient.ComputeManagementClient.VirtualMachines.GetWithInstanceView( this.ResourceGroupName, VMName).Body; VirtualMachineExtension parameters = GetVmExtensionParameters(virtualMachineResponse, osType); this.VirtualMachineExtensionClient.CreateOrUpdateWithHttpMessagesAsync( this.ResourceGroupName, this.VMName, this.Name, parameters).GetAwaiter().GetResult(); } Dictionary <string, string> encryptionStatusParsed = null; try { string encryptionStatusJson = GetExtensionStatusMessage(osType, returnSubstatusMessage: true); encryptionStatusParsed = JsonConvert.DeserializeObject <Dictionary <string, string> >(encryptionStatusJson); } catch (KeyNotFoundException) { encryptionStatusParsed = new Dictionary <string, string>() { { AzureDiskEncryptionExtensionConstants.encryptionResultOsKey, EncryptionStatus.Unknown.ToString() }, { AzureDiskEncryptionExtensionConstants.encryptionResultDataKey, EncryptionStatus.Unknown.ToString() } }; } try { progressMessage = GetExtensionStatusMessage(osType); } catch (KeyNotFoundException) { progressMessage = string.Format(CultureInfo.CurrentUICulture, "Extension status not available on the VM"); } encryptionStatus = new AzureDiskEncryptionStatusContext { OsVolumeEncrypted = (EncryptionStatus)Enum.Parse(typeof(EncryptionStatus), encryptionStatusParsed[AzureDiskEncryptionExtensionConstants.encryptionResultOsKey]), DataVolumesEncrypted = (EncryptionStatus)Enum.Parse(typeof(EncryptionStatus), encryptionStatusParsed[AzureDiskEncryptionExtensionConstants.encryptionResultDataKey]), OsVolumeEncryptionSettings = osVolumeEncryptionSettings, ProgressMessage = progressMessage }; WriteObject(encryptionStatus); break; case OSType.Unknown: ThrowTerminatingError(new ErrorRecord(new ApplicationException(string.Format(CultureInfo.CurrentUICulture, "OS type unknown.")), "InvalidResult", ErrorCategory.InvalidResult, null)); break; } }); }
private void SetDataDisksEncryptionStatus(List <DiskInstanceView> disks, StorageProfile storage, JObject DataDisksEncryptionStatus, EncryptionStatus status) { foreach (var disk in disks) { if (disk.Name == storage.OsDisk.Name) { continue; } DataDisksEncryptionStatus[disk.Name] = status.ToString(); } }