本文整理汇总了Golang中github.com/coreos/etcd/pkg/transport.NewTransport函数的典型用法代码示例。如果您正苦于以下问题:Golang NewTransport函数的具体用法?Golang NewTransport怎么用?Golang NewTransport使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewTransport函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: getHTTPBodyAsLines
func getHTTPBodyAsLines(t *testing.T, url string) []string {
cfgtls := transport.TLSInfo{}
tr, err := transport.NewTransport(cfgtls, time.Second)
if err != nil {
t.Fatalf("Error getting transport: %v", err)
}
tr.MaxIdleConns = -1
tr.DisableKeepAlives = true
cli := &http.Client{Transport: tr}
resp, err := cli.Get(url)
if err != nil {
t.Fatalf("Error fetching: %v", err)
}
reader := bufio.NewReader(resp.Body)
lines := []string{}
for {
line, err := reader.ReadString('\n')
if err != nil {
if err == io.EOF {
break
} else {
t.Fatalf("error reading: %v", err)
}
}
lines = append(lines, line)
}
resp.Body.Close()
return lines
}
开发者ID:pulcy,项目名称:vault-monkey,代码行数:33,代码来源:metrics_test.go
示例2: NewClient
func NewClient(url string) (*Client, error) {
tr, err := transport.NewTransport(transport.TLSInfo{}, defaultDialTimeout)
if err != nil {
return nil, err
}
return newClient(url, tr)
}
开发者ID:glerchundi,项目名称:etcd2-bootstrapper,代码行数:7,代码来源:client.go
示例3: newTransport
func (c *config) newTransport() (*http.Transport, error) {
return transport.NewTransport(transport.TLSInfo{
CAFile: c.ca,
CertFile: c.cert,
KeyFile: c.key,
}, 30*time.Second)
}
开发者ID:mickep76,项目名称:etcdrest,代码行数:7,代码来源:etcd.go
示例4: New
// New trys to connect to etcd server. endpoints must be addreses
// delimited by comma, like "http://127.0.0.1:4001,http://127.0.0.1:2379".
func New(endpoints string) (*Etcd, error) {
eps := strings.Split(endpoints, ",")
for i, ep := range eps {
u, e := url.Parse(ep)
if e != nil {
return nil, fmt.Errorf("url.Parse: %v", e)
}
if u.Scheme == "" {
u.Scheme = "http"
}
eps[i] = u.String()
}
tr, e := transport.NewTransport(transport.TLSInfo{},
10*time.Second) // timeout = 10sec
if e != nil {
return nil, fmt.Errorf("transport.NewTransport: %v", e)
}
c, e := client.New(client.Config{Endpoints: eps, Transport: tr})
if e != nil {
return nil, fmt.Errorf("client.New: %v", e)
}
ctx, cancel := context.WithTimeout(context.Background(), client.DefaultRequestTimeout)
e = c.Sync(ctx)
cancel()
if e != nil {
return nil, fmt.Errorf("(etc)client.Sync: %v", e)
}
return &Etcd{client.NewKeysAPI(c)}, nil
}
开发者ID:topicai,项目名称:etcc,代码行数:36,代码来源:etcc.go
示例5: newDiscovery
func newDiscovery(durl, dproxyurl string, id types.ID) (*discovery, error) {
u, err := url.Parse(durl)
if err != nil {
return nil, err
}
token := u.Path
u.Path = ""
pf, err := newProxyFunc(dproxyurl)
if err != nil {
return nil, err
}
// TODO: add ResponseHeaderTimeout back when watch on discovery service writes header early
tr, err := transport.NewTransport(transport.TLSInfo{}, 30*time.Second)
if err != nil {
return nil, err
}
tr.Proxy = pf
cfg := client.Config{
Transport: tr,
Endpoints: []string{u.String()},
}
c, err := client.New(cfg)
if err != nil {
return nil, err
}
dc := client.NewKeysAPIWithPrefix(c, "")
return &discovery{
cluster: token,
c: dc,
id: id,
url: u,
clock: clockwork.NewRealClock(),
}, nil
}
开发者ID:CliffYuan,项目名称:etcd,代码行数:35,代码来源:discovery.go
示例6: getTransport
func getTransport(c *cli.Context) (*http.Transport, error) {
cafile := c.GlobalString("ca-file")
certfile := c.GlobalString("cert-file")
keyfile := c.GlobalString("key-file")
// Use an environment variable if nothing was supplied on the
// command line
if cafile == "" {
cafile = os.Getenv("ETCDCTL_CA_FILE")
}
if certfile == "" {
certfile = os.Getenv("ETCDCTL_CERT_FILE")
}
if keyfile == "" {
keyfile = os.Getenv("ETCDCTL_KEY_FILE")
}
tls := transport.TLSInfo{
CAFile: cafile,
CertFile: certfile,
KeyFile: keyfile,
}
return transport.NewTransport(tls)
}
开发者ID:CedarLogic,项目名称:arangodb,代码行数:25,代码来源:util.go
示例7: handleUpgrade
func handleUpgrade(c *cli.Context) {
if c.String("old-version") != "1" {
fmt.Printf("Do not support upgrade from version %s\n", c.String("old-version"))
os.Exit(1)
}
if c.String("new-version") != "2" {
fmt.Printf("Do not support upgrade to version %s\n", c.String("new-version"))
os.Exit(1)
}
tls := transport.TLSInfo{
CAFile: c.String("peer-ca-file"),
CertFile: c.String("peer-cert-file"),
KeyFile: c.String("peer-key-file"),
}
t, err := transport.NewTransport(tls)
if err != nil {
log.Fatal(err)
}
client := http.Client{Transport: t}
resp, err := client.Get(c.String("peer-url") + "/v2/admin/next-internal-version")
if err != nil {
fmt.Printf("Failed to send upgrade request to %s: %v\n", c.String("peer-url"), err)
return
}
if resp.StatusCode == http.StatusOK {
fmt.Println("Cluster will start upgrading from internal version 1 to 2 in 10 seconds.")
return
}
if resp.StatusCode == http.StatusNotFound {
fmt.Println("Cluster cannot upgrade to 2: version is not 0.4.7")
return
}
fmt.Printf("Faild to send upgrade request to %s: bad status code %d\n", c.String("cluster-url"), resp.StatusCode)
}
开发者ID:CedarLogic,项目名称:arangodb,代码行数:34,代码来源:upgrade.go
示例8: getTransport
func getTransport(c *cli.Context) (*http.Transport, error) {
cafile := c.GlobalString("ca-file")
certfile := c.GlobalString("cert-file")
keyfile := c.GlobalString("key-file")
// Use an environment variable if nothing was supplied on the
// command line
if cafile == "" {
cafile = os.Getenv("ETCDCTL_CA_FILE")
}
if certfile == "" {
certfile = os.Getenv("ETCDCTL_CERT_FILE")
}
if keyfile == "" {
keyfile = os.Getenv("ETCDCTL_KEY_FILE")
}
tls := transport.TLSInfo{
CAFile: cafile,
CertFile: certfile,
KeyFile: keyfile,
}
dialTimeout := defaultDialTimeout
totalTimeout := c.GlobalDuration("total-timeout")
if totalTimeout != 0 && totalTimeout < dialTimeout {
dialTimeout = totalTimeout
}
return transport.NewTransport(tls, dialTimeout)
}
开发者ID:mgurevin,项目名称:etcd,代码行数:30,代码来源:util.go
示例9: getTransport
func getTransport(params *EtcdConnectionParams) (*http.Transport, error) {
tls := transport.TLSInfo{
CAFile: params.CaFile,
CertFile: params.CertFile,
KeyFile: params.KeyFile,
}
return transport.NewTransport(tls, params.ConnectionTimeout)
}
开发者ID:code-tool,项目名称:artd-status-updater,代码行数:9,代码来源:util.go
示例10: getTransport
func getTransport(c *cli.Context) (*http.Transport, error) {
tls := transport.TLSInfo{
CAFile: c.GlobalString("ca-file"),
CertFile: c.GlobalString("cert-file"),
KeyFile: c.GlobalString("key-file"),
}
return transport.NewTransport(tls)
}
开发者ID:diffoperator,项目名称:etcd,代码行数:9,代码来源:util.go
示例11: startProxy
// startProxy launches an HTTP proxy for client communication which proxies to other etcd nodes.
func startProxy(cfg *config) error {
cls, err := setupCluster(cfg)
if err != nil {
return fmt.Errorf("error setting up initial cluster: %v", err)
}
if cfg.durl != "" {
s, err := discovery.GetCluster(cfg.durl, cfg.dproxy)
if err != nil {
return err
}
if cls, err = etcdserver.NewClusterFromString(cfg.durl, s); err != nil {
return err
}
}
pt, err := transport.NewTransport(cfg.clientTLSInfo)
if err != nil {
return err
}
// TODO(jonboulle): update peerURLs dynamically (i.e. when updating
// clientURLs) instead of just using the initial fixed list here
peerURLs := cls.PeerURLs()
uf := func() []string {
cls, err := etcdserver.GetClusterFromPeers(peerURLs)
if err != nil {
log.Printf("proxy: %v", err)
return []string{}
}
return cls.ClientURLs()
}
ph := proxy.NewHandler(pt, uf)
ph = &cors.CORSHandler{
Handler: ph,
Info: cfg.corsInfo,
}
if cfg.isReadonlyProxy() {
ph = proxy.NewReadonlyHandler(ph)
}
// Start a proxy server goroutine for each listen address
for _, u := range cfg.lcurls {
l, err := transport.NewListener(u.Host, u.Scheme, cfg.clientTLSInfo)
if err != nil {
return err
}
host := u.Host
go func() {
log.Print("proxy: listening for client requests on ", host)
log.Fatal(http.Serve(l, ph))
}()
}
return nil
}
开发者ID:ngpestelos,项目名称:etcd,代码行数:57,代码来源:etcd.go
示例12: newHttpTransport
func newHttpTransport(t *testing.T, certFile, keyFile, caFile string) etcd.CancelableTransport {
tlsInfo := transport.TLSInfo{
CertFile: certFile,
KeyFile: keyFile,
CAFile: caFile,
}
tr, err := transport.NewTransport(tlsInfo, time.Second)
if err != nil {
t.Fatal(err)
}
return tr
}
开发者ID:juanluisvaladas,项目名称:origin,代码行数:12,代码来源:utils.go
示例13: NewTLSClient
func NewTLSClient(url string, certFile, keyFile, caCertFile string) (*Client, error) {
tr, err := transport.NewTransport(
transport.TLSInfo{
CAFile: caCertFile,
CertFile: certFile,
KeyFile: keyFile,
},
defaultDialTimeout,
)
if err != nil {
return nil, err
}
return newClient(url, tr)
}
开发者ID:glerchundi,项目名称:etcd2-bootstrapper,代码行数:14,代码来源:client.go
示例14: startProxy
// startProxy launches an HTTP proxy for client communication which proxies to other etcd nodes.
func startProxy() {
cls, err := setupCluster()
if err != nil {
log.Fatalf("etcd: error setting up initial cluster: %v", err)
}
pt, err := transport.NewTransport(clientTLSInfo)
if err != nil {
log.Fatal(err)
}
// TODO(jonboulle): update peerURLs dynamically (i.e. when updating
// clientURLs) instead of just using the initial fixed list here
peerURLs := cls.PeerURLs()
uf := func() []string {
cls, err := etcdserver.GetClusterFromPeers(peerURLs)
if err != nil {
log.Printf("etcd: %v", err)
return []string{}
}
return cls.ClientURLs()
}
ph := proxy.NewHandler(pt, uf)
ph = &cors.CORSHandler{
Handler: ph,
Info: corsInfo,
}
if string(*proxyFlag) == flags.ProxyValueReadonly {
ph = proxy.NewReadonlyHandler(ph)
}
lcurls, err := flags.URLsFromFlags(fs, "listen-client-urls", "bind-addr", clientTLSInfo)
if err != nil {
log.Fatal(err.Error())
}
// Start a proxy server goroutine for each listen address
for _, u := range lcurls {
l, err := transport.NewListener(u.Host, clientTLSInfo)
if err != nil {
log.Fatal(err)
}
host := u.Host
go func() {
log.Print("etcd: proxy listening for client requests on ", host)
log.Fatal(http.Serve(l, ph))
}()
}
}
开发者ID:ericcapricorn,项目名称:etcd,代码行数:51,代码来源:main.go
示例15: newTransport
func newTransport(e Etcdtool) *http.Transport {
tls := transport.TLSInfo{
CAFile: e.CA,
CertFile: e.Cert,
KeyFile: e.Key,
}
timeout := 30 * time.Second
tr, err := transport.NewTransport(tls, timeout)
if err != nil {
fatal(err.Error())
}
return tr
}
开发者ID:mickep76,项目名称:etcdtool,代码行数:15,代码来源:connect.go
示例16: Launch
// TODO: support TLS
func (c *cluster) Launch(t *testing.T) {
if c.Size <= 0 {
t.Fatalf("cluster size <= 0")
}
lns := make([]net.Listener, c.Size)
addrs := make([]string, c.Size)
for i := 0; i < c.Size; i++ {
l := newLocalListener(t)
// each member claims only one peer listener
lns[i] = l
addrs[i] = fmt.Sprintf("%v=%v", c.name(i), "http://"+l.Addr().String())
}
clusterStr := strings.Join(addrs, ",")
var err error
for i := 0; i < c.Size; i++ {
m := member{}
m.PeerListeners = []net.Listener{lns[i]}
cln := newLocalListener(t)
m.ClientListeners = []net.Listener{cln}
m.Name = c.name(i)
m.ClientURLs, err = types.NewURLs([]string{"http://" + cln.Addr().String()})
if err != nil {
t.Fatal(err)
}
m.DataDir, err = ioutil.TempDir(os.TempDir(), "etcd")
if err != nil {
t.Fatal(err)
}
m.Cluster, err = etcdserver.NewClusterFromString(clusterName, clusterStr)
if err != nil {
t.Fatal(err)
}
m.ClusterState = etcdserver.ClusterStateValueNew
m.Transport, err = transport.NewTransport(transport.TLSInfo{})
if err != nil {
t.Fatal(err)
}
// TODO: need the support of graceful stop in Sender to remove this
m.Transport.DisableKeepAlives = true
m.Transport.Dial = (&net.Dialer{Timeout: 100 * time.Millisecond}).Dial
m.Launch(t)
c.Members = append(c.Members, m)
}
}
开发者ID:ericcapricorn,项目名称:etcd,代码行数:48,代码来源:cluster_test.go
示例17: Start
func (t *Transport) Start() error {
var err error
// Read/write timeout is set for stream roundTripper to promptly
// find out broken status, which minimizes the number of messages
// sent on broken connection.
t.streamRt, err = transport.NewTimeoutTransport(t.TLSInfo, t.DialTimeout, ConnReadTimeout, ConnWriteTimeout)
if err != nil {
return err
}
t.pipelineRt, err = transport.NewTransport(t.TLSInfo, t.DialTimeout)
if err != nil {
return err
}
t.remotes = make(map[types.ID]*remote)
t.peers = make(map[types.ID]Peer)
t.prober = probing.NewProber(t.pipelineRt)
return nil
}
开发者ID:sshen,项目名称:etcd,代码行数:18,代码来源:transport.go
示例18: New
// New constructs a new kvdb.Kvdb.
func New(
domain string,
machines []string,
options map[string]string,
fatalErrorCb kvdb.FatalErrorCB,
) (kvdb.Kvdb, error) {
if len(machines) == 0 {
machines = defaultMachines
}
etcdCommon := ec.NewEtcdCommon(options)
tls, username, password, err := etcdCommon.GetAuthInfoFromOptions()
if err != nil {
return nil, err
}
tr, err := transport.NewTransport(tls, ec.DefaultDialTimeout)
if err != nil {
return nil, err
}
cfg := e.Config{
Endpoints: machines,
Transport: tr,
Username: username,
Password: password,
// The time required for a request to fail - 30 sec
HeaderTimeoutPerRequest: time.Duration(10) * time.Second,
}
c, err := e.New(cfg)
if err != nil {
return nil, err
}
if domain != "" && !strings.HasSuffix(domain, "/") {
domain = domain + "/"
}
return &etcdKV{
common.BaseKvdb{FatalCb: fatalErrorCb},
e.NewKeysAPI(c),
e.NewAuthUserAPI(c),
e.NewAuthRoleAPI(c),
domain,
etcdCommon,
}, nil
}
开发者ID:portworx,项目名称:kvdb,代码行数:44,代码来源:kv_etcd.go
示例19: startProxy
// startProxy launches an HTTP proxy for client communication which proxies to other etcd nodes.
func startProxy() {
pt, err := transport.NewTransport(clientTLSInfo)
if err != nil {
log.Fatal(err)
}
ph, err := proxy.NewHandler(pt, (*cluster).PeerURLs())
if err != nil {
log.Fatal(err)
}
ph = &pkg.CORSHandler{
Handler: ph,
Info: cors,
}
if string(*proxyFlag) == flagtypes.ProxyValueReadonly {
ph = proxy.NewReadonlyHandler(ph)
}
lcurls, err := pkg.URLsFromFlags(flag.CommandLine, "listen-client-urls", "bind-addr", clientTLSInfo)
if err != nil {
log.Fatal(err.Error())
}
// Start a proxy server goroutine for each listen address
for _, u := range lcurls {
l, err := transport.NewListener(u.Host, clientTLSInfo)
if err != nil {
log.Fatal(err)
}
host := u.Host
go func() {
log.Print("Listening for client requests on ", host)
log.Fatal(http.Serve(l, ph))
}()
}
}
开发者ID:digideskio,项目名称:etcd,代码行数:39,代码来源:main.go
示例20: main
func main() {
c := config{}
initFlags(&c)
pflag.Parse()
validateFlags(&c)
cfg := etcd.Config{}
if c.etcdSecure == true {
tlsinfo := transport.TLSInfo{
CertFile: c.etcdCertfile,
KeyFile: c.etcdKeyfile,
CAFile: c.etcdCafile,
TrustedCAFile: c.etcdCafile,
ClientCertAuth: true,
}
trans, err := transport.NewTransport(tlsinfo)
if err != nil {
glog.Fatalf("misconfigured TLSInfo in transport: %v", err)
}
cfg = etcd.Config{
Endpoints: c.etcdServers,
Transport: trans,
}
} else {
cfg = etcd.Config{
Endpoints: c.etcdServers,
}
}
etcdClient, err := etcd.New(cfg)
if err != nil {
glog.Fatalf("misconfigured etcd: %v", err)
}
c.leaseAndUpdateLoop(&etcdClient)
}
开发者ID:victorgp,项目名称:contrib,代码行数:37,代码来源:podmaster.go
注:本文中的github.com/coreos/etcd/pkg/transport.NewTransport函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论