mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Old aliases compatibility added back in apier, fix create_tariffplan_tables for both mysql and postgres, fix local_tests
This commit is contained in:
@@ -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
|
||||
}
|
||||
*/
|
||||
|
||||
@@ -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`)
|
||||
);
|
||||
|
||||
@@ -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");
|
||||
|
||||
0
data/tariffplans/prepaid1centpsec/LcrRules.csv
Normal file
0
data/tariffplans/prepaid1centpsec/LcrRules.csv
Normal 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,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
|
||||
|
||||
|
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user