fix for console josn Marshall issue

This commit is contained in:
Radu Ioan Fericean
2015-06-15 11:29:14 +03:00
parent 92fd6be01d
commit 0168cd3cf7
33 changed files with 126 additions and 36 deletions

View File

@@ -77,7 +77,7 @@ func executeCommand(command string) {
}
if cmd.RpcMethod() != "" {
res := cmd.RpcResult()
param := cmd.RpcParams()
param := cmd.RpcParams(true)
//log.Print(reflect.TypeOf(param))
switch param.(type) {
case *console.StringWrapper:

View File

@@ -49,10 +49,13 @@ func (self *CmdGetAccount) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdGetAccount) RpcParams() interface{} {
func (self *CmdGetAccount) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &utils.AttrGetAccount{Direction: "*out"}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -45,10 +45,13 @@ func (self *CmdAddAccount) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdAddAccount) RpcParams() interface{} {
func (self *CmdAddAccount) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &utils.AttrSetAccount{Direction: utils.OUT}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -45,10 +45,13 @@ func (self *CmdSetAccountActions) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdSetAccountActions) RpcParams() interface{} {
func (self *CmdSetAccountActions) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &utils.TPAccountActions{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -48,10 +48,13 @@ func (self *CmdExecuteAction) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdExecuteAction) RpcParams() interface{} {
func (self *CmdExecuteAction) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &utils.AttrExecuteAction{Direction: utils.OUT}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -48,10 +48,13 @@ func (self *CmdDebitBalance) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdDebitBalance) RpcParams() interface{} {
func (self *CmdDebitBalance) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &engine.CallDescriptor{Direction: "*out"}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -48,10 +48,13 @@ func (self *CmdAddBalance) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdAddBalance) RpcParams() interface{} {
func (self *CmdAddBalance) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &v1.AttrAddBalance{BalanceType: utils.MONETARY, Overwrite: false}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -45,10 +45,13 @@ func (self *CmdGetCacheAge) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdGetCacheAge) RpcParams() interface{} {
func (self *CmdGetCacheAge) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &StringWrapper{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -46,10 +46,13 @@ func (self *CmdReloadCache) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdReloadCache) RpcParams() interface{} {
func (self *CmdReloadCache) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &utils.ApiReloadCache{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -45,10 +45,13 @@ func (self *CmdGetCacheStats) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdGetCacheStats) RpcParams() interface{} {
func (self *CmdGetCacheStats) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &utils.AttrCacheStats{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -50,10 +50,13 @@ func (self *CmdGetCostDetails) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdGetCostDetails) RpcParams() interface{} {
func (self *CmdGetCostDetails) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &v1.AttrGetCallCost{RunId: utils.DEFAULT_RUNID}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -45,10 +45,13 @@ func (self *CmdExportCdrs) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdExportCdrs) RpcParams() interface{} {
func (self *CmdExportCdrs) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &utils.AttrExportCdrsToFile{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -45,10 +45,13 @@ func (self *CmdRemCdrs) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdRemCdrs) RpcParams() interface{} {
func (self *CmdRemCdrs) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &utils.AttrRemCdrs{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -45,10 +45,13 @@ func (self *CmdCdrStatsMetrics) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdCdrStatsMetrics) RpcParams() interface{} {
func (self *CmdCdrStatsMetrics) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &v1.AttrGetMetrics{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -42,10 +42,13 @@ func (self *CmdCdrStatsQueueIds) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdCdrStatsQueueIds) RpcParams() interface{} {
func (self *CmdCdrStatsQueueIds) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &StringWrapper{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -47,10 +47,13 @@ func (self *CmdCdrReloadQueues) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdCdrReloadQueues) RpcParams() interface{} {
func (self *CmdCdrReloadQueues) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &utils.AttrCDRStatsReloadQueues{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -45,10 +45,13 @@ func (self *CmdCdrResetQueues) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdCdrResetQueues) RpcParams() interface{} {
func (self *CmdCdrResetQueues) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &utils.AttrCDRStatsReloadQueues{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -33,7 +33,7 @@ type Commander interface {
FromArgs(args string, verbose bool) error // Load data from os arguments or flag.Args()
Usage() string // usage message
RpcMethod() string // Method which should be called remotely
RpcParams() interface{} // Parameters to send out on rpc
RpcParams(bool) interface{} // Parameters to send out on rpc
PostprocessRpcParams() error // Corrects rpc parameters when needed
RpcResult() interface{} // Only requirement is to have a String method to print on console
ClientArgs() []string // for autocompletion

View File

@@ -40,17 +40,17 @@ type CommandExecuter struct {
}
func (ce *CommandExecuter) Usage() string {
jsn, _ := json.Marshal(ce.command.RpcParams())
jsn, _ := json.Marshal(ce.command.RpcParams(true))
return fmt.Sprintf("\n\tUsage: %s %s \n", ce.command.Name(), FromJSON(jsn, ce.command.ClientArgs()))
}
// Parses command line args and builds CmdBalance value
func (ce *CommandExecuter) FromArgs(args string, verbose bool) error {
if err := json.Unmarshal(ToJSON(args), ce.command.RpcParams()); err != nil {
if err := json.Unmarshal(ToJSON(args), ce.command.RpcParams(true)); err != nil {
return err
}
if verbose {
jsn, _ := json.Marshal(ce.command.RpcParams())
jsn, _ := json.Marshal(ce.command.RpcParams(true))
fmt.Println(ce.command.Name(), FromJSON(jsn, ce.command.ClientArgs()))
}
return nil
@@ -73,7 +73,7 @@ func (ce *CommandExecuter) clientArgs(iface interface{}) (args []string) {
}
func (ce *CommandExecuter) ClientArgs() (args []string) {
return ce.clientArgs(ce.command.RpcParams())
return ce.clientArgs(ce.command.RpcParams(false))
}
// To be overwritten by commands that do not need a rpc call

View File

@@ -47,10 +47,13 @@ func (self *CmdGetCost) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdGetCost) RpcParams() interface{} {
func (self *CmdGetCost) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &engine.CallDescriptor{Direction: "*out"}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -51,10 +51,13 @@ func (self *CmdGetDataCost) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdGetDataCost) RpcParams() interface{} {
func (self *CmdGetDataCost) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &v1.AttrGetDataCost{Direction: utils.OUT}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -45,10 +45,13 @@ func (self *CmdGetDestination) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdGetDestination) RpcParams() interface{} {
func (self *CmdGetDestination) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &StringWrapper{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -48,7 +48,13 @@ func (self *CmdGetLcr) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdGetLcr) RpcParams() interface{} {
func (self *CmdGetLcr) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &engine.LcrRequest{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -46,10 +46,13 @@ func (self *LoadTpFromFolder) RpcMethod() string {
return self.rpcMethod
}
func (self *LoadTpFromFolder) RpcParams() interface{} {
func (self *LoadTpFromFolder) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &utils.AttrLoadTpFromFolder{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -46,10 +46,13 @@ func (self *LoadTpFromStorDb) RpcMethod() string {
return self.rpcMethod
}
func (self *LoadTpFromStorDb) RpcParams() interface{} {
func (self *LoadTpFromStorDb) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &v1.AttrLoadTpFromStorDb{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -47,10 +47,13 @@ func (self *CmdGetMaxDuration) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdGetMaxDuration) RpcParams() interface{} {
func (self *CmdGetMaxDuration) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &engine.CallDescriptor{Direction: "*out"}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -49,10 +49,13 @@ func (self *CmdParse) RpcMethod() string {
return ""
}
func (self *CmdParse) RpcParams() interface{} {
func (self *CmdParse) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &AttrParse{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -46,10 +46,13 @@ func (self *CmdSetRatingProfile) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdSetRatingProfile) RpcParams() interface{} {
func (self *CmdSetRatingProfile) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &utils.TPRatingProfile{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -43,10 +43,13 @@ func (self *CmdReloadScheduler) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdReloadScheduler) RpcParams() interface{} {
func (self *CmdReloadScheduler) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &StringWrapper{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -45,10 +45,13 @@ func (self *CmdGetSharedGroup) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdGetSharedGroup) RpcParams() interface{} {
func (self *CmdGetSharedGroup) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &StringWrapper{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -42,10 +42,13 @@ func (self *CmdStatus) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdStatus) RpcParams() interface{} {
func (self *CmdStatus) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &StringWrapper{}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -45,10 +45,13 @@ func (self *CmdAddTriggeredAction) RpcMethod() string {
return self.rpcMethod
}
func (self *CmdAddTriggeredAction) RpcParams() interface{} {
func (self *CmdAddTriggeredAction) RpcParams(ptr bool) interface{} {
if self.rpcParams == nil {
self.rpcParams = &v1.AttrAddActionTrigger{BalanceDirection: "*out"}
}
if ptr {
return self.rpcParams
}
return *self.rpcParams
}

View File

@@ -31,5 +31,5 @@ cd /root/cgr
echo "for cgradmin run: cgr-engine -config_dir data/conf/samples/cgradmin"
echo 'export GOROOT=/root/go; export GOPATH=/root/code; export PATH=$GOROOT/bin:$GOPATH/bin:$PATH'>>/root/.zshrc
/bin/sh /root/.oh-my-zsh/tools/upgrade.sh
#/bin/sh /root/.oh-my-zsh/tools/upgrade.sh
zsh