public override async Task WriteSnapshotAsync(ScriptSecretsType type, string functionName, ScriptSecrets secrets) { if (secrets == null) { throw new ArgumentNullException(nameof(secrets)); } string blobPath = GetSecretsBlobPath(type, functionName); blobPath = SecretsUtility.GetNonDecryptableName(blobPath); await WriteToBlobAsync(blobPath, ScriptSecretSerializer.SerializeSecrets(secrets)); }
public override async Task WriteAsync(ScriptSecretsType type, string functionName, ScriptSecrets secrets) { if (secrets == null) { throw new ArgumentNullException(nameof(secrets)); } string blobPath = GetSecretsBlobPath(type, functionName); await WriteToBlobAsync(blobPath, ScriptSecretSerializer.SerializeSecrets(secrets)); string filePath = GetSecretsSentinelFilePath(type, functionName); await FileUtility.WriteAsync(filePath, DateTime.UtcNow.ToString()); }
public override async Task WriteSnapshotAsync(ScriptSecretsType type, string functionName, ScriptSecrets secrets) { ArgumentNullException.ThrowIfNull(secrets); string blobPath = GetSecretsBlobPath(type, functionName); blobPath = SecretsUtility.GetNonDecryptableName(blobPath); try { await WriteToBlobAsync(blobPath, ScriptSecretSerializer.SerializeSecrets(secrets)); } catch (Exception ex) { LogErrorMessage("write", ex); throw; } }
public override async Task WriteAsync(ScriptSecretsType type, string functionName, ScriptSecrets secrets) { ArgumentNullException.ThrowIfNull(secrets); string blobPath = GetSecretsBlobPath(type, functionName); try { await WriteToBlobAsync(blobPath, ScriptSecretSerializer.SerializeSecrets(secrets)); } catch (Exception ex) { LogErrorMessage("write", ex); throw; } string filePath = GetSecretsSentinelFilePath(type, functionName); await FileUtility.WriteAsync(filePath, DateTime.UtcNow.ToString()); }
private async Task PersistSecretsAsync <T>(T secrets, string keyScope = null, bool isNonDecryptable = false) where T : ScriptSecrets { ScriptSecretsType secretsType = secrets.SecretsType; string secretsContent = ScriptSecretSerializer.SerializeSecrets <T>(secrets); if (isNonDecryptable) { string[] secretBackups = await _repository.GetSecretSnapshots(secrets.SecretsType, keyScope); if (secretBackups.Length >= ScriptConstants.MaximumSecretBackupCount) { string message = string.Format(Resources.ErrorTooManySecretBackups, ScriptConstants.MaximumSecretBackupCount, string.IsNullOrEmpty(keyScope) ? "host" : keyScope); _logger?.LogDebug(message); throw new InvalidOperationException(message); } await _repository.WriteSnapshotAsync(secretsType, keyScope, secretsContent); } else { await _repository.WriteAsync(secretsType, keyScope, secretsContent); } }
public override async Task WriteAsync(ScriptSecretsType type, string functionName, ScriptSecrets secrets) { string filePath = GetSecretsFilePath(type, functionName); for (int currentRetry = 0; ; currentRetry++) { try { await FileUtility.WriteAsync(filePath, ScriptSecretSerializer.SerializeSecrets(secrets)); break; } catch (IOException) { if (currentRetry > _retryCount) { throw; } } await Task.Delay(_retryDelay); } }
private static void PersistSecrets <T>(T secrets, string secretsFilePath) where T : ScriptSecrets { string secretsContent = ScriptSecretSerializer.SerializeSecrets <T>(secrets); File.WriteAllText(secretsFilePath, secretsContent); }
private Task PersistSecretsAsync <T>(T secrets, string keyScope = null) where T : ScriptSecrets { string secretsContent = ScriptSecretSerializer.SerializeSecrets <T>(secrets); return(_repository.WriteAsync(secrets.SecretsType, keyScope, secretsContent)); }
public override async Task WriteSnapshotAsync(ScriptSecretsType type, string functionName, ScriptSecrets secrets) { string filePath = GetSecretsFilePath(type, functionName, true); await FileUtility.WriteAsync(filePath, ScriptSecretSerializer.SerializeSecrets(secrets)); }