mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
optimized alliases removal
This commit is contained in:
@@ -76,9 +76,10 @@ func (self *ApierV1) RemRatingSubjectAliases(tenantRatingSubject engine.TenantRa
|
||||
return utils.NewErrServerError(err)
|
||||
}
|
||||
|
||||
if err := self.RatingDb.CachePrefixes(utils.RP_ALIAS_PREFIX); err != nil {
|
||||
// cache refresh not needed, synched in RemoveRpAliases
|
||||
/*if err := self.RatingDb.CachePrefixes(utils.RP_ALIAS_PREFIX); err != nil {
|
||||
return utils.NewErrServerError(err)
|
||||
}
|
||||
}*/
|
||||
*reply = utils.OK
|
||||
return nil
|
||||
}
|
||||
@@ -124,9 +125,10 @@ func (self *ApierV1) RemAccountAliases(tenantAccount engine.TenantAccount, reply
|
||||
if err := self.RatingDb.RemoveAccAliases([]*engine.TenantAccount{&tenantAccount}); err != nil {
|
||||
return utils.NewErrServerError(err)
|
||||
}
|
||||
if err := self.RatingDb.CachePrefixes(utils.ACC_ALIAS_PREFIX); err != nil {
|
||||
// cache refresh not needed, synched in RemoveRpAliases
|
||||
/*if err := self.RatingDb.CachePrefixes(utils.ACC_ALIAS_PREFIX); err != nil {
|
||||
return utils.NewErrServerError(err)
|
||||
}
|
||||
}*/
|
||||
*reply = utils.OK
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -411,15 +411,13 @@ func (rs *RedisStorage) SetRpAlias(key, alias string) (err error) {
|
||||
|
||||
// Removes the aliases of a specific account, on a tenant
|
||||
func (rs *RedisStorage) RemoveRpAliases(tenantRtSubjects []*TenantRatingSubject) (err error) {
|
||||
alsKeys, err := rs.db.Keys(utils.RP_ALIAS_PREFIX + "*")
|
||||
alsMap, err := cache2go.GetAllEntries(utils.RP_ALIAS_PREFIX)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, key := range alsKeys {
|
||||
alias, err := rs.GetRpAlias(key[len(utils.RP_ALIAS_PREFIX):], true)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for key, aliasInterface := range alsMap {
|
||||
alias := aliasInterface.Value().(string)
|
||||
for _, tntRSubj := range tenantRtSubjects {
|
||||
tenantPrfx := utils.RP_ALIAS_PREFIX + tntRSubj.Tenant + utils.CONCATENATED_KEY_SEP
|
||||
if len(key) < len(tenantPrfx) || tenantPrfx != key[:len(tenantPrfx)] { // filter out the tenant for accounts
|
||||
@@ -428,10 +426,10 @@ func (rs *RedisStorage) RemoveRpAliases(tenantRtSubjects []*TenantRatingSubject)
|
||||
if tntRSubj.Subject != alias {
|
||||
continue
|
||||
}
|
||||
cache2go.RemKey(key)
|
||||
if _, err = rs.db.Del(key); err != nil {
|
||||
return err
|
||||
}
|
||||
cache2go.RemKey(key)
|
||||
break
|
||||
}
|
||||
}
|
||||
@@ -508,11 +506,13 @@ func (rs *RedisStorage) SetAccAlias(key, alias string) (err error) {
|
||||
}
|
||||
|
||||
func (rs *RedisStorage) RemoveAccAliases(tenantAccounts []*TenantAccount) (err error) {
|
||||
alsKeys, err := rs.db.Keys(utils.ACC_ALIAS_PREFIX + "*")
|
||||
alsMap, err := cache2go.GetAllEntries(utils.ACC_ALIAS_PREFIX)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, key := range alsKeys {
|
||||
|
||||
for key, aliasInterface := range alsMap {
|
||||
alias := aliasInterface.Value().(string)
|
||||
alias, err := rs.GetAccAlias(key[len(utils.ACC_ALIAS_PREFIX):], true)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user