mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Added DispatcherHost to Dispatchers migration
This commit is contained in:
committed by
Dan Christian Bogos
parent
a21e82e642
commit
a80365313c
@@ -263,12 +263,13 @@ func (ms *MongoStorage) ensureIndexesForCol(col string) (err error) { // exporte
|
||||
if err = ms.dropAllIndexesForCol(col); err != nil && !command.IsNotFound(err) { // make sure you do not have indexes
|
||||
return
|
||||
}
|
||||
err = nil
|
||||
switch col {
|
||||
case ColAct, ColApl, ColAAp, ColAtr, ColRpl, ColDst, ColRds, ColLht, ColRFI:
|
||||
if err = ms.enusureIndex(col, true, "key"); err != nil {
|
||||
return
|
||||
}
|
||||
case ColRsP, ColRes, ColSqs, ColSqp, ColTps, ColThs, ColSpp, ColAttr, ColFlt, ColCpp, ColDpp:
|
||||
case ColRsP, ColRes, ColSqs, ColSqp, ColTps, ColThs, ColSpp, ColAttr, ColFlt, ColCpp, ColDpp, ColDph:
|
||||
if err = ms.enusureIndex(col, true, "tenant", "id"); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -281,7 +282,9 @@ func (ms *MongoStorage) ensureIndexesForCol(col string) (err error) { // exporte
|
||||
utils.TBLTPDestinationRates, utils.TBLTPRatingPlans,
|
||||
utils.TBLTPSharedGroups, utils.TBLTPActions,
|
||||
utils.TBLTPActionPlans, utils.TBLTPActionTriggers,
|
||||
utils.TBLTPStats, utils.TBLTPResources:
|
||||
utils.TBLTPStats, utils.TBLTPResources, utils.TBLTPDispatchers,
|
||||
utils.TBLTPDispatcherHosts, utils.TBLTPChargers,
|
||||
utils.TBLTPSuppliers, utils.TBLTPThresholds:
|
||||
if err = ms.enusureIndex(col, true, "tpid", "id"); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -55,6 +55,33 @@ func (m *Migrator) migrateCurrentDispatcher() (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (m *Migrator) migrateCurrentDispatcherHost() (err error) {
|
||||
var ids []string
|
||||
tenant := config.CgrConfig().GeneralCfg().DefaultTenant
|
||||
ids, err = m.dmIN.DataManager().DataDB().GetKeysForPrefix(utils.DispatcherHostPrefix)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, id := range ids {
|
||||
idg := strings.TrimPrefix(id, utils.DispatcherHostPrefix+tenant+":")
|
||||
dpp, err := m.dmIN.DataManager().GetDispatcherHost(tenant, idg, false, false, utils.NonTransactional)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if dpp == nil || m.dryRun {
|
||||
continue
|
||||
}
|
||||
if err := m.dmOut.DataManager().SetDispatcherHost(dpp); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := m.dmIN.DataManager().RemoveDispatcherHost(tenant,
|
||||
idg, utils.NonTransactional); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (m *Migrator) migrateDispatchers() (err error) {
|
||||
var vrs engine.Versions
|
||||
current := engine.CurrentDataDBVersions()
|
||||
@@ -78,6 +105,9 @@ func (m *Migrator) migrateDispatchers() (err error) {
|
||||
if err = m.migrateCurrentDispatcher(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err = m.migrateCurrentDispatcherHost(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return m.ensureIndexesDataDB(engine.ColDpp)
|
||||
return m.ensureIndexesDataDB(engine.ColDpp, engine.ColDph)
|
||||
}
|
||||
|
||||
@@ -253,6 +253,9 @@ func (m *Migrator) Migrate(taskIDs []string) (err error, stats map[string]int) {
|
||||
if err := m.migrateDerivedChargers(); err != nil {
|
||||
log.Print("ERROR: ", utils.MetaDerivedChargersV, " ", err)
|
||||
}
|
||||
if err := m.migrateDispatchers(); err != nil {
|
||||
log.Print("ERROR: ", utils.MetaDispatchers, " ", err)
|
||||
}
|
||||
err = nil
|
||||
//STORDB ALL
|
||||
case utils.MetaStorDB:
|
||||
@@ -304,6 +307,18 @@ func (m *Migrator) Migrate(taskIDs []string) (err error, stats map[string]int) {
|
||||
if err := m.migrateTPDestinations(); err != nil {
|
||||
log.Print("ERROR: ", utils.MetaTpDestinations, " ", err)
|
||||
}
|
||||
if err := m.migrateTPChargers(); err != nil {
|
||||
log.Print("ERROR: ", utils.MetaTpChargers, " ", err)
|
||||
}
|
||||
if err := m.migrateTPDispatchers(); err != nil {
|
||||
log.Print("ERROR: ", utils.MetaTpDispatchers, " ", err)
|
||||
}
|
||||
if err := m.migrateCDRs(); err != nil {
|
||||
log.Print("ERROR: ", utils.MetaCDRs, " ", err)
|
||||
}
|
||||
if err := m.migrateSessionSCosts(); err != nil {
|
||||
log.Print("ERROR: ", utils.MetaSessionsCosts, " ", err)
|
||||
}
|
||||
err = nil
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,6 +61,40 @@ func (m *Migrator) migrateCurrentTPDispatchers() (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (m *Migrator) migrateCurrentTPDispatcherHosts() (err error) {
|
||||
tpids, err := m.storDBIn.StorDB().GetTpIds(utils.TBLTPDispatcherHosts)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, tpid := range tpids {
|
||||
ids, err := m.storDBIn.StorDB().GetTpTableIds(tpid, utils.TBLTPDispatcherHosts,
|
||||
utils.TPDistinctIds{"id"}, map[string]string{}, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, id := range ids {
|
||||
dispatchers, err := m.storDBIn.StorDB().GetTPDispatcherHosts(tpid, "", id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if dispatchers == nil || m.dryRun {
|
||||
continue
|
||||
}
|
||||
if err := m.storDBOut.StorDB().SetTPDispatcherHosts(dispatchers); err != nil {
|
||||
return err
|
||||
}
|
||||
for _, dispatcher := range dispatchers {
|
||||
if err := m.storDBIn.StorDB().RemTpData(utils.TBLTPDispatcherHosts, dispatcher.TPid,
|
||||
map[string]string{"id": dispatcher.ID}); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (m *Migrator) migrateTPDispatchers() (err error) {
|
||||
var vrs engine.Versions
|
||||
current := engine.CurrentStorDBVersions()
|
||||
@@ -84,6 +118,9 @@ func (m *Migrator) migrateTPDispatchers() (err error) {
|
||||
if err := m.migrateCurrentTPDispatchers(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := m.migrateCurrentTPDispatcherHosts(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return m.ensureIndexesStorDB(utils.TBLTPDispatchers)
|
||||
return m.ensureIndexesStorDB(utils.TBLTPDispatchers, utils.TBLTPDispatcherHosts)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user