mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Fixups aliases old implementation emulation
This commit is contained in:
@@ -20,7 +20,6 @@ package v1
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/cgrates/cgrates/engine"
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
@@ -69,17 +68,19 @@ func (self *ApierV1) RemRatingSubjectAliases(tenantRatingSubject engine.TenantRa
|
||||
if aliases == nil {
|
||||
return errors.New("ALIASES_NOT_ENABLED")
|
||||
}
|
||||
var reverseAliases map[string]*engine.Alias
|
||||
var reverseAliases map[string][]*engine.Alias
|
||||
if err := aliases.GetReverseAlias(engine.AttrReverseAlias{Alias: tenantRatingSubject.Subject, Group: utils.ALIAS_GROUP_RP}, &reverseAliases); err != nil {
|
||||
return utils.NewErrServerError(err)
|
||||
}
|
||||
var ignr string
|
||||
for _, alias := range reverseAliases {
|
||||
if alias.Tenant != tenantRatingSubject.Tenant {
|
||||
continue // From another tenant
|
||||
}
|
||||
if err := aliases.RemoveAlias(*alias, &ignr); err != nil {
|
||||
return utils.NewErrServerError(err)
|
||||
for _, aliass := range reverseAliases {
|
||||
for _, alias := range aliass {
|
||||
if alias.Tenant != tenantRatingSubject.Tenant {
|
||||
continue // From another tenant
|
||||
}
|
||||
if err := aliases.RemoveAlias(*alias, &ignr); err != nil {
|
||||
return utils.NewErrServerError(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
*reply = utils.OK
|
||||
@@ -118,17 +119,19 @@ func (self *ApierV1) RemAccountAliases(tenantAccount engine.TenantAccount, reply
|
||||
if aliases == nil {
|
||||
return errors.New("ALIASES_NOT_ENABLED")
|
||||
}
|
||||
var reverseAliases map[string]*engine.Alias
|
||||
var reverseAliases map[string][]*engine.Alias
|
||||
if err := aliases.GetReverseAlias(engine.AttrReverseAlias{Alias: tenantAccount.Account, Group: utils.ALIAS_GROUP_ACC}, &reverseAliases); err != nil {
|
||||
return utils.NewErrServerError(err)
|
||||
}
|
||||
var ignr string
|
||||
for _, alias := range reverseAliases {
|
||||
if alias.Tenant != tenantAccount.Tenant {
|
||||
continue // From another tenant
|
||||
}
|
||||
if err := aliases.RemoveAlias(*alias, &ignr); err != nil {
|
||||
return utils.NewErrServerError(err)
|
||||
for _, aliass := range reverseAliases {
|
||||
for _, alias := range aliass {
|
||||
if alias.Tenant != tenantAccount.Tenant {
|
||||
continue // From another tenant
|
||||
}
|
||||
if err := aliases.RemoveAlias(*alias, &ignr); err != nil {
|
||||
return utils.NewErrServerError(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
*reply = utils.OK
|
||||
|
||||
@@ -30,7 +30,6 @@ import (
|
||||
"os/exec"
|
||||
"path"
|
||||
"reflect"
|
||||
"sort"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
@@ -110,7 +109,6 @@ func TestApierInitStorDb(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
// Finds cgr-engine executable and starts it with default configuration
|
||||
func TestApierStartEngine(t *testing.T) {
|
||||
if !*testLocal {
|
||||
@@ -128,7 +126,6 @@ func TestApierStartEngine(t *testing.T) {
|
||||
}
|
||||
time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time to rater to fire up
|
||||
}
|
||||
*/
|
||||
|
||||
// Connect rpc client to rater
|
||||
func TestApierRpcConn(t *testing.T) {
|
||||
@@ -1545,7 +1542,7 @@ func TestApierLocalSetDestination(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestApierLocalGetRatingSubjectAliases(t *testing.T) {
|
||||
func TestApierLocalGetAliases(t *testing.T) {
|
||||
if !*testLocal {
|
||||
return
|
||||
}
|
||||
@@ -1556,6 +1553,11 @@ func TestApierLocalGetRatingSubjectAliases(t *testing.T) {
|
||||
} else if err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error("Unexpected error", err.Error())
|
||||
}
|
||||
if err := rater.Call("AliasesV1.GetAlias", engine.Alias{Group: utils.ALIAS_GROUP_ACC, Direction: "*out", Tenant: "cgrates.org", Category: "call", Account: "2001", Subject: "2001"}, &alias); err == nil {
|
||||
t.Error("Unexpected nil error received")
|
||||
} else if err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error("Unexpected error", err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func TestApierLocalAddRatingSubjectAliases(t *testing.T) {
|
||||
@@ -1564,13 +1566,11 @@ func TestApierLocalAddRatingSubjectAliases(t *testing.T) {
|
||||
}
|
||||
addRtSubjAliases := &AttrAddRatingSubjectAliases{Tenant: "cgrates.org", Category: "call", Subject: "1001", Aliases: []string{"2001", "2002", "2003"}}
|
||||
var rply string
|
||||
fmt.Println("Before AddRatingSubjectAliases")
|
||||
if err := rater.Call("ApierV1.AddRatingSubjectAliases", addRtSubjAliases, &rply); err != nil {
|
||||
t.Error("Unexpected error", err.Error())
|
||||
} else if rply != utils.OK {
|
||||
t.Error("Unexpected reply: ", rply)
|
||||
}
|
||||
fmt.Println("After AddRatingSubjectAliases")
|
||||
var alias engine.Alias
|
||||
for _, als := range addRtSubjAliases.Aliases {
|
||||
if err := rater.Call("AliasesV1.GetAlias", engine.Alias{Group: utils.ALIAS_GROUP_RP, Direction: "*out", Tenant: addRtSubjAliases.Tenant, Category: addRtSubjAliases.Category,
|
||||
@@ -1593,45 +1593,27 @@ func TestApierLocalRemRatingSubjectAliases(t *testing.T) {
|
||||
}
|
||||
var alias engine.Alias
|
||||
//al.Direction, al.Tenant, al.Category, al.Account, al.Subject, al.Group
|
||||
if err := rater.Call("AliasesV1.GetAlias", engine.Alias{Group: utils.ALIAS_GROUP_RP, Direction: "*out", Tenant: "cgrates.org", Category: "call", Account: "2001", Subject: "2001"}, &alias); err == nil || err != utils.ErrNotFound {
|
||||
if err := rater.Call("AliasesV1.GetAlias", engine.Alias{Group: utils.ALIAS_GROUP_RP, Direction: "*out", Tenant: "cgrates.org", Category: "call", Account: "2001", Subject: "2001"}, &alias); err == nil || err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Errorf("Unexpected error %v, alias: %+v", err, alias)
|
||||
}
|
||||
}
|
||||
|
||||
func TestApierLocalGetAccountAliases(t *testing.T) {
|
||||
if !*testLocal {
|
||||
return
|
||||
}
|
||||
tenantAcnt := engine.TenantAccount{Tenant: "cgrates.org", Account: "1001"}
|
||||
var acntAliases []string
|
||||
if err := rater.Call("ApierV1.GetAccountAliases", tenantAcnt, &acntAliases); err == nil {
|
||||
t.Error("Unexpected nil error received")
|
||||
} else if err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error("Unexpected error", err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func TestApierLocalAddAccountAliases(t *testing.T) {
|
||||
if !*testLocal {
|
||||
return
|
||||
}
|
||||
addAcntAliases := &AttrAddAccountAliases{Tenant: "cgrates.org", Account: "1001", Aliases: []string{"2001", "2002", "2003"}}
|
||||
addAcntAliases := &AttrAddAccountAliases{Tenant: "cgrates.org", Category: "call", Account: "1001", Aliases: []string{"2001", "2002", "2003"}}
|
||||
var rply string
|
||||
if err := rater.Call("ApierV1.AddAccountAliases", addAcntAliases, &rply); err != nil {
|
||||
t.Error("Unexpected error", err.Error())
|
||||
} else if rply != utils.OK {
|
||||
t.Error("Unexpected reply: ", rply)
|
||||
}
|
||||
var acntAliases []string
|
||||
expectAcntAliases := sort.StringSlice(addAcntAliases.Aliases)
|
||||
expectAcntAliases.Sort()
|
||||
if err := rater.Call("ApierV1.GetAccountAliases", engine.TenantAccount{Tenant: "cgrates.org", Account: "1001"}, &acntAliases); err != nil {
|
||||
t.Error("Unexpected error", err.Error())
|
||||
} else {
|
||||
acntAliases := sort.StringSlice(acntAliases)
|
||||
acntAliases.Sort()
|
||||
if !reflect.DeepEqual(expectAcntAliases, acntAliases) {
|
||||
t.Errorf("Expecting: %v, received: %v", expectAcntAliases, acntAliases)
|
||||
var alias engine.Alias
|
||||
for _, als := range addAcntAliases.Aliases {
|
||||
if err := rater.Call("AliasesV1.GetAlias", engine.Alias{Group: utils.ALIAS_GROUP_ACC, Direction: "*out", Tenant: addAcntAliases.Tenant, Category: addAcntAliases.Category,
|
||||
Account: als, Subject: als}, &alias); err != nil {
|
||||
t.Error("Unexpected error", err.Error())
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1647,11 +1629,10 @@ func TestApierLocalRemAccountAliases(t *testing.T) {
|
||||
} else if rply != utils.OK {
|
||||
t.Error("Unexpected reply: ", rply)
|
||||
}
|
||||
var acntAliases []string
|
||||
if err := rater.Call("ApierV1.GetAccountAliases", engine.TenantAccount{Tenant: "cgrates.org", Account: "1001"}, &acntAliases); err == nil {
|
||||
t.Error("Unexpected nil error received")
|
||||
} else if err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Error("Unexpected error", err.Error())
|
||||
var alias engine.Alias
|
||||
//al.Direction, al.Tenant, al.Category, al.Account, al.Subject, al.Group
|
||||
if err := rater.Call("AliasesV1.GetAlias", engine.Alias{Group: utils.ALIAS_GROUP_ACC, Direction: "*out", Tenant: "cgrates.org", Category: "call", Account: "2001", Subject: "2001"}, &alias); err == nil || err.Error() != utils.ErrNotFound.Error() {
|
||||
t.Errorf("Unexpected error %v, alias: %+v", err, alias)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user