Old aliases compatibility added back in apier, fix create_tariffplan_tables for both mysql and postgres, fix local_tests

This commit is contained in:
DanB
2015-09-19 18:54:07 +02:00
parent 6aedf2b507
commit 99076bb7e4
7 changed files with 44 additions and 33 deletions

View File

@@ -18,6 +18,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
package v1
import (
"errors"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
type AttrAddRatingSubjectAliases struct {
Tenant, Category, Subject string
Aliases []string
@@ -28,7 +34,6 @@ type AttrAddAccountAliases struct {
Aliases []string
}
/*
// Add aliases configured for a rating profile subject <Deprecated>
func (self *ApierV1) AddRatingSubjectAliases(attrs AttrAddRatingSubjectAliases, reply *string) error {
if missing := utils.MissingStructFields(&attrs, []string{"Tenant", "Subject", "Aliases"}); len(missing) != 0 {
@@ -44,8 +49,9 @@ func (self *ApierV1) AddRatingSubjectAliases(attrs AttrAddRatingSubjectAliases,
var ignr string
for _, alias := range attrs.Aliases {
if err := aliases.SetAlias(
engine.Alias{Direction: utils.META_OUT, Tenant: attrs.Tenant, Category: attrs.Category, Account: alias, Subject: alias, Context: utils.ALIAS_GROUP_RP,
Values: engine.AliasValues{&engine.AliasValue{DestinationId: utils.META_ANY, Alias: attrs.Subject, Weight: 10.0}}}, &ignr); err != nil {
engine.Alias{Direction: utils.META_OUT, Tenant: attrs.Tenant, Category: attrs.Category, Account: alias, Subject: alias, Context: utils.ALIAS_CONTEXT_RATING,
Values: engine.AliasValues{&engine.AliasValue{DestinationId: utils.META_ANY,
Pairs: engine.AliasPairs{"Subject": map[string]string{alias: attrs.Subject}}, Weight: 10.0}}}, &ignr); err != nil {
return utils.NewErrServerError(err)
}
}
@@ -63,7 +69,7 @@ func (self *ApierV1) RemRatingSubjectAliases(tenantRatingSubject engine.TenantRa
return errors.New("ALIASES_NOT_ENABLED")
}
var reverseAliases map[string][]*engine.Alias
if err := aliases.GetReverseAlias(engine.AttrReverseAlias{Alias: tenantRatingSubject.Subject, Context: utils.ALIAS_GROUP_RP}, &reverseAliases); err != nil {
if err := aliases.GetReverseAlias(engine.AttrReverseAlias{Target: "Subject", Alias: tenantRatingSubject.Subject, Context: utils.ALIAS_CONTEXT_RATING}, &reverseAliases); err != nil {
return utils.NewErrServerError(err)
}
var ignr string
@@ -95,8 +101,9 @@ func (self *ApierV1) AddAccountAliases(attrs AttrAddAccountAliases, reply *strin
var ignr string
for _, alias := range attrs.Aliases {
if err := aliases.SetAlias(
engine.Alias{Direction: utils.META_OUT, Tenant: attrs.Tenant, Category: attrs.Category, Account: alias, Subject: utils.META_ANY, Context: utils.ALIAS_GROUP_ACC,
Values: engine.AliasValues{&engine.AliasValue{DestinationId: utils.META_ANY, Alias: attrs.Account, Weight: 10.0}}}, &ignr); err != nil {
engine.Alias{Direction: utils.META_OUT, Tenant: attrs.Tenant, Category: attrs.Category, Account: alias, Subject: alias, Context: utils.ALIAS_CONTEXT_RATING,
Values: engine.AliasValues{&engine.AliasValue{DestinationId: utils.META_ANY,
Pairs: engine.AliasPairs{"Account": map[string]string{alias: attrs.Account}}, Weight: 10.0}}}, &ignr); err != nil {
return utils.NewErrServerError(err)
}
}
@@ -114,7 +121,7 @@ func (self *ApierV1) RemAccountAliases(tenantAccount engine.TenantAccount, reply
return errors.New("ALIASES_NOT_ENABLED")
}
var reverseAliases map[string][]*engine.Alias
if err := aliases.GetReverseAlias(engine.AttrReverseAlias{Alias: tenantAccount.Account, Context: utils.ALIAS_GROUP_ACC}, &reverseAliases); err != nil {
if err := aliases.GetReverseAlias(engine.AttrReverseAlias{Target: "Account", Alias: tenantAccount.Account, Context: utils.ALIAS_CONTEXT_RATING}, &reverseAliases); err != nil {
return utils.NewErrServerError(err)
}
var ignr string
@@ -131,4 +138,3 @@ func (self *ApierV1) RemAccountAliases(tenantAccount engine.TenantAccount, reply
*reply = utils.OK
return nil
}
*/

View File

@@ -367,11 +367,14 @@ CREATE TABLE tp_aliases (
`category` varchar(64) NOT NULL,
`account` varchar(64) NOT NULL,
`subject` varchar(64) NOT NULL,
`group` varchar(64) NOT NULL,
`destination_id` varchar(64) NOT NULL,
`context` varchar(64) NOT NULL,
`target` varchar(64) NOT NULL,
`original` varchar(64) NOT NULL,
`alias` varchar(64) NOT NULL,
`weight` decimal(8,2) NOT NULL,
`created_at` TIMESTAMP,
PRIMARY KEY (`id`),
KEY `tpid` (`tpid`)
KEY `tpid` (`tpid`),
UNIQUE KEY `unique_tp_aliases` (`tpid`,`direction`,`tenant`,`category`,`account`,`subject`,`context`, `target`)
);

View File

@@ -357,17 +357,19 @@ CREATE INDEX tpusers_idx ON tp_users (tpid,tenant,user_name);
DROP TABLE IF EXISTS tp_aliases;
CREATE TABLE tp_aliases (
"id" SERIAL PRIMARY KEY,
"tpid" VARCHAR(64) NOT NULL,
"direction" VARCHAR(8) NOT NULL,
"tenant" VARCHAR(64) NOT NULL,
"category" VARCHAR(32) NOT NULL,
"account" VARCHAR(64) NOT NULL,
"subject" VARCHAR(64) NOT NULL,
"group" VARCHAR(64) NOT NULL,
"destination_id" VARCHAR(64) NOT NULL,
"alias" VARCHAR(64) NOT NULL,
"tpid" varchar(64) NOT NULL,
"direction" varchar(8) NOT NULL,
"tenant" varchar(64) NOT NULL,
"category" varchar(64) NOT NULL,
"account" varchar(64) NOT NULL,
"subject" varchar(64) NOT NULL,
"destination_id" varchar(64) NOT NULL,
"context" varchar(64) NOT NULL,
"target" varchar(64) NOT NULL,
"original" varchar(64) NOT NULL,
"alias" varchar(64) NOT NULL,
"weight" NUMERIC(8,2) NOT NULL,
"created_at" TIMESTAMP
);
CREATE INDEX tpaliases_tpid_idx ON tp_aliases (tpid);
CREATE INDEX tpaliases_idx ON tp_aliases ("tpid","direction","tenant","category","account","subject","group");
CREATE INDEX tpaliases_idx ON tp_aliases ("tpid","direction","tenant","category","account","subject","context","target");

View File

@@ -1,10 +1,10 @@
#ActionsTag[0],Action[1],ExtraParameters[2],BalanceTag[3],BalanceType[4],Direction[5],Category[6],DestinationTag[7],RatingSubject[8],SharedGroup[9],ExpiryTime[10],TimingTags[11],Units[12],BalanceWeight[13],BalanceDisabled[14],Weight[15]
TOPUP_RST_10,*topup_reset,,,*monetary,*out,,*any,,,*unlimited,,10,10,,false,10
TOPUP_RST_5,*topup_reset,,,*monetary,*out,,*any,,,*unlimited,,5,20,,false,10
TOPUP_RST_5,*topup_reset,,,*voice,*out,,DST_1002,SPECIAL_1002,,*unlimited,,90,20,,false,10
TOPUP_120_DST1003,*topup_reset,,,*voice,*out,,DST_1003,,,*unlimited,,120,20,,false,10
TOPUP_RST_SHARED_5,*topup,,,*monetary,*out,,*any,,SHARED_A,*unlimited,,5,10,,false,10
SHARED_A_0,*topup_reset,,,*monetary,*out,,*any,,SHARED_A,*unlimited,,0,10,,false,10
LOG_WARNING,*log,,,,,,,,,,,,,,false,10
DISABLE_AND_LOG,*log,,,,,,,,,,,,,,false,10
DISABLE_AND_LOG,*disable_account,,,,,,,,,,,,,,false,10
TOPUP_RST_10,*topup_reset,,,*monetary,*out,,*any,,,*unlimited,,10,10,false,10
TOPUP_RST_5,*topup_reset,,,*monetary,*out,,*any,,,*unlimited,,5,20,false,10
TOPUP_RST_5,*topup_reset,,,*voice,*out,,DST_1002,SPECIAL_1002,,*unlimited,,90,20,false,10
TOPUP_120_DST1003,*topup_reset,,,*voice,*out,,DST_1003,,,*unlimited,,120,20,false,10
TOPUP_RST_SHARED_5,*topup,,,*monetary,*out,,*any,,SHARED_A,*unlimited,,5,10,false,10
SHARED_A_0,*topup_reset,,,*monetary,*out,,*any,,SHARED_A,*unlimited,,0,10,false,10
LOG_WARNING,*log,,,,,,,,,,,,,false,10
DISABLE_AND_LOG,*log,,,,,,,,,,,,,false,10
DISABLE_AND_LOG,*disable_account,,,,,,,,,,,,,false,10
1 #ActionsTag[0],Action[1],ExtraParameters[2],BalanceTag[3],BalanceType[4],Direction[5],Category[6],DestinationTag[7],RatingSubject[8],SharedGroup[9],ExpiryTime[10],TimingTags[11],Units[12],BalanceWeight[13],BalanceDisabled[14],Weight[15] #ActionsTag[0] Action[1] ExtraParameters[2] BalanceTag[3] BalanceType[4] Direction[5] Category[6] DestinationTag[7] RatingSubject[8] SharedGroup[9] ExpiryTime[10] TimingTags[11] Units[12] BalanceWeight[13] BalanceDisabled[14] Weight[15]
2 TOPUP_RST_10,*topup_reset,,,*monetary,*out,,*any,,,*unlimited,,10,10,,false,10 TOPUP_RST_10 *topup_reset *monetary *out *any *unlimited 10 10 false 10
3 TOPUP_RST_5,*topup_reset,,,*monetary,*out,,*any,,,*unlimited,,5,20,,false,10 TOPUP_RST_5 *topup_reset *monetary *out *any *unlimited 5 20 false 10
4 TOPUP_RST_5,*topup_reset,,,*voice,*out,,DST_1002,SPECIAL_1002,,*unlimited,,90,20,,false,10 TOPUP_RST_5 *topup_reset *voice *out DST_1002 SPECIAL_1002 *unlimited 90 20 false 10
5 TOPUP_120_DST1003,*topup_reset,,,*voice,*out,,DST_1003,,,*unlimited,,120,20,,false,10 TOPUP_120_DST1003 *topup_reset *voice *out DST_1003 *unlimited 120 20 false 10
6 TOPUP_RST_SHARED_5,*topup,,,*monetary,*out,,*any,,SHARED_A,*unlimited,,5,10,,false,10 TOPUP_RST_SHARED_5 *topup *monetary *out *any SHARED_A *unlimited 5 10 false 10
7 SHARED_A_0,*topup_reset,,,*monetary,*out,,*any,,SHARED_A,*unlimited,,0,10,,false,10 SHARED_A_0 *topup_reset *monetary *out *any SHARED_A *unlimited 0 10 false 10
8 LOG_WARNING,*log,,,,,,,,,,,,,,false,10 LOG_WARNING *log false 10
9 DISABLE_AND_LOG,*log,,,,,,,,,,,,,,false,10 DISABLE_AND_LOG *log false 10
10 DISABLE_AND_LOG,*disable_account,,,,,,,,,,,,,,false,10 DISABLE_AND_LOG *disable_account false 10

View File

@@ -1,3 +1,3 @@
#Direction,Tenant,Category,Account,Subject,DestinationId,Context,Target,Original,Alias,Weight
*out,cgrates.org,call,1006,1006,*any,*rating,Subject,1006,1001,10
*out,cgrates.org,call,1006,1006,*any,*rating,Account,1006,1002,10
#Direction,Tenant,Category,Account,Subject,DestinationId,Context,Target,Original,Alias,Weight
*out,cgrates.org,call,1006,1006,*any,*rating,Subject,1006,1001,10
*out,cgrates.org,call,1006,1006,*any,*rating,Account,1006,1002,10
1 #Direction Tenant Category Account Subject DestinationId Context Target Original Alias Weight
2 *out cgrates.org call 1006 1006 *any *rating Subject 1006 1001 10
3 *out cgrates.org call 1006 1006 *any *rating Account 1006 1002 10

View File

@@ -117,7 +117,7 @@ func TestTutLocalCacheStats(t *testing.T) {
}
var rcvStats *utils.CacheStats
expectedStats := &utils.CacheStats{Destinations: 4, RatingPlans: 3, RatingProfiles: 8, Actions: 7, SharedGroups: 1, Aliases: 2,
expectedStats := &utils.CacheStats{Destinations: 4, RatingPlans: 3, RatingProfiles: 8, Actions: 7, SharedGroups: 1, Aliases: 1,
DerivedChargers: 1, LcrProfiles: 5, CdrStats: 6, Users: 3, LastLoadId: loadInst.LoadId, LastLoadTime: loadInst.LoadTime.Format(time.RFC3339)}
var args utils.AttrCacheStats
if err := tutLocalRpc.Call("ApierV1.GetCacheStats", args, &rcvStats); err != nil {