mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-24 16:48:45 +05:00
Add infrastructure for DispatcherProfile
This commit is contained in:
committed by
Dan Christian Bogos
parent
79a69b5aa7
commit
473d8dbc5a
@@ -294,15 +294,20 @@ cgrates.org,ALS1,con2;con3,,,Field2,Initial2,Sub2,false,,
|
||||
chargerProfiles = `
|
||||
#Tenant,ID,FilterIDs,ActivationInterval,RunID,AttributeIDs,Weight
|
||||
cgrates.org,Charger1,*string:Account:1001,2014-07-29T15:00:00Z,*rated,ATTR_1001_SIMPLEAUTH,20
|
||||
`
|
||||
dispatcherProfiles = `
|
||||
#Tenant,ID,FilterIDs,ActivationInterval,Strategy,Hosts,Weight
|
||||
cgrates.org,D1,*string:Account:1001,2014-07-29T15:00:00Z,*first,192.168.56.203;192.168.56.204,20
|
||||
`
|
||||
)
|
||||
|
||||
var csvr *TpReader
|
||||
|
||||
func init() {
|
||||
csvr = NewTpReader(dm.dataDB, NewStringCSVStorage(',', destinations, timings, rates, destinationRates, ratingPlans, ratingProfiles,
|
||||
sharedGroups, actions, actionPlans, actionTriggers, accountActions, derivedCharges,
|
||||
users, aliases, resProfiles, stats, thresholds, filters, sppProfiles, attributeProfiles, chargerProfiles), testTPID, "")
|
||||
csvr = NewTpReader(dm.dataDB, NewStringCSVStorage(',', destinations, timings, rates, destinationRates,
|
||||
ratingPlans, ratingProfiles, sharedGroups, actions, actionPlans, actionTriggers,
|
||||
accountActions, derivedCharges, users, aliases, resProfiles, stats, thresholds,
|
||||
filters, sppProfiles, attributeProfiles, chargerProfiles, dispatcherProfiles), testTPID, "")
|
||||
|
||||
if err := csvr.LoadDestinations(); err != nil {
|
||||
log.Print("error in LoadDestinations:", err)
|
||||
@@ -367,6 +372,9 @@ func init() {
|
||||
if err := csvr.LoadChargerProfiles(); err != nil {
|
||||
log.Print("error in LoadChargerProfiles:", err)
|
||||
}
|
||||
if err := csvr.LoadDispatcherProfiles(); err != nil {
|
||||
log.Print("error in LoadChargerProfiles:", err)
|
||||
}
|
||||
csvr.WriteToDatabase(false, false, false)
|
||||
Cache.Clear(nil)
|
||||
//dm.LoadDataDBCache(nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil)
|
||||
@@ -1714,6 +1722,42 @@ func TestLoadChargerProfiles(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadDispatcherProfiles(t *testing.T) {
|
||||
eDispatcherProfiles := map[utils.TenantID]*utils.TPDispatcherProfile{
|
||||
utils.TenantID{Tenant: "cgrates.org", ID: "D1"}: &utils.TPDispatcherProfile{
|
||||
TPid: testTPID,
|
||||
Tenant: "cgrates.org",
|
||||
ID: "D1",
|
||||
FilterIDs: []string{"*string:Account:1001"},
|
||||
ActivationInterval: &utils.TPActivationInterval{
|
||||
ActivationTime: "2014-07-29T15:00:00Z",
|
||||
},
|
||||
Strategy: "*first",
|
||||
Hosts: []string{"192.168.56.203", "192.168.56.204"},
|
||||
Weight: 20,
|
||||
},
|
||||
}
|
||||
revHosts := &utils.TPDispatcherProfile{
|
||||
TPid: testTPID,
|
||||
Tenant: "cgrates.org",
|
||||
ID: "D1",
|
||||
FilterIDs: []string{"*string:Account:1001"},
|
||||
ActivationInterval: &utils.TPActivationInterval{
|
||||
ActivationTime: "2014-07-29T15:00:00Z",
|
||||
},
|
||||
Strategy: "*first",
|
||||
Hosts: []string{"192.168.56.204", "192.168.56.203"},
|
||||
Weight: 20,
|
||||
}
|
||||
dppKey := utils.TenantID{Tenant: "cgrates.org", ID: "D1"}
|
||||
if len(csvr.dispatcherProfiles) != len(eDispatcherProfiles) {
|
||||
t.Errorf("Failed to load chargerProfiles: %s", utils.ToIJSON(csvr.chargerProfiles))
|
||||
} else if !reflect.DeepEqual(eDispatcherProfiles[dppKey], csvr.dispatcherProfiles[dppKey]) &&
|
||||
!reflect.DeepEqual(revHosts, csvr.dispatcherProfiles[dppKey]) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", eDispatcherProfiles[dppKey], csvr.dispatcherProfiles[dppKey])
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadResource(t *testing.T) {
|
||||
eResources := []*utils.TenantID{
|
||||
&utils.TenantID{
|
||||
|
||||
Reference in New Issue
Block a user