Added migrator for *load_ids

This commit is contained in:
Trial97
2019-10-09 18:08:08 +03:00
committed by Dan Christian Bogos
parent 4f96ca590b
commit 8cddeca1a0
9 changed files with 81 additions and 0 deletions

View File

@@ -130,6 +130,7 @@ type DataDB interface {
RemoveDispatcherProfileDrv(string, string) error
GetItemLoadIDsDrv(itemIDPrefix string) (loadIDs map[string]int64, err error)
SetLoadIDsDrv(loadIDs map[string]int64) error
RemoveLoadIDsDrv() error
GetDispatcherHostDrv(string, string) (*DispatcherHost, error)
SetDispatcherHostDrv(*DispatcherHost) error
RemoveDispatcherHostDrv(string, string) error

View File

@@ -1049,3 +1049,7 @@ func (iDB *InternalDB) RemoveDispatcherHostDrv(tenant, id string) (err error) {
cacheCommit(utils.NonTransactional), utils.NonTransactional)
return
}
func (iDB *InternalDB) RemoveLoadIDsDrv() (err error) {
return utils.ErrNotImplemented
}

View File

@@ -1451,3 +1451,7 @@ func (ms *MapStorage) SetLoadIDsDrv(loadIDs map[string]int64) (err error) {
ms.mu.Unlock()
return
}
func (ms *MapStorage) RemoveLoadIDsDrv() (err error) {
return utils.ErrNotImplemented
}

View File

@@ -2274,3 +2274,10 @@ func (ms *MongoStorage) SetLoadIDsDrv(loadIDs map[string]int64) (err error) {
return err
})
}
func (ms *MongoStorage) RemoveLoadIDsDrv() (err error) {
return ms.query(func(sctx mongo.SessionContext) (err error) {
_, err = ms.getCol(ColLID).DeleteMany(sctx, bson.M{})
return err
})
}

View File

@@ -1675,3 +1675,7 @@ func (rs *RedisStorage) GetItemLoadIDsDrv(itemIDPrefix string) (loadIDs map[stri
func (rs *RedisStorage) SetLoadIDsDrv(loadIDs map[string]int64) error {
return rs.Cmd(redis_HMSET, utils.LoadIDs, loadIDs).Err
}
func (rs *RedisStorage) RemoveLoadIDsDrv() (err error) {
return rs.Cmd(redis_DEL, utils.LoadIDs).Err
}

View File

@@ -33,6 +33,7 @@ var (
utils.ActionPlans: "cgr-migrator -exec=*action_plans",
utils.SharedGroups: "cgr-migrator -exec=*shared_groups",
utils.Thresholds: "cgr-migrator -exec=*thresholds",
utils.LoadIDsVrs: "cgr-migrator -exec=*load_ids",
}
storDBVers = map[string]string{
utils.CostDetails: "cgr-migrator -exec=*cost_details",
@@ -155,6 +156,7 @@ func CurrentDataDBVersions() Versions {
utils.RatingProfile: 1,
utils.Chargers: 1,
utils.Dispatchers: 1,
utils.LoadIDsVrs: 1,
}
}

52
migrator/loadids.go Normal file
View File

@@ -0,0 +1,52 @@
/*
Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
Copyright (C) ITsysCOM GmbH
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
*/
package migrator
import (
"fmt"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
//
func (m *Migrator) migrateLoadIDs() (err error) {
var vrs engine.Versions
if vrs, err = m.dmIN.DataManager().DataDB().GetVersions(""); err != nil {
return utils.NewCGRError(utils.Migrator,
utils.ServerErrorCaps,
err.Error(),
fmt.Sprintf("error: <%s> when querying oldDataDB for versions", err.Error()))
}
if vrs[utils.LoadIDs] != 1 {
if err = m.dmOut.DataManager().DataDB().RemoveLoadIDsDrv(); err != nil {
return
}
// All done, update version wtih current one
vrs := engine.Versions{utils.LoadIDsVrs: engine.CurrentDataDBVersions()[utils.LoadIDsVrs]}
if err = m.dmOut.DataManager().DataDB().SetVersions(vrs, false); err != nil {
return utils.NewCGRError(utils.Migrator,
utils.ServerErrorCaps,
err.Error(),
fmt.Sprintf("error: <%s> when updating LoadIDs version into dataDB", err))
}
}
return
}

View File

@@ -191,6 +191,8 @@ func (m *Migrator) Migrate(taskIDs []string) (err error, stats map[string]int) {
err = m.migrateTPChargers()
case utils.MetaTpDispatchers:
err = m.migrateTPDispatchers()
case utils.MetaLoadIDs:
err = m.migrateLoadIDs()
//DATADB ALL
case utils.MetaDataDB:
if err := m.migrateAccounts(); err != nil {
@@ -256,6 +258,9 @@ func (m *Migrator) Migrate(taskIDs []string) (err error, stats map[string]int) {
if err := m.migrateDispatchers(); err != nil {
log.Print("ERROR: ", utils.MetaDispatchers, " ", err)
}
if err = m.migrateLoadIDs(); err != nil {
log.Print("ERROR: ", utils.MetaLoadIDs, " ", err)
}
err = nil
//STORDB ALL
case utils.MetaStorDB:

View File

@@ -414,6 +414,7 @@ const (
Chargers = "Chargers"
Dispatchers = "Dispatchers"
StatS = "Stats"
LoadIDsVrs = "LoadIDs"
RALService = "RALs"
CostSource = "CostSource"
ExtraInfo = "ExtraInfo"
@@ -695,6 +696,7 @@ const (
CapThresholdHits = "ThresholdHits"
CapThresholds = "Thresholds"
CapStatQueues = "StatQueues"
MetaLoadIDs = "*load_ids"
)
const (