diff --git a/apier/v1/cdrc.go b/apier/v1/cdrc.go new file mode 100644 index 000000000..13f151102 --- /dev/null +++ b/apier/v1/cdrc.go @@ -0,0 +1,44 @@ +/* +Real-time Charging System for Telecom & ISP environments +Copyright (C) 2012-2015 ITsysCOM GmbH + +This program is free software: you can Storagetribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITH*out ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see +*/ + +package v1 + +import ( + "github.com/cgrates/cgrates/config" + "github.com/cgrates/cgrates/utils" +) + +type AttrReloadCdrcConfig struct { + ConfigDir string +} + +// Retrieves the callCost out of CGR logDb +func (apier *ApierV1) ReloadCdrcConfig(attrs AttrReloadCdrcConfig, reply *string) error { + if attrs.ConfigDir == "" { + attrs.ConfigDir = utils.CONFIG_DIR + } + newCfg, err := config.NewCGRConfigFromFolder(attrs.ConfigDir) + if err != nil { + return utils.NewErrServerError(err) + } + apier.Config.CdrcProfiles = newCfg.CdrcProfiles + reloadChan := apier.Config.GetConfigReloadsItem(utils.CDRC) + close(reloadChan) // Ask for reload + *reply = OK + return nil +} diff --git a/console/cdrc_config_reload.go b/console/cdrc_config_reload.go new file mode 100644 index 000000000..d6d377d38 --- /dev/null +++ b/console/cdrc_config_reload.go @@ -0,0 +1,64 @@ +/* +Rating system designed to be used in VoIP Carriers World +Copyright (C) 2012-2015 ITsysCOM + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see +*/ + +package console + +import ( + "github.com/cgrates/cgrates/apier/v1" +) + +func init() { + c := &CmdCdrcConfigReload{ + name: "cdrc_config_reload", + rpcMethod: "ApierV1.ReloadCdrcConfig", + } + commands[c.Name()] = c + c.CommandExecuter = &CommandExecuter{c} +} + +// Commander implementation +type CmdCdrcConfigReload struct { + name string + rpcMethod string + rpcParams *v1.AttrReloadCdrcConfig + *CommandExecuter +} + +func (self *CmdCdrcConfigReload) Name() string { + return self.name +} + +func (self *CmdCdrcConfigReload) RpcMethod() string { + return self.rpcMethod +} + +func (self *CmdCdrcConfigReload) RpcParams(reset bool) interface{} { + if reset || self.rpcParams == nil { + self.rpcParams = new(v1.AttrReloadCdrcConfig) + } + return self.rpcParams +} + +func (self *CmdCdrcConfigReload) PostprocessRpcParams() error { + return nil +} + +func (self *CmdCdrcConfigReload) RpcResult() interface{} { + var s string + return &s +}