|
|
|
|
@ -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, |
|
|
|
|
) |
|
|
|
|
} |
|
|
|
|
|