Updated Threshold handling in datamanager

This commit is contained in:
Trial97
2021-05-21 10:03:27 +03:00
committed by Dan Christian Bogos
parent 62b9e7b54a
commit c242636e3e
15 changed files with 134 additions and 235 deletions

View File

@@ -48,29 +48,12 @@ type v2ActionTrigger struct {
func (m *Migrator) migrateCurrentThresholds() (err error) {
var ids []string
//Thresholds
ids, err = m.dmIN.DataManager().DataDB().GetKeysForPrefix(utils.ThresholdPrefix)
if err != nil {
return err
}
for _, id := range ids {
tntID := strings.SplitN(strings.TrimPrefix(id, utils.ThresholdPrefix), utils.InInFieldSep, 2)
if len(tntID) < 2 {
return fmt.Errorf("Invalid key <%s> when migrating thresholds", id)
}
ths, err := m.dmIN.DataManager().GetThreshold(tntID[0], tntID[1], false, false, utils.NonTransactional)
if err != nil {
return err
}
if ths == nil || m.dryRun {
continue
}
if err := m.dmOut.DataManager().SetThreshold(ths, 0, true); err != nil {
return err
}
if err := m.dmIN.DataManager().RemoveThreshold(tntID[0], tntID[1], utils.NonTransactional); err != nil {
return err
}
m.stats[utils.Thresholds]++
}
//ThresholdProfiles
ids, err = m.dmIN.DataManager().DataDB().GetKeysForPrefix(utils.ThresholdProfilePrefix)
@@ -82,19 +65,31 @@ func (m *Migrator) migrateCurrentThresholds() (err error) {
if len(tntID) < 2 {
return fmt.Errorf("Invalid key <%s> when migrating threshold profiles", id)
}
ths, err := m.dmIN.DataManager().GetThresholdProfile(tntID[0], tntID[1], false, false, utils.NonTransactional)
thps, err := m.dmIN.DataManager().GetThresholdProfile(tntID[0], tntID[1], false, false, utils.NonTransactional)
if err != nil {
return err
}
if ths == nil || m.dryRun {
ths, err := m.dmIN.DataManager().GetThreshold(tntID[0], tntID[1], false, false, utils.NonTransactional)
if err != nil {
return err
}
if thps == nil || m.dryRun {
continue
}
if err := m.dmOut.DataManager().SetThresholdProfile(ths, true); err != nil {
if err := m.dmOut.DataManager().SetThresholdProfile(thps, true); err != nil {
return err
}
// update the threshold in the new DB
if ths == nil {
continue
}
if err := m.dmOut.DataManager().SetThreshold(ths); err != nil {
return err
}
if err := m.dmIN.DataManager().RemoveThresholdProfile(tntID[0], tntID[1], utils.NonTransactional, false); err != nil {
return err
}
m.stats[utils.Thresholds]++
}
return
}
@@ -200,14 +195,15 @@ func (m *Migrator) migrateThresholds() (err error) {
if err = m.dmOut.DataManager().SetFilter(filter, true); err != nil {
return
}
if err = m.dmOut.DataManager().SetThreshold(th, 0, true); err != nil {
return
}
}
if err = m.dmOut.DataManager().SetThresholdProfile(v4, true); err != nil {
return
}
if migratedFrom == 1 { // do it after SetThresholdProfile to overwrite the created threshold
if err = m.dmOut.DataManager().SetThreshold(th); err != nil {
return
}
}
}
m.stats[utils.Thresholds]++
}
@@ -324,10 +320,10 @@ func (m *Migrator) SasThreshold(v2ATR *engine.ActionTrigger) (err error) {
return err
}
}
if err := m.dmOut.DataManager().SetThreshold(th, 0, true); err != nil {
if err := m.dmOut.DataManager().SetThresholdProfile(thp, true); err != nil {
return err
}
if err := m.dmOut.DataManager().SetThresholdProfile(thp, true); err != nil {
if err := m.dmOut.DataManager().SetThreshold(th); err != nil {
return err
}
m.stats[utils.Thresholds]++