func()

in app/registry/external_system.go [271:308]


func (a *App) setExternalSystemRegistrySecrets(f *RegistryExternalSystemForm, secretPath string) error {
	secretData := make(map[string]interface{})
	prefixedPath := externalSystemSecretPrefixedPath(secretPath)

	createSecrets := false

	if f.AuthType == authTypeAuthToken || f.AuthType == authTypeAuthTokenBearer || f.AuthType == authTypeBearer {
		if f.AuthSecret == prefixedPath {
			return nil
		}

		secretData[fmt.Sprintf("external-systems.%s.auth.secret.token", f.RegistryName)] = f.AuthSecret
		createSecrets = true
	} else if f.AuthType == authTypeBasic {

		if f.AuthUsername != prefixedPath {
			secretData[fmt.Sprintf("external-systems.%s.auth.secret.username", f.RegistryName)] = f.AuthUsername
			createSecrets = true
		}

		if f.AuthSecret != prefixedPath {
			secretData[fmt.Sprintf("external-systems.%s.auth.secret.password", f.RegistryName)] = f.AuthSecret
			createSecrets = true
		}
	}

	if !createSecrets {
		return nil
	}

	if err := CreateVaultSecrets(a.Vault, map[string]map[string]interface{}{
		secretPath: secretData,
	}, true); err != nil {
		return errors.Wrap(err, "unable to create auth token secret")
	}

	return nil
}