Attempt to preserve UID from migrated channel (#57639)

pull/57922/head
Alexander Weaver 3 years ago committed by GitHub
parent 96c3a8339e
commit 0dfd78c88c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 19
      pkg/services/sqlstore/migrations/ualert/channel.go

@ -177,9 +177,22 @@ func (m *migration) getNotificationChannelMap() (channelsPerOrg, defaultChannels
// Create a notifier (PostableGrafanaReceiver) from a legacy notification channel
func (m *migration) createNotifier(c *notificationChannel) (*PostableGrafanaReceiver, error) {
uid, err := m.generateChannelUID()
if err != nil {
return nil, err
uid := c.Uid
if uid == "" {
new, err := m.generateChannelUID()
if err != nil {
return nil, err
}
m.mg.Logger.Info("Legacy notification had an empty uid, generating a new one", "id", c.ID, "uid", new)
uid = new
}
if _, seen := m.seenChannelUIDs[uid]; seen {
new, err := m.generateChannelUID()
if err != nil {
return nil, err
}
m.mg.Logger.Warn("Legacy notification had a UID that collides with a migrated record, generating a new one", "id", c.ID, "old", uid, "new", new)
uid = new
}
settings, secureSettings, err := migrateSettingsToSecureSettings(c.Type, c.Settings, c.SecureSettings)

Loading…
Cancel
Save