func()

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
}