From 54d6cb7e96d24b97e405e6d08d41264af4cc6046 Mon Sep 17 00:00:00 2001 From: "grafana-delivery-bot[bot]" <132647405+grafana-delivery-bot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 15:58:55 +0100 Subject: [PATCH] [v10.4.x] Chore: Adding log also for cases where datasource UID length is invalid (#84472) Chore: Adding log also for cases where datasource UID length is invalid (#84443) * Adding log also for datasource length (cherry picked from commit 8e90e02db2bf9de26766a5c640f8717bfb103fdb) Co-authored-by: Timur Olzhabayev --- pkg/services/datasources/service/store.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pkg/services/datasources/service/store.go b/pkg/services/datasources/service/store.go index 23ba2ceb66e..b8afc57dbad 100644 --- a/pkg/services/datasources/service/store.go +++ b/pkg/services/datasources/service/store.go @@ -253,8 +253,8 @@ func (ss *SqlStore) AddDataSource(ctx context.Context, cmd *datasources.AddDataS return fmt.Errorf("failed to generate UID for datasource %q: %w", cmd.Name, err) } cmd.UID = uid - } else if !util.IsValidShortUID(cmd.UID) { - logDeprecatedInvalidDsUid(ss.logger, cmd.UID, cmd.Name) + } else if err := util.ValidateUID(cmd.UID); err != nil { + logDeprecatedInvalidDsUid(ss.logger, cmd.UID, cmd.Name, err) } ds = &datasources.DataSource{ @@ -388,8 +388,10 @@ func (ss *SqlStore) UpdateDataSource(ctx context.Context, cmd *datasources.Updat } } - if !util.IsValidShortUID(cmd.UID) { - logDeprecatedInvalidDsUid(ss.logger, cmd.UID, cmd.Name) + if cmd.UID != "" { + if err := util.ValidateUID(cmd.UID); err != nil { + logDeprecatedInvalidDsUid(ss.logger, cmd.UID, cmd.Name, err) + } } return err @@ -415,11 +417,11 @@ func generateNewDatasourceUid(sess *db.Session, orgId int64) (string, error) { var generateNewUid func() string = util.GenerateShortUID -func logDeprecatedInvalidDsUid(logger log.Logger, uid, name string) { +func logDeprecatedInvalidDsUid(logger log.Logger, uid string, name string, err error) { logger.Warn( "Invalid datasource uid. The use of invalid uids is deprecated and this operation will fail in a future "+ "version of Grafana. A valid uid is a combination of a-z, A-Z, 0-9 (alphanumeric), - (dash) and _ "+ "(underscore) characters, maximum length 40", - "uid", uid, "name", name, + "uid", uid, "name", name, "error", err, ) }