mirror of https://github.com/etcd-io/dbtester.git
Merge pull request #315 from gyuho/update
vendor: sync with etcd master, minor clean up
This commit is contained in:
commit
2008a31aa7
|
|
@ -11,7 +11,7 @@ Distributed database benchmark tester: etcd, Zookeeper, Consul, zetcd, cetcd
|
|||
- Database Client
|
||||
- https://github.com/coreos/dbtester/tree/master/control
|
||||
- System Metrics
|
||||
- https://github.com/gyuho/psn
|
||||
- https://github.com/gyuho/linux-inspect
|
||||
- Test Data Analysis
|
||||
- https://github.com/coreos/dbtester/tree/master/analyze
|
||||
- https://github.com/gyuho/dataframe
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ import (
|
|||
"github.com/coreos/dbtester/pkg/ntp"
|
||||
"github.com/coreos/etcd/pkg/netutil"
|
||||
"github.com/coreos/pkg/capnslog"
|
||||
"github.com/gyuho/psn"
|
||||
"github.com/gyuho/linux-inspect/psn"
|
||||
"github.com/spf13/cobra"
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ import (
|
|||
"github.com/coreos/dbtester/dbtesterpb"
|
||||
"github.com/coreos/dbtester/pkg/fileinspect"
|
||||
|
||||
"github.com/gyuho/psn"
|
||||
"github.com/gyuho/linux-inspect/psn"
|
||||
"golang.org/x/net/context"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ import (
|
|||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/gyuho/psn"
|
||||
"github.com/gyuho/linux-inspect/psn"
|
||||
)
|
||||
|
||||
// startMetrics starts collecting metrics.
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ import (
|
|||
"github.com/coreos/dbtester/dbtesterpb"
|
||||
"github.com/coreos/dbtester/pkg/ntp"
|
||||
"github.com/coreos/etcd/pkg/netutil"
|
||||
"github.com/gyuho/psn"
|
||||
"github.com/gyuho/linux-inspect/psn"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
hash: fd49652adb4ec58cdca302dab916ff1d3bb80ccdf078dff45579becd0e75d613
|
||||
updated: 2017-02-22T19:06:28.732861827-08:00
|
||||
hash: 11e6bd98c99ecd78b59d905847f46dd54ff2306035536eaa0754c8c4868870ed
|
||||
updated: 2017-03-06T13:03:02.042405087-08:00
|
||||
imports:
|
||||
- name: bitbucket.org/zombiezen/gopdf
|
||||
version: 1c63dc69751bc45441c2ce1f56b631c55294b4d5
|
||||
|
|
@ -21,7 +21,7 @@ imports:
|
|||
- name: github.com/cheggaaa/pb
|
||||
version: d7e6ca3010b6f084d8056847f55d7f572f180678
|
||||
- name: github.com/coreos/etcd
|
||||
version: 86c9bf5c3f68707048e2cea63101e0d8d156331d
|
||||
version: 317f3571ff9407c17ad6fd68877c4e673954d25a
|
||||
subpackages:
|
||||
- auth/authpb
|
||||
- client
|
||||
|
|
@ -89,7 +89,7 @@ imports:
|
|||
- vg/vgpdf
|
||||
- vg/vgsvg
|
||||
- name: github.com/googleapis/gax-go
|
||||
version: da06d194a00e19ce00d9011a13931c3f6f6887c7
|
||||
version: 8c5154c0fe5bf18cf649634d4c6df50897a32751
|
||||
- name: github.com/grpc-ecosystem/grpc-gateway
|
||||
version: 84398b94e188ee336f307779b57b3aa91af7063c
|
||||
subpackages:
|
||||
|
|
@ -98,18 +98,19 @@ imports:
|
|||
- utilities
|
||||
- name: github.com/gyuho/dataframe
|
||||
version: 73de2c550b1177c1640f3dacbbc1af00f913fedb
|
||||
- name: github.com/gyuho/psn
|
||||
version: 0a50f90209cfd81ef2a20cbf01679f118f31f0ad
|
||||
- name: github.com/gyuho/linux-inspect
|
||||
version: c8b6d38d52ab5870033a270870b39b91dea54649
|
||||
subpackages:
|
||||
- psn
|
||||
- schema
|
||||
- name: github.com/hashicorp/consul
|
||||
version: 65b7ed462cc574d57dc6dcc9bca74676089f7fee
|
||||
version: db4f40f6f05d6ab6712951ad4e5f045f8e9e1c9c
|
||||
subpackages:
|
||||
- api
|
||||
- name: github.com/hashicorp/go-cleanhttp
|
||||
version: 3573b8b52aa7b37b9358d966a898feb387f62437
|
||||
- name: github.com/hashicorp/serf
|
||||
version: 050c56d31a1ff2ebc50e3f4810fdff7e7563f6c8
|
||||
version: d787b2e8f72b5da48c43b84c2617234401084050
|
||||
subpackages:
|
||||
- coordinate
|
||||
- name: github.com/inconshreveable/mousetrap
|
||||
|
|
@ -138,7 +139,7 @@ imports:
|
|||
subpackages:
|
||||
- codec
|
||||
- name: golang.org/x/image
|
||||
version: b952c941a68f1a00c1f8d855a12a8282d2f1b4f0
|
||||
version: e6cbe778da3cea914ea6436d0f99309605c3dfc4
|
||||
subpackages:
|
||||
- draw
|
||||
- font
|
||||
|
|
@ -180,7 +181,7 @@ imports:
|
|||
- storage/v1
|
||||
- transport
|
||||
- name: google.golang.org/appengine
|
||||
version: 3a452f9e00122ead39586d68ffdb9c6e1326af3c
|
||||
version: 5403c08c6e8fb3b2dc1209d2d833d8e8ac8240de
|
||||
subpackages:
|
||||
- internal
|
||||
- internal/app_identity
|
||||
|
|
|
|||
10
glide.yaml
10
glide.yaml
|
|
@ -9,7 +9,7 @@ import:
|
|||
- package: github.com/cheggaaa/pb
|
||||
version: d7e6ca3010b6f084d8056847f55d7f572f180678
|
||||
- package: github.com/coreos/etcd
|
||||
version: 86c9bf5c3f68707048e2cea63101e0d8d156331d
|
||||
version: 317f3571ff9407c17ad6fd68877c4e673954d25a
|
||||
subpackages:
|
||||
- auth/authpb
|
||||
- client
|
||||
|
|
@ -55,10 +55,12 @@ import:
|
|||
- vg/vgsvg
|
||||
- package: github.com/gyuho/dataframe
|
||||
version: 73de2c550b1177c1640f3dacbbc1af00f913fedb
|
||||
- package: github.com/gyuho/psn
|
||||
version: 0a50f90209cfd81ef2a20cbf01679f118f31f0ad
|
||||
- package: github.com/gyuho/linux-inspect
|
||||
version: c8b6d38d52ab5870033a270870b39b91dea54649
|
||||
subpackages:
|
||||
- psn
|
||||
- package: github.com/hashicorp/consul
|
||||
version: 65b7ed462cc574d57dc6dcc9bca74676089f7fee
|
||||
version: db4f40f6f05d6ab6712951ad4e5f045f8e9e1c9c
|
||||
subpackages:
|
||||
- api
|
||||
- package: github.com/samuel/go-zookeeper
|
||||
|
|
|
|||
|
|
@ -48,7 +48,9 @@ type Client struct {
|
|||
Auth
|
||||
Maintenance
|
||||
|
||||
conn *grpc.ClientConn
|
||||
conn *grpc.ClientConn
|
||||
dialerrc chan error
|
||||
|
||||
cfg Config
|
||||
creds *credentials.TransportCredentials
|
||||
balancer *simpleBalancer
|
||||
|
|
@ -214,7 +216,14 @@ func (c *Client) dialSetupOpts(endpoint string, dopts ...grpc.DialOption) (opts
|
|||
default:
|
||||
}
|
||||
dialer := &net.Dialer{Timeout: t}
|
||||
return dialer.DialContext(c.ctx, proto, host)
|
||||
conn, err := dialer.DialContext(c.ctx, proto, host)
|
||||
if err != nil {
|
||||
select {
|
||||
case c.dialerrc <- err:
|
||||
default:
|
||||
}
|
||||
}
|
||||
return conn, err
|
||||
}
|
||||
opts = append(opts, grpc.WithDialer(f))
|
||||
|
||||
|
|
@ -316,11 +325,12 @@ func newClient(cfg *Config) (*Client, error) {
|
|||
|
||||
ctx, cancel := context.WithCancel(baseCtx)
|
||||
client := &Client{
|
||||
conn: nil,
|
||||
cfg: *cfg,
|
||||
creds: creds,
|
||||
ctx: ctx,
|
||||
cancel: cancel,
|
||||
conn: nil,
|
||||
dialerrc: make(chan error, 1),
|
||||
cfg: *cfg,
|
||||
creds: creds,
|
||||
ctx: ctx,
|
||||
cancel: cancel,
|
||||
}
|
||||
if cfg.Username != "" && cfg.Password != "" {
|
||||
client.Username = cfg.Username
|
||||
|
|
@ -347,9 +357,14 @@ func newClient(cfg *Config) (*Client, error) {
|
|||
case <-waitc:
|
||||
}
|
||||
if !hasConn {
|
||||
err := grpc.ErrClientConnTimeout
|
||||
select {
|
||||
case err = <-client.dialerrc:
|
||||
default:
|
||||
}
|
||||
client.cancel()
|
||||
conn.Close()
|
||||
return nil, grpc.ErrClientConnTimeout
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
package gax
|
||||
|
||||
import "bytes"
|
||||
|
||||
// XGoogHeader is for use by the Google Cloud Libraries only.
|
||||
//
|
||||
// XGoogHeader formats key-value pairs.
|
||||
// The resulting string is suitable for x-goog-api-client header.
|
||||
func XGoogHeader(keyval ...string) string {
|
||||
if len(keyval) == 0 {
|
||||
return ""
|
||||
}
|
||||
if len(keyval)%2 != 0 {
|
||||
panic("gax.Header: odd argument count")
|
||||
}
|
||||
var buf bytes.Buffer
|
||||
for i := 0; i < len(keyval); i += 2 {
|
||||
buf.WriteByte(' ')
|
||||
buf.WriteString(keyval[i])
|
||||
buf.WriteByte('/')
|
||||
buf.WriteString(keyval[i+1])
|
||||
}
|
||||
return buf.String()[1:]
|
||||
}
|
||||
0
vendor/github.com/gyuho/psn/LICENSE → vendor/github.com/gyuho/linux-inspect/LICENSE
generated
vendored
0
vendor/github.com/gyuho/psn/LICENSE → vendor/github.com/gyuho/linux-inspect/LICENSE
generated
vendored
|
|
@ -12,7 +12,7 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/dustin/go-humanize"
|
||||
"github.com/gyuho/psn/schema"
|
||||
"github.com/gyuho/linux-inspect/schema"
|
||||
)
|
||||
|
||||
// GetProcStatByPID reads '/proc/$PID/stat' data.
|
||||
|
|
@ -1,5 +1,13 @@
|
|||
package api
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Operator can be used to perform low-level operator tasks for Consul.
|
||||
type Operator struct {
|
||||
c *Client
|
||||
|
|
@ -63,6 +71,25 @@ type KeyringResponse struct {
|
|||
NumNodes int
|
||||
}
|
||||
|
||||
// AutopilotConfiguration is used for querying/setting the Autopilot configuration.
|
||||
// Autopilot helps manage operator tasks related to Consul servers like removing
|
||||
// failed servers from the Raft quorum.
|
||||
type AutopilotConfiguration struct {
|
||||
// CleanupDeadServers controls whether to remove dead servers from the Raft
|
||||
// peer list when a new server joins
|
||||
CleanupDeadServers bool
|
||||
|
||||
// CreateIndex holds the index corresponding the creation of this configuration.
|
||||
// This is a read-only field.
|
||||
CreateIndex uint64
|
||||
|
||||
// ModifyIndex will be set to the index of the last update when retrieving the
|
||||
// Autopilot configuration. Resubmitting a configuration with
|
||||
// AutopilotCASConfiguration will perform a check-and-set operation which ensures
|
||||
// there hasn't been a subsequent update since the configuration was retrieved.
|
||||
ModifyIndex uint64
|
||||
}
|
||||
|
||||
// RaftGetConfiguration is used to query the current Raft peer set.
|
||||
func (op *Operator) RaftGetConfiguration(q *QueryOptions) (*RaftConfiguration, error) {
|
||||
r := op.c.newRequest("GET", "/v1/operator/raft/configuration")
|
||||
|
|
@ -161,3 +188,56 @@ func (op *Operator) KeyringUse(key string, q *WriteOptions) error {
|
|||
resp.Body.Close()
|
||||
return nil
|
||||
}
|
||||
|
||||
// AutopilotGetConfiguration is used to query the current Autopilot configuration.
|
||||
func (op *Operator) AutopilotGetConfiguration(q *QueryOptions) (*AutopilotConfiguration, error) {
|
||||
r := op.c.newRequest("GET", "/v1/operator/autopilot/configuration")
|
||||
r.setQueryOptions(q)
|
||||
_, resp, err := requireOK(op.c.doRequest(r))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
var out AutopilotConfiguration
|
||||
if err := decodeBody(resp, &out); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &out, nil
|
||||
}
|
||||
|
||||
// AutopilotSetConfiguration is used to set the current Autopilot configuration.
|
||||
func (op *Operator) AutopilotSetConfiguration(conf *AutopilotConfiguration, q *WriteOptions) error {
|
||||
r := op.c.newRequest("PUT", "/v1/operator/autopilot/configuration")
|
||||
r.setWriteOptions(q)
|
||||
r.obj = conf
|
||||
_, resp, err := requireOK(op.c.doRequest(r))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
resp.Body.Close()
|
||||
return nil
|
||||
}
|
||||
|
||||
// AutopilotCASConfiguration is used to perform a Check-And-Set update on the
|
||||
// Autopilot configuration. The ModifyIndex value will be respected. Returns
|
||||
// true on success or false on failures.
|
||||
func (op *Operator) AutopilotCASConfiguration(conf *AutopilotConfiguration, q *WriteOptions) (bool, error) {
|
||||
r := op.c.newRequest("PUT", "/v1/operator/autopilot/configuration")
|
||||
r.setWriteOptions(q)
|
||||
r.params.Set("cas", strconv.FormatUint(conf.ModifyIndex, 10))
|
||||
r.obj = conf
|
||||
_, resp, err := requireOK(op.c.doRequest(r))
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
var buf bytes.Buffer
|
||||
if _, err := io.Copy(&buf, resp.Body); err != nil {
|
||||
return false, fmt.Errorf("Failed to read response: %v", err)
|
||||
}
|
||||
res := strings.Contains(string(buf.Bytes()), "true")
|
||||
|
||||
return res, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build !go1.9
|
||||
// +build !go1.9,!go1.8.typealias
|
||||
|
||||
package draw
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build go1.9
|
||||
// +build go1.9 go1.8.typealias
|
||||
|
||||
package draw
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue