diff --git a/console/account.go b/console/account.go index 17cf5a9b7..421731927 100644 --- a/console/account.go +++ b/console/account.go @@ -53,7 +53,7 @@ func (self *CmdGetAccount) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &utils.AttrGetAccount{Direction: "*out"} } - return self.rpcParams + return *self.rpcParams } func (self *CmdGetAccount) PostprocessRpcParams() error { diff --git a/console/account_add.go b/console/account_add.go index 605226e3a..8aa2cdc0f 100644 --- a/console/account_add.go +++ b/console/account_add.go @@ -49,7 +49,7 @@ func (self *CmdAddAccount) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &utils.AttrSetAccount{Direction: utils.OUT} } - return self.rpcParams + return *self.rpcParams } func (self *CmdAddAccount) PostprocessRpcParams() error { diff --git a/console/accountactions_set.go b/console/accountactions_set.go index 38914aadb..72107b57f 100644 --- a/console/accountactions_set.go +++ b/console/accountactions_set.go @@ -49,7 +49,7 @@ func (self *CmdSetAccountActions) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &utils.TPAccountActions{} } - return self.rpcParams + return *self.rpcParams } func (self *CmdSetAccountActions) PostprocessRpcParams() error { diff --git a/console/action_execute.go b/console/action_execute.go index 79dd3b5af..434bb1209 100644 --- a/console/action_execute.go +++ b/console/action_execute.go @@ -52,7 +52,7 @@ func (self *CmdExecuteAction) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &utils.AttrExecuteAction{Direction: utils.OUT} } - return self.rpcParams + return *self.rpcParams } func (self *CmdExecuteAction) PostprocessRpcParams() error { diff --git a/console/balance_debit.go b/console/balance_debit.go index ce89805f7..cf6b62329 100644 --- a/console/balance_debit.go +++ b/console/balance_debit.go @@ -52,7 +52,7 @@ func (self *CmdDebitBalance) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &engine.CallDescriptor{Direction: "*out"} } - return self.rpcParams + return *self.rpcParams } func (self *CmdDebitBalance) PostprocessRpcParams() error { diff --git a/console/balance_set.go b/console/balance_set.go index d66eb44ef..14237b5e7 100644 --- a/console/balance_set.go +++ b/console/balance_set.go @@ -52,7 +52,7 @@ func (self *CmdAddBalance) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &v1.AttrAddBalance{BalanceType: utils.MONETARY, Overwrite: false} } - return self.rpcParams + return *self.rpcParams } func (self *CmdAddBalance) PostprocessRpcParams() error { diff --git a/console/cache_age.go b/console/cache_age.go index ba6f52a79..b115aac5a 100644 --- a/console/cache_age.go +++ b/console/cache_age.go @@ -49,7 +49,7 @@ func (self *CmdGetCacheAge) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &StringWrapper{} } - return self.rpcParams + return *self.rpcParams } func (self *CmdGetCacheAge) PostprocessRpcParams() error { diff --git a/console/cache_reload.go b/console/cache_reload.go index 6c370d4e9..b5aefcde3 100644 --- a/console/cache_reload.go +++ b/console/cache_reload.go @@ -50,7 +50,7 @@ func (self *CmdReloadCache) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &utils.ApiReloadCache{} } - return self.rpcParams + return *self.rpcParams } func (self *CmdReloadCache) PostprocessRpcParams() error { diff --git a/console/cache_stats.go b/console/cache_stats.go index a2f184760..1720997f5 100644 --- a/console/cache_stats.go +++ b/console/cache_stats.go @@ -49,7 +49,7 @@ func (self *CmdGetCacheStats) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &utils.AttrCacheStats{} } - return self.rpcParams + return *self.rpcParams } func (self *CmdGetCacheStats) PostprocessRpcParams() error { diff --git a/console/callcost.go b/console/callcost.go index 237a9d6b2..966879ced 100644 --- a/console/callcost.go +++ b/console/callcost.go @@ -54,7 +54,7 @@ func (self *CmdGetCostDetails) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &v1.AttrGetCallCost{RunId: utils.DEFAULT_RUNID} } - return self.rpcParams + return *self.rpcParams } func (self *CmdGetCostDetails) PostprocessRpcParams() error { diff --git a/console/cdrs_export.go b/console/cdrs_export.go index 85ac82e89..dda3f8f26 100644 --- a/console/cdrs_export.go +++ b/console/cdrs_export.go @@ -49,7 +49,7 @@ func (self *CmdExportCdrs) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &utils.AttrExportCdrsToFile{} } - return self.rpcParams + return *self.rpcParams } func (self *CmdExportCdrs) PostprocessRpcParams() error { diff --git a/console/cdrs_rem.go b/console/cdrs_rem.go index 313d689cc..b875060c1 100644 --- a/console/cdrs_rem.go +++ b/console/cdrs_rem.go @@ -49,7 +49,7 @@ func (self *CmdRemCdrs) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &utils.AttrRemCdrs{} } - return self.rpcParams + return *self.rpcParams } func (self *CmdRemCdrs) PostprocessRpcParams() error { diff --git a/console/cdrstats_metrics.go b/console/cdrstats_metrics.go index d9975e630..e041f9c55 100644 --- a/console/cdrstats_metrics.go +++ b/console/cdrstats_metrics.go @@ -49,7 +49,7 @@ func (self *CmdCdrStatsMetrics) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &v1.AttrGetMetrics{} } - return self.rpcParams + return *self.rpcParams } func (self *CmdCdrStatsMetrics) PostprocessRpcParams() error { diff --git a/console/cdrstats_queueids.go b/console/cdrstats_queueids.go index b267892e5..3b45fc3ec 100644 --- a/console/cdrstats_queueids.go +++ b/console/cdrstats_queueids.go @@ -46,7 +46,7 @@ func (self *CmdCdrStatsQueueIds) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &StringWrapper{} } - return self.rpcParams + return *self.rpcParams } func (self *CmdCdrStatsQueueIds) PostprocessRpcParams() error { diff --git a/console/cdrstats_reload.go b/console/cdrstats_reload.go index b3f3c2cad..53bb4ceea 100644 --- a/console/cdrstats_reload.go +++ b/console/cdrstats_reload.go @@ -51,7 +51,7 @@ func (self *CmdCdrReloadQueues) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &utils.AttrCDRStatsReloadQueues{} } - return self.rpcParams + return *self.rpcParams } func (self *CmdCdrReloadQueues) PostprocessRpcParams() error { diff --git a/console/cdrstats_reset.go b/console/cdrstats_reset.go index 8b076f797..5ec279caf 100644 --- a/console/cdrstats_reset.go +++ b/console/cdrstats_reset.go @@ -49,7 +49,7 @@ func (self *CmdCdrResetQueues) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &utils.AttrCDRStatsReloadQueues{} } - return self.rpcParams + return *self.rpcParams } func (self *CmdCdrResetQueues) PostprocessRpcParams() error { diff --git a/console/command_executer.go b/console/command_executer.go index e551cc711..dfd22f9fd 100644 --- a/console/command_executer.go +++ b/console/command_executer.go @@ -56,15 +56,26 @@ func (ce *CommandExecuter) FromArgs(args string, verbose bool) error { return nil } -func (ce *CommandExecuter) ClientArgs() (args []string) { - val := reflect.ValueOf(ce.command.RpcParams()).Elem() - for i := 0; i < val.NumField(); i++ { - typeField := val.Type().Field(i) - args = append(args, typeField.Name) +func (ce *CommandExecuter) clientArgs(iface interface{}) (args []string) { + val := reflect.ValueOf(iface) + typ := reflect.TypeOf(iface) + for i := 0; i < typ.NumField(); i++ { + valField := val.Field(i) + typeField := typ.Field(i) + switch valField.Kind() { + case reflect.Struct: + args = append(args, ce.clientArgs(valField.Interface())...) + default: + args = append(args, typeField.Name) + } } return } +func (ce *CommandExecuter) ClientArgs() (args []string) { + return ce.clientArgs(ce.command.RpcParams()) +} + // To be overwritten by commands that do not need a rpc call func (ce *CommandExecuter) LocalExecute() string { return "" diff --git a/console/cost.go b/console/cost.go index 9130d760a..15c6d4975 100644 --- a/console/cost.go +++ b/console/cost.go @@ -51,7 +51,7 @@ func (self *CmdGetCost) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &engine.CallDescriptor{Direction: "*out"} } - return self.rpcParams + return *self.rpcParams } func (self *CmdGetCost) PostprocessRpcParams() error { diff --git a/console/datacost.go b/console/datacost.go index 89b83e678..ef550e23a 100644 --- a/console/datacost.go +++ b/console/datacost.go @@ -55,7 +55,7 @@ func (self *CmdGetDataCost) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &v1.AttrGetDataCost{Direction: utils.OUT} } - return self.rpcParams + return *self.rpcParams } func (self *CmdGetDataCost) PostprocessRpcParams() error { diff --git a/console/destination.go b/console/destination.go index 333e3f5a9..94785fc82 100644 --- a/console/destination.go +++ b/console/destination.go @@ -49,7 +49,7 @@ func (self *CmdGetDestination) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &StringWrapper{} } - return self.rpcParams + return *self.rpcParams } func (self *CmdGetDestination) PostprocessRpcParams() error { diff --git a/console/lcr.go b/console/lcr.go index 59a2a5d57..659a45991 100644 --- a/console/lcr.go +++ b/console/lcr.go @@ -49,7 +49,7 @@ func (self *CmdGetLcr) RpcMethod() string { } func (self *CmdGetLcr) RpcParams() interface{} { - return self.rpcParams + return *self.rpcParams } func (self *CmdGetLcr) PostprocessRpcParams() error { diff --git a/console/load_tp_from_folder.go b/console/load_tp_from_folder.go index 491aec259..68bf484e2 100644 --- a/console/load_tp_from_folder.go +++ b/console/load_tp_from_folder.go @@ -50,7 +50,7 @@ func (self *LoadTpFromFolder) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &utils.AttrLoadTpFromFolder{} } - return self.rpcParams + return *self.rpcParams } func (self *LoadTpFromFolder) PostprocessRpcParams() error { diff --git a/console/load_tp_from_stordb.go b/console/load_tp_from_stordb.go index b05ef935f..56ac50701 100644 --- a/console/load_tp_from_stordb.go +++ b/console/load_tp_from_stordb.go @@ -50,7 +50,7 @@ func (self *LoadTpFromStorDb) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &v1.AttrLoadTpFromStorDb{} } - return self.rpcParams + return *self.rpcParams } func (self *LoadTpFromStorDb) PostprocessRpcParams() error { diff --git a/console/maxduration.go b/console/maxduration.go index 3133a9fe3..950088575 100644 --- a/console/maxduration.go +++ b/console/maxduration.go @@ -51,7 +51,7 @@ func (self *CmdGetMaxDuration) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &engine.CallDescriptor{Direction: "*out"} } - return self.rpcParams + return *self.rpcParams } func (self *CmdGetMaxDuration) PostprocessRpcParams() error { diff --git a/console/parse.go b/console/parse.go index cc2aba797..5037e4395 100644 --- a/console/parse.go +++ b/console/parse.go @@ -53,7 +53,7 @@ func (self *CmdParse) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &AttrParse{} } - return self.rpcParams + return *self.rpcParams } func (self *CmdParse) RpcResult() interface{} { diff --git a/console/ratingprofile_set.go b/console/ratingprofile_set.go index 016deab0c..f8a3e9f9a 100644 --- a/console/ratingprofile_set.go +++ b/console/ratingprofile_set.go @@ -50,7 +50,7 @@ func (self *CmdSetRatingProfile) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &utils.TPRatingProfile{} } - return self.rpcParams + return *self.rpcParams } func (self *CmdSetRatingProfile) PostprocessRpcParams() error { diff --git a/console/scheduler_reload.go b/console/scheduler_reload.go index c75ba14d8..f929c08dc 100644 --- a/console/scheduler_reload.go +++ b/console/scheduler_reload.go @@ -47,7 +47,7 @@ func (self *CmdReloadScheduler) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &StringWrapper{} } - return self.rpcParams + return *self.rpcParams } func (self *CmdReloadScheduler) PostprocessRpcParams() error { diff --git a/console/sharedgroup.go b/console/sharedgroup.go index be19e2816..7f280a8de 100644 --- a/console/sharedgroup.go +++ b/console/sharedgroup.go @@ -49,7 +49,7 @@ func (self *CmdGetSharedGroup) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &StringWrapper{} } - return self.rpcParams + return *self.rpcParams } func (self *CmdGetSharedGroup) PostprocessRpcParams() error { diff --git a/console/status.go b/console/status.go index 8c00d1302..0ffa0f8fb 100644 --- a/console/status.go +++ b/console/status.go @@ -46,7 +46,7 @@ func (self *CmdStatus) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &StringWrapper{} } - return self.rpcParams + return *self.rpcParams } func (self *CmdStatus) PostprocessRpcParams() error { diff --git a/console/triggeredaction_add.go b/console/triggeredaction_add.go index 6699c5238..06cf33d05 100644 --- a/console/triggeredaction_add.go +++ b/console/triggeredaction_add.go @@ -49,7 +49,7 @@ func (self *CmdAddTriggeredAction) RpcParams() interface{} { if self.rpcParams == nil { self.rpcParams = &v1.AttrAddActionTrigger{BalanceDirection: "*out"} } - return self.rpcParams + return *self.rpcParams } func (self *CmdAddTriggeredAction) PostprocessRpcParams() error {