renamed json to rpc_encoding

This commit is contained in:
Radu Ioan Fericean
2012-07-27 18:21:23 +03:00
parent 87f208811e
commit 07dcefd593
11 changed files with 70 additions and 58 deletions

View File

@@ -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 := &timespans.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))
}

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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