Added DispatcherHost to Dispatchers migration

This commit is contained in:
Tripon Alexandru-Ionut
2019-05-02 15:29:03 +03:00
committed by Dan Christian Bogos
parent a21e82e642
commit a80365313c
4 changed files with 89 additions and 4 deletions

View File

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

View File

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

View File

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

View File

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