本文整理汇总了Golang中github.com/coreos/etcd/client.Config.Endpoints方法的典型用法代码示例。如果您正苦于以下问题:Golang Config.Endpoints方法的具体用法?Golang Config.Endpoints怎么用?Golang Config.Endpoints使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/coreos/etcd/client.Config
的用法示例。
在下文中一共展示了Config.Endpoints方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: NewEtcdConfig
// NewEtcdConfig creates a new service discovery backend for etcd
func NewEtcdConfig(config map[string]interface{}) Etcd {
etcd := Etcd{
Prefix: "/containerbuddy",
}
etcdConfig := client.Config{}
switch endpoints := config["endpoints"].(type) {
case string:
etcdConfig.Endpoints = []string{endpoints}
case []string:
etcdConfig.Endpoints = endpoints
default:
log.Fatal("Must provide etcd endpoints")
}
prefix, ok := config["prefix"].(string)
if ok {
etcd.Prefix = prefix
}
etcdClient, err := client.New(etcdConfig)
if err != nil {
log.Fatal(err)
}
etcd.Client = etcdClient
etcd.API = client.NewKeysAPI(etcdClient)
return etcd
}
示例2: setTLS
// SetTLS sets the tls configuration given a tls.Config scheme
func setTLS(cfg *etcd.Config, tls *tls.Config, addrs []string) {
entries := store.CreateEndpoints(addrs, "https")
cfg.Endpoints = entries
// Set transport
t := http.Transport{
Dial: (&net.Dialer{
Timeout: 30 * time.Second,
KeepAlive: 30 * time.Second,
}).Dial,
TLSHandshakeTimeout: 10 * time.Second,
TLSClientConfig: tls,
}
cfg.Transport = &t
}
示例3: NewEtcdConfig
// NewEtcdConfig creates a new service discovery backend for etcd
func NewEtcdConfig(raw interface{}) (*Etcd, error) {
etcd := &Etcd{
Prefix: "/containerpilot",
}
var config etcdRawConfig
etcdConfig := client.Config{}
if err := utils.DecodeRaw(raw, &config); err != nil {
return nil, err
}
etcdConfig.Endpoints = parseEndpoints(config.Endpoints)
if config.Prefix != "" {
etcd.Prefix = config.Prefix
}
etcdClient, err := client.New(etcdConfig)
if err != nil {
return nil, err
}
etcd.Client = etcdClient
etcd.API = client.NewKeysAPI(etcdClient)
return etcd, nil
}
示例4: NewRegistry
func NewRegistry(opts ...registry.Option) registry.Registry {
config := etcd.Config{
Endpoints: []string{"http://127.0.0.1:2379"},
}
var options registry.Options
for _, o := range opts {
o(&options)
}
if options.Timeout == 0 {
options.Timeout = etcd.DefaultRequestTimeout
}
if options.Secure || options.TLSConfig != nil {
tlsConfig := options.TLSConfig
if tlsConfig == nil {
tlsConfig = &tls.Config{
InsecureSkipVerify: true,
}
}
// for InsecureSkipVerify
t := &http.Transport{
Proxy: http.ProxyFromEnvironment,
Dial: (&net.Dialer{
Timeout: 30 * time.Second,
KeepAlive: 30 * time.Second,
}).Dial,
TLSHandshakeTimeout: 10 * time.Second,
TLSClientConfig: tlsConfig,
}
runtime.SetFinalizer(&t, func(tr **http.Transport) {
(*tr).CloseIdleConnections()
})
config.Transport = t
// default secure address
config.Endpoints = []string{"https://127.0.0.1:2379"}
}
var cAddrs []string
for _, addr := range options.Addrs {
if len(addr) == 0 {
continue
}
if options.Secure {
// replace http:// with https:// if its there
addr = strings.Replace(addr, "http://", "https://", 1)
// has the prefix? no... ok add it
if !strings.HasPrefix(addr, "https://") {
addr = "https://" + addr
}
}
cAddrs = append(cAddrs, addr)
}
// if we got addrs then we'll update
if len(cAddrs) > 0 {
config.Endpoints = cAddrs
}
c, _ := etcd.New(config)
e := &etcdRegistry{
client: etcd.NewKeysAPI(c),
options: options,
}
return e
}