mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Include filters when engine check versions
This commit is contained in:
@@ -46,7 +46,7 @@ var (
|
||||
"Configuration directory path.")
|
||||
|
||||
exec = cgrMigratorFlags.String("exec", "", "fire up automatic migration "+
|
||||
"<*set_versions|*cost_details|*accounts|*actions|*action_triggers|*action_plans|*shared_groups|*stordb|*datadb>")
|
||||
"<*set_versions|*cost_details|*accounts|*actions|*action_triggers|*action_plans|*shared_groups|*filters|*stordb|*datadb>")
|
||||
version = cgrMigratorFlags.Bool("version", false, "prints the application version")
|
||||
|
||||
inDataDBType = cgrMigratorFlags.String("datadb_type", dfltCfg.DataDbCfg().DataDbType,
|
||||
|
||||
@@ -134,6 +134,7 @@ func NewDefaultCGRConfig() (cfg *CGRConfig, err error) {
|
||||
cfg.DataFolderPath = "/usr/share/cgrates/"
|
||||
cfg.MaxCallDuration = time.Duration(3) * time.Hour // Hardcoded for now
|
||||
|
||||
cfg.rpcConns = make(map[string]*RpcConn)
|
||||
cfg.generalCfg = new(GeneralCfg)
|
||||
cfg.generalCfg.NodeID = utils.UUIDSha1Prefix()
|
||||
cfg.dataDbCfg = new(DataDbCfg)
|
||||
@@ -256,6 +257,8 @@ type CGRConfig struct {
|
||||
ConfigReloads map[string]chan struct{} // Signals to specific entities that a config reload should occur
|
||||
rldChans map[string]chan struct{} // index here the channels used for reloads
|
||||
|
||||
rpcConns map[string]*RpcConn
|
||||
|
||||
generalCfg *GeneralCfg // General config
|
||||
dataDbCfg *DataDbCfg // Database config
|
||||
storDbCfg *StorDbCfg // StroreDb config
|
||||
@@ -735,6 +738,7 @@ func (cfg *CGRConfig) LazySanityCheck() {
|
||||
func (cfg *CGRConfig) loadFromJsonCfg(jsnCfg *CgrJsonCfg) (err error) {
|
||||
// Load sections out of JSON config, stop on error
|
||||
for _, loadFunc := range []func(*CgrJsonCfg) error{
|
||||
cfg.loadRpcConns,
|
||||
cfg.loadGeneralCfg, cfg.loadCacheCfg, cfg.loadListenCfg,
|
||||
cfg.loadHttpCfg, cfg.loadDataDBCfg, cfg.loadStorDBCfg,
|
||||
cfg.loadFilterSCfg, cfg.loadRalSCfg, cfg.loadSchedulerCfg,
|
||||
@@ -754,6 +758,14 @@ func (cfg *CGRConfig) loadFromJsonCfg(jsnCfg *CgrJsonCfg) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
// loadRpcConns loads the RPCConns section of the configuration
|
||||
func (cfg *CGRConfig) loadRpcConns(jsnCfg *CgrJsonCfg) (err error) {
|
||||
var jsnRpcConns map[string]*RpcConn
|
||||
if jsnRpcConns, err = jsnCfg.RpcConnJsonCfg(); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// loadGeneralCfg loads the General section of the configuration
|
||||
func (cfg *CGRConfig) loadGeneralCfg(jsnCfg *CgrJsonCfg) (err error) {
|
||||
var jsnGeneralCfg *GeneralJsonCfg
|
||||
|
||||
@@ -60,6 +60,7 @@ const (
|
||||
Apier = "apier"
|
||||
DNSAgentJson = "dns_agent"
|
||||
ERsJson = "ers"
|
||||
RpcConnsJsonName = "rpc_conns"
|
||||
)
|
||||
|
||||
// Loads the json config out of io.Reader, eg other sources than file, maybe over http
|
||||
@@ -84,6 +85,18 @@ func (self CgrJsonCfg) GeneralJsonCfg() (*GeneralJsonCfg, error) {
|
||||
return cfg, nil
|
||||
}
|
||||
|
||||
func (self CgrJsonCfg) RpcConnJsonCfg() (map[string]*RpcConnsJson, error) {
|
||||
rawCfg, hasKey := self[RpcConnsJsonName]
|
||||
if !hasKey {
|
||||
return nil, nil
|
||||
}
|
||||
cfg := make(map[string]*RpcConnsJson)
|
||||
if err := json.Unmarshal(*rawCfg, cfg); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return cfg, nil
|
||||
}
|
||||
|
||||
func (self CgrJsonCfg) CacheJsonCfg() (*CacheJsonCfg, error) {
|
||||
rawCfg, hasKey := self[CACHE_JSN]
|
||||
if !hasKey {
|
||||
|
||||
@@ -256,6 +256,12 @@ type FsConnJsonCfg struct {
|
||||
Alias *string
|
||||
}
|
||||
|
||||
type RpcConnsJson struct {
|
||||
Strategy *string
|
||||
PoolSize *int
|
||||
Conns *[]*RemoteHostJson
|
||||
}
|
||||
|
||||
// Represents one connection instance towards a rater/cdrs server
|
||||
type RemoteHostJson struct {
|
||||
Address *string
|
||||
|
||||
@@ -33,6 +33,32 @@ func NewDfltRemoteHost() *RemoteHost {
|
||||
return &dfltVal
|
||||
}
|
||||
|
||||
type RpcConn struct {
|
||||
Strategy string
|
||||
PoolSize int
|
||||
Conns []*RemoteHost
|
||||
}
|
||||
|
||||
func (rC *RpcConn) loadFromJsonCfg(jsnCfg *RpcConnsJson) (err error) {
|
||||
if jsnCfg == nil {
|
||||
return
|
||||
}
|
||||
if jsnCfg.Strategy != nil {
|
||||
rC.Strategy = *jsnCfg.Strategy
|
||||
}
|
||||
if jsnCfg.PoolSize != nil {
|
||||
rC.PoolSize = *jsnCfg.PoolSize
|
||||
}
|
||||
if jsnCfg.Conns != nil {
|
||||
rC.Conns = make([]*RemoteHost, len(*jsnCfg.Conns))
|
||||
for idx, jsnHaCfg := range *jsnCfg.Conns {
|
||||
rC.Conns[idx] = NewDfltRemoteHost()
|
||||
rC.Conns[idx].loadFromJsonCfg(jsnHaCfg)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// One connection to Rater
|
||||
type RemoteHost struct {
|
||||
Address string
|
||||
|
||||
@@ -34,6 +34,7 @@ var (
|
||||
utils.SharedGroups: "cgr-migrator -exec=*shared_groups",
|
||||
utils.Thresholds: "cgr-migrator -exec=*thresholds",
|
||||
utils.LoadIDsVrs: "cgr-migrator -exec=*load_ids",
|
||||
utils.Filters: "cgr-migrator -exec=*filters",
|
||||
}
|
||||
storDBVers = map[string]string{
|
||||
utils.CostDetails: "cgr-migrator -exec=*cost_details",
|
||||
|
||||
@@ -125,6 +125,8 @@ func (m *Migrator) Migrate(taskIDs []string) (err error, stats map[string]int) {
|
||||
err = m.migrateThresholds()
|
||||
case utils.MetaAttributes:
|
||||
err = m.migrateAttributeProfile()
|
||||
case utils.MetaFilters:
|
||||
err = m.migrateFilters()
|
||||
//only Move
|
||||
case utils.MetaRatingPlans:
|
||||
err = m.migrateRatingPlans()
|
||||
@@ -136,8 +138,6 @@ func (m *Migrator) Migrate(taskIDs []string) (err error, stats map[string]int) {
|
||||
err = m.migrateReverseDestinations()
|
||||
case utils.MetaTimings:
|
||||
err = m.migrateTimings()
|
||||
case utils.MetaFilters:
|
||||
err = m.migrateFilters()
|
||||
case utils.MetaResources:
|
||||
err = m.migrateResources()
|
||||
case MetaAliases:
|
||||
|
||||
Reference in New Issue
Block a user