Fix where the secret check happens and fiddle with messages.
continuous-integration/drone/pr Build is passing Details

This commit is contained in:
Rich M 2023-10-03 21:23:48 +01:00
parent 30387cbb1b
commit 666e9a041c
1 changed files with 9 additions and 9 deletions

View File

@ -112,6 +112,10 @@ var appNewCommand = cli.Command{
return err return err
} }
if err := ensureSecretLengths(secretsConfig, internal.Domain, sanitisedAppName); err != nil {
logrus.Fatal(err)
}
if err := promptForSecrets(recipe.Name, secretsConfig); err != nil { if err := promptForSecrets(recipe.Name, secretsConfig); err != nil {
logrus.Fatal(err) logrus.Fatal(err)
} }
@ -126,10 +130,6 @@ var appNewCommand = cli.Command{
logrus.Fatal(err) logrus.Fatal(err)
} }
if err := ensureSecretLengths(secrets, sanitisedAppName); err != nil {
logrus.Fatal(err)
}
secretCols := []string{"Name", "Value"} secretCols := []string{"Name", "Value"}
secretTable = formatter.CreateTable(secretCols) secretTable = formatter.CreateTable(secretCols)
for name, val := range secrets { for name, val := range secrets {
@ -262,12 +262,12 @@ func ensureServerFlag() error {
return nil return nil
} }
func ensureSecretLengths(secrets AppSecrets, sanitisedAppName string) error { func ensureSecretLengths(secrets map[string]string, domainName string, sanitisedAppName string) error {
if len(sanitisedAppName) > 45 { if len(sanitisedAppName) > 45 {
sanitisedAppName = sanitisedAppName[:45] sanitisedAppName = sanitisedAppName[:45]
} }
domainLength := len(sanitisedAppName) domainAndFormatLength := len(sanitisedAppName) + 4
failingSecrets := []string{} failingSecrets := []string{}
maxSecretLength := 0 maxSecretLength := 0
@ -277,20 +277,20 @@ func ensureSecretLengths(secrets AppSecrets, sanitisedAppName string) error {
maxSecretLength = len(secretName) maxSecretLength = len(secretName)
} }
if len(secretName+"_v1")+domainLength > 64 { if len(secretName)+domainAndFormatLength > 64 {
failingSecrets = append(failingSecrets, secretName) failingSecrets = append(failingSecrets, secretName)
} }
} }
if len(failingSecrets) > 0 { if len(failingSecrets) > 0 {
failedSecretsString := strings.Join(failingSecrets, ", ") failedSecretsString := strings.Join(failingSecrets, ", ")
return fmt.Errorf("the following secrets are too long to work with the domain name %s, change their length or use a shorter domain name: %s", sanitisedAppName, failedSecretsString) return fmt.Errorf("the following secrets are too long to work with the domain name %s\n change their length or use a shorter domain name:\n %s", domainName, failedSecretsString)
} }
logrus.Debugf( logrus.Debugf(
`The longest secret name is %d `The longest secret name is %d
including 4 extra characters for format %s_<name>_v1 including 4 extra characters for format %s_<name>_v1
fits with domain length of %d for max docker secret length of %d`, fits with domain length of %d for max docker secret length of %d`,
maxSecretLength, sanitisedAppName, domainLength, domainLength+maxSecretLength+4) maxSecretLength, sanitisedAppName, domainAndFormatLength, domainAndFormatLength+maxSecretLength)
return nil return nil
} }