in clients/consul_client/consul_client.go [54:93]
func (scc *ShenYuConsulClient) NewClient(clientParam interface{}) (client interface{}, createResult bool, err error) {
ccp, ok := clientParam.(*ConsulClientParam)
if !ok {
logger.Fatalf("init consul client error %v:", err)
}
if len(ccp.Host) > 0 && len(ccp.Token) > 0 && ccp.Port > 0 {
//use customer param to create client
config := api.DefaultConfig()
config.Address = ccp.Host + ":" + strconv.Itoa(ccp.Port)
config.Token = ccp.Token
client, err := api.NewClient(config)
if err == nil {
logger.Infof("Create customer consul client success!")
return &ShenYuConsulClient{
Ccp: &ConsulClientParam{
Host: ccp.Host,
Token: ccp.Token,
Port: ccp.Port,
},
ConsulClient: client,
}, true, nil
}
} else {
//use default consul client
config := api.DefaultConfig()
client, err := api.NewClient(config)
if err == nil {
logger.Infof("Create default consul client success!")
return &ShenYuConsulClient{
Ccp: &ConsulClientParam{
Host: ccp.Host,
Token: ccp.Token,
Port: ccp.Port,
},
ConsulClient: client,
}, true, nil
}
}
return &ShenYuConsulClient{}, false, err
}