Esempio n. 1
0
        private ISecret SetDatabasePassword(DatabaseOptions databaseOption)
        {
            ISecret passwordSecret;

            if (string.IsNullOrWhiteSpace(databaseOption.Password))
            {
                if (databaseOption.Secrets.ContainsKey(DatabaseOptionConsts.PasswordAttributeName))
                {
                    if (!StackResources.Lambdas.TryGetValue(databaseOption.RotationLambdaId, out var rotationLambda))
                    {
                        throw new ArgumentException($"The database {databaseOption.Id} lambda id {databaseOption.RotationLambdaId} was not found");
                    }

                    var rotationPeriod = databaseOption.PasswordRotationDaysPeriod.HasValue ? Duration.Days(databaseOption.PasswordRotationDaysPeriod.Value) : null;

                    passwordSecret = AwsCdkHandler.AddSecret(databaseOption.Secrets[DatabaseOptionConsts.PasswordAttributeName], rotationPeriod: rotationPeriod, rotationLambda: rotationLambda);
                }
                else
                {
                    throw new ArgumentException($"The database {databaseOption.DatabaseName} has no secret to store the password");
                }
            }
            else
            {
                passwordSecret = null;
            }

            return(passwordSecret);
        }