From 07dcefd59367523c7de8ae48168c63dd57a14f2d Mon Sep 17 00:00:00 2001 From: Radu Ioan Fericean Date: Fri, 27 Jul 2012 18:21:23 +0300 Subject: [PATCH] renamed json to rpc_encoding --- cmd/cgr-rater/cgr-rater.go | 74 +++++++++++++++++++-------------- cmd/cgr-rater/rater_test.go | 16 +++---- conf/balancer.config | 4 +- conf/balancer_standalone.config | 4 +- conf/full.config | 8 ++-- conf/mediator.config | 4 +- conf/rater.config | 2 +- conf/rater_standalone.config | 2 +- conf/scheduler.config | 2 +- conf/session_manager.config | 4 +- data/test.config | 8 ++-- 11 files changed, 70 insertions(+), 58 deletions(-) diff --git a/cmd/cgr-rater/cgr-rater.go b/cmd/cgr-rater/cgr-rater.go index e97bae747..bdbb15591 100644 --- a/cmd/cgr-rater/cgr-rater.go +++ b/cmd/cgr-rater/cgr-rater.go @@ -36,6 +36,9 @@ import ( const ( DISABLED = "disabled" INTERNAL = "internal" + JSON = "json" + GOB = "gob" + DBTYPE = "postgres" ) var ( @@ -43,15 +46,15 @@ var ( redis_server = "127.0.0.1:6379" // redis address host:port redis_db = 10 // redis database number - rater_enabled = false // start standalone server (no balancer) - rater_balancer = DISABLED // balancer address host:port - rater_listen = "127.0.0.1:1234" // listening address host:port - rater_json = false // use JSON for RPC encoding + rater_enabled = false // start standalone server (no balancer) + rater_balancer = DISABLED // balancer address host:port + rater_listen = "127.0.0.1:1234" // listening address host:port + rater_rpc_encoding = GOB // use JSON for RPC encoding balancer_enabled = false balancer_listen_rater = "127.0.0.1:2000" // Rater server address balancer_listen = "127.0.0.1:2001" // Json RPC server address - balancer_json = false // use JSON for RPC encoding + balancer_rpc_encoding = GOB // use JSON for RPC encoding scheduler_enabled = false @@ -59,19 +62,20 @@ var ( sm_rater = INTERNAL // address where to access rater. Can be internal, direct rater address or the address of a balancer sm_freeswitch_server = "localhost:8021" // freeswitch address host:port sm_freeswitch_pass = "ClueCon" // reeswitch address host:port - sm_json = false // use JSON for RPC encoding + sm_rpc_encoding = GOB // use JSON for RPC encoding - mediator_enabled = false - mediator_cdr_file = "Master.csv" // Freeswitch Master CSV CDR file. - mediator_result_file = "out.csv" // Generated file containing CDR and price info. - mediator_rater = INTERNAL // address where to access rater. Can be internal, direct rater address or the address of a balancer - mediator_host = "localhost" // The host to connect to. Values that start with / are for UNIX domain sockets. - mediator_port = "5432" // The port to bind to. - mediator_db = "cgrates" // The name of the database to connect to. - mediator_user = "" // The user to sign in as. - mediator_password = "" // The user's password. - mediator_json = false // use JSON for RPC encoding - mediator_skipdb = false + mediator_enabled = false + mediator_cdr_file = "Master.csv" // Freeswitch Master CSV CDR file. + mediator_result_file = "out.csv" // Generated file containing CDR and price info. + mediator_rater = INTERNAL // address where to access rater. Can be internal, direct rater address or the address of a balancer + mediator_type = DBTYPE + mediator_host = "localhost" // The host to connect to. Values that start with / are for UNIX domain sockets. + mediator_port = "5432" // The port to bind to. + mediator_db = "cgrates" // The name of the database to connect to. + mediator_user = "" // The user to sign in as. + mediator_password = "" // The user's password. + mediator_rpc_encoding = GOB // use JSON for RPC encoding + mediator_skipdb = false stats_enabled = false stats_listen = "127.0.0.1:8000" // Web server address (for stat reports) @@ -92,12 +96,12 @@ func readConfig(configFn string) { rater_enabled, _ = c.GetBool("rater", "enabled") rater_balancer, _ = c.GetString("rater", "balancer") rater_listen, _ = c.GetString("rater", "listen") - rater_json, _ = c.GetBool("rater", "json") + rater_rpc_encoding, _ = c.GetString("rater", "rpc_encoding") balancer_enabled, _ = c.GetBool("balancer", "enabled") balancer_listen_rater, _ = c.GetString("balancer", "listen_rater") balancer_listen, _ = c.GetString("balancer", "listen") - balancer_json, _ = c.GetBool("balancer", "json") + balancer_rpc_encoding, _ = c.GetString("balancer", "rpc_encoding") scheduler_enabled, _ = c.GetBool("scheduler", "enabled") @@ -105,25 +109,26 @@ func readConfig(configFn string) { sm_rater, _ = c.GetString("session_manager", "rater") sm_freeswitch_server, _ = c.GetString("session_manager", "freeswitch_server") sm_freeswitch_pass, _ = c.GetString("session_manager", "freeswitch_pass") - sm_json, _ = c.GetBool("session_manager", "json") + sm_rpc_encoding, _ = c.GetString("session_manager", "rpc_encoding") mediator_enabled, _ = c.GetBool("mediator", "enabled") mediator_cdr_file, _ = c.GetString("mediator", "cdr_file") mediator_result_file, _ = c.GetString("mediator", "result_file") mediator_rater, _ = c.GetString("mediator", "rater") + mediator_type, _ = c.GetString("mediator", "db_type") mediator_host, _ = c.GetString("mediator", "db_host") mediator_port, _ = c.GetString("mediator", "db_port") mediator_db, _ = c.GetString("mediator", "db_name") mediator_user, _ = c.GetString("mediator", "db_user") mediator_password, _ = c.GetString("mediator", "db_passwd") - mediator_json, _ = c.GetBool("mediator", "json") + mediator_rpc_encoding, _ = c.GetString("mediator", "rpc_encoding") mediator_skipdb, _ = c.GetBool("mediator", "skipdb") stats_enabled, _ = c.GetBool("stats_server", "enabled") stats_listen, _ = c.GetString("stats_server", "listen") } -func listenToRPCRequests(rpcResponder interface{}, rpcAddress string, json bool) { +func listenToRPCRequests(rpcResponder interface{}, rpcAddress string, rpc_encoding string) { l, err := net.Listen("tcp", rpcAddress) defer l.Close() @@ -144,7 +149,7 @@ func listenToRPCRequests(rpcResponder interface{}, rpcAddress string, json bool) } timespans.Logger.Info(fmt.Sprintf("connection started: %v", conn.RemoteAddr())) - if json { + if rpc_encoding == JSON { // log.Print("json encoding") go jsonrpc.ServeConn(conn) } else { @@ -164,10 +169,15 @@ func listenToHttpRequests() { } func startMediator(responder *timespans.Responder) { - db, err := sql.Open("postgres", fmt.Sprintf("host=%s port=%s dbname=%s user=%s password=%s sslmode=disable", mediator_host, mediator_port, mediator_db, mediator_user, mediator_password)) - //defer db.Close() - if err != nil { - timespans.Logger.Err(fmt.Sprintf("failed to open the database: %v", err)) + var db *sql.DB + var err error + if !mediator_skipdb { + db, err = sql.Open("postgres", fmt.Sprintf("host=%s port=%s dbname=%s user=%s password=%s sslmode=disable", mediator_host, mediator_port, mediator_db, mediator_user, mediator_password)) + //defer db.Close() + + if err != nil { + timespans.Logger.Err(fmt.Sprintf("failed to open the database: %v", err)) + } } var connector sessionmanager.Connector if mediator_rater == INTERNAL { @@ -175,7 +185,7 @@ func startMediator(responder *timespans.Responder) { } else { var client *rpc.Client var err error - if mediator_json { + if mediator_rpc_encoding == JSON { client, err = jsonrpc.Dial("tcp", mediator_rater) } else { client, err = rpc.Dial("tcp", mediator_rater) @@ -197,7 +207,7 @@ func startSessionManager(responder *timespans.Responder) { } else { var client *rpc.Client var err error - if sm_json { + if sm_rpc_encoding == JSON { client, err = jsonrpc.Dial("tcp", sm_rater) } else { client, err = rpc.Dial("tcp", sm_rater) @@ -244,13 +254,13 @@ func main() { } responder := ×pans.Responder{ExitChan: exitChan} if rater_enabled && !balancer_enabled { - go listenToRPCRequests(responder, rater_listen, rater_json) + go listenToRPCRequests(responder, rater_listen, rater_rpc_encoding) } if balancer_enabled { go stopBalancerSingnalHandler() - go listenToRPCRequests(new(RaterServer), balancer_listen_rater, false) + go listenToRPCRequests(new(RaterServer), balancer_listen_rater, GOB) responder.Bal = bal - go listenToRPCRequests(responder, balancer_listen, balancer_json) + go listenToRPCRequests(responder, balancer_listen, balancer_rpc_encoding) if rater_enabled { bal.AddClient("local", new(timespans.ResponderWorker)) } diff --git a/cmd/cgr-rater/rater_test.go b/cmd/cgr-rater/rater_test.go index c908d4496..4f4f681e8 100644 --- a/cmd/cgr-rater/rater_test.go +++ b/cmd/cgr-rater/rater_test.go @@ -31,12 +31,12 @@ func TestConfig(t *testing.T) { rater_enabled != true || rater_balancer != "test" || rater_listen != "test" || - rater_json != true || + rater_rpc_encoding != "test" || balancer_enabled != true || balancer_listen_rater != "test" || balancer_listen != "test" || - balancer_json != true || + balancer_rpc_encoding != "test" || scheduler_enabled != true || @@ -44,18 +44,19 @@ func TestConfig(t *testing.T) { sm_rater != "test" || sm_freeswitch_server != "test" || sm_freeswitch_pass != "test" || - sm_json != true || + sm_rpc_encoding != "test" || mediator_enabled != true || mediator_cdr_file != "test" || mediator_result_file != "test" || mediator_rater != "test" || + mediator_type != "test" || mediator_host != "test" || mediator_port != "test" || mediator_db != "test" || mediator_user != "test" || mediator_password != "test" || - mediator_json != true || + mediator_rpc_encoding != "test" || mediator_skipdb != true || stats_enabled != true || stats_listen != "test" { @@ -64,21 +65,22 @@ func TestConfig(t *testing.T) { t.Log(rater_enabled) t.Log(rater_balancer) t.Log(rater_listen) - t.Log(rater_json) + t.Log(rater_rpc_encoding) t.Log(balancer_enabled) t.Log(balancer_listen_rater) t.Log(balancer_listen) - t.Log(balancer_json) + t.Log(balancer_rpc_encoding) t.Log(scheduler_enabled) t.Log(sm_enabled) t.Log(sm_rater) t.Log(sm_freeswitch_server) t.Log(sm_freeswitch_pass) - t.Log(sm_json) + t.Log(sm_rpc_encoding) t.Log(mediator_enabled) t.Log(mediator_cdr_file) t.Log(mediator_result_file) t.Log(mediator_rater) + t.Log(mediator_type) t.Log(mediator_host) t.Log(mediator_port) t.Log(mediator_db) diff --git a/conf/balancer.config b/conf/balancer.config index 1668b8433..b1c8c12bf 100644 --- a/conf/balancer.config +++ b/conf/balancer.config @@ -22,13 +22,13 @@ redis_db = 10 # redis database number enabled = true # Start balancer server listen = 127.0.0.1:2001 # Balancer listen interface listen_rater = 127.0.0.1:2000 # Balancer listen interface -json = false # use JSON for RPC encoding +rpc_encoding = gob # use JSON for RPC encoding [rater] enabled = true listen = 127.0.0.1:2001 # listening address hostort, internal for internal communication only balancer = disabled # if defined it will register to balancer as worker -json = false # use JSON for RPC encoding +rpc_encoding = gob # use JSON for RPC encoding [stats_server] enabled = true diff --git a/conf/balancer_standalone.config b/conf/balancer_standalone.config index c5c884f02..950c620a3 100644 --- a/conf/balancer_standalone.config +++ b/conf/balancer_standalone.config @@ -22,13 +22,13 @@ redis_db = 10 # redis database number enabled = true # Start balancer server listen = 127.0.0.1:2001 # Balancer listen interface listen_rater = 127.0.0.1:2000 # Balancer listen interface -json = false # use JSON for RPC encoding +rpc_encoding = gob # use JSON for RPC encoding [rater] enabled = false listen = 127.0.0.1:2001 # listening address hostort, internal for internal communication only balancer = 127.0.0.1:2000 # if defined it will register to balancer as worker -json = false # use JSON for RPC encoding +rpc_encoding = gob # use JSON for RPC encoding [stats_server] enabled = true diff --git a/conf/full.config b/conf/full.config index 8f955c7b8..0a0e88bd9 100644 --- a/conf/full.config +++ b/conf/full.config @@ -22,13 +22,13 @@ redis_db = 10 # redis database number enabled = false # Start balancer server listen = 127.0.0.1:2001 # Balancer listen interface listen_rater = 127.0.0.1:2000 # Balancer listen interface -json = false # use JSON for RPC encoding +rpc_encoding = gob # use JSON for RPC encoding [rater] enabled = true listen = 127.0.0.1:2001 # listening address hostort, internal for internal communication only balancer = disabled # if defined it will register to balancer as worker -json = false # use JSON for RPC encoding +rpc_encoding = gob # use JSON for RPC encoding [mediator] enabled = true @@ -41,7 +41,7 @@ db_port = 5432 # The port to bind to. db_name = cgrates # The name of the database to connect to. db_user = # The user to sign in as. db_passwd = # The user's password.root -json = true # use JSON for RPC encoding +rpc_encoding = gob # use JSON for RPC encoding skipdb = true [scheduler] @@ -52,7 +52,7 @@ enabled = true rater = 127.0.0.1:2000 #address where to access rater. Can be internal, direct rater address or the address of a balancer freeswitch_server = localhost:8021 # freeswitch address hostort freeswitch_pass = ClueCon # freeswitch address hostort -json = false # use JSON for RPC encoding +rpc_encoding = gob # use JSON for RPC encoding [stats_server] enabled = true diff --git a/conf/mediator.config b/conf/mediator.config index d95a982dc..9b3a59af9 100644 --- a/conf/mediator.config +++ b/conf/mediator.config @@ -22,7 +22,7 @@ redis_db = 10 # redis database number enabled = true listen = 127.0.0.1:2001 # listening address hostort, internal for internal communication only balancer = disabled # if defined it will register to balancer as worker -json = false # use JSON for RPC encoding +rpc_encoding = gob # use JSON for RPC encoding [mediator] enabled = true @@ -35,6 +35,6 @@ db_port = 5432 # The port to bind to. db_name = cgrates # The name of the database to connect to. db_user = # The user to sign in as. db_passwd = # The user's password.root -json = true # use JSON for RPC encoding +rpc_encoding = gob # use JSON for RPC encoding skipdb = true diff --git a/conf/rater.config b/conf/rater.config index 249b58af6..6b3e34218 100644 --- a/conf/rater.config +++ b/conf/rater.config @@ -22,4 +22,4 @@ redis_db = 10 # redis database number enabled = true listen = 127.0.0.1:2001 # listening address hostort, internal for internal communication only balancer = 127.0.0.1:2000 # if defined it will register to balancer as worker -json = false # use JSON for RPC encoding +rpc_encoding = gob # use JSON for RPC encoding diff --git a/conf/rater_standalone.config b/conf/rater_standalone.config index 8fdfc8166..a81dcc42b 100644 --- a/conf/rater_standalone.config +++ b/conf/rater_standalone.config @@ -22,7 +22,7 @@ redis_db = 10 # redis database number enabled = true listen = 127.0.0.1:2001 # listening address hostort, internal for internal communication only balancer = disabled # if defined it will register to balancer as worker -json = false # use JSON for RPC encoding +rpc_encoding = gob # use JSON for RPC encoding [stats_server] enabled = true diff --git a/conf/scheduler.config b/conf/scheduler.config index 6b8f76cdc..a0af8ac4f 100644 --- a/conf/scheduler.config +++ b/conf/scheduler.config @@ -22,7 +22,7 @@ redis_db = 10 # redis database number enabled = true listen = 127.0.0.1:2001 # listening address hostort, internal for internal communication only balancer = disabled # if defined it will register to balancer as worker -json = false # use JSON for RPC encoding +rpc_encoding = gob # use JSON for RPC encoding [scheduler] enabled = true diff --git a/conf/session_manager.config b/conf/session_manager.config index 3b8d83516..2fe7fdc27 100644 --- a/conf/session_manager.config +++ b/conf/session_manager.config @@ -22,12 +22,12 @@ redis_db = 10 # redis database number enable = true listen = 127.0.0.1:2001 # listening address hostort, internal for internal communication only balancer = disabled # if defined it will register to balancer as worker -json = false # use JSON for RPC encoding +rpc_encoding = gob # use JSON for RPC encoding [session_manager] enabled = true rater = internal #address where to access rater. Can be internal, direct rater address or the address of a balancer freeswitch_server = localhost:8021 # freeswitch address hostort freeswitch_pass = ClueCon # freeswitch address hostort -json = false # use JSON for RPC encoding +rpc_encoding = gob # use JSON for RPC encoding diff --git a/data/test.config b/data/test.config index a94aef21c..fc1c054dc 100644 --- a/data/test.config +++ b/data/test.config @@ -22,13 +22,13 @@ redis_db = 1 # redis database number enabled = true # Start balancer server listen = test # Balancer listen interface listen_rater = test # Balancer listen interface -json = true # use JSON for RPC encoding +rpc_encoding = test # use JSON for RPC encoding [rater] enabled = true listen = test # listening address hostort, internal for internal communication only balancer = test # if defined it will register to balancer as worker -json = true # use JSON for RPC encoding +rpc_encoding = test # use JSON for RPC encoding [mediator] enabled = true @@ -41,7 +41,7 @@ db_port = test # The port to bind to. db_name = test # The name of the database to connect to. db_user = test # The user to sign in as. db_passwd = test # The user's password.root -json = true # use JSON for RPC encoding +rpc_encoding = test # use JSON for RPC encoding skipdb = true [scheduler] @@ -52,7 +52,7 @@ enabled = true rater = test #address where to access rater. Can be internal, direct rater address or the address of a balancer freeswitch_server = test # freeswitch address hostort freeswitch_pass = test # freeswitch address hostort -json = true # use JSON for RPC encoding +rpc_encoding = test # use JSON for RPC encoding [stats_server] enabled = true