Fixing style issues.

This commit is contained in:
Renan DelValle 2019-04-29 16:42:27 -07:00
parent 07ff819e57
commit 0cdf4d8885
No known key found for this signature in database
GPG key ID: C240AD6D6F443EC9
3 changed files with 33 additions and 26 deletions

View file

@ -111,7 +111,7 @@ type RealisConfig struct {
logger *LevelLogger logger *LevelLogger
InsecureSkipVerify bool InsecureSkipVerify bool
certspath string certspath string
clientkey, clientcert string clientKey, clientCert string
options []ClientOption options []ClientOption
debug bool debug bool
trace bool trace bool
@ -125,6 +125,8 @@ var defaultBackoff = Backoff{
Jitter: 0.1, Jitter: 0.1,
} }
const APIPath = "/api"
type ClientOption func(*RealisConfig) type ClientOption func(*RealisConfig)
//Config sets for options in RealisConfig. //Config sets for options in RealisConfig.
@ -204,7 +206,7 @@ func Certspath(certspath string) ClientOption {
func ClientCerts(clientKey, clientCert string) ClientOption { func ClientCerts(clientKey, clientCert string) ClientOption {
return func(config *RealisConfig) { return func(config *RealisConfig) {
config.clientkey, config.clientcert = clientKey, clientCert config.clientKey, config.clientCert = clientKey, clientCert
} }
} }
@ -383,15 +385,15 @@ func GetDefaultClusterFromZKUrl(zkurl string) *Cluster {
} }
} }
func GetCerts(certpath string) (*x509.CertPool, error) { func GetCerts(certPath string) (*x509.CertPool, error) {
globalRootCAs := x509.NewCertPool() globalRootCAs := x509.NewCertPool()
caFiles, err := ioutil.ReadDir(certpath) caFiles, err := ioutil.ReadDir(certPath)
if err != nil { if err != nil {
return nil, err return nil, err
} }
for _, cert := range caFiles { for _, cert := range caFiles {
capathfile := filepath.Join(certpath, cert.Name()) caPathFile := filepath.Join(certPath, cert.Name())
caCert, err := ioutil.ReadFile(capathfile) caCert, err := ioutil.ReadFile(caPathFile)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -401,7 +403,7 @@ func GetCerts(certpath string) (*x509.CertPool, error) {
} }
// Creates a default Thrift Transport object for communications in gorealis using an HTTP Post Client // Creates a default Thrift Transport object for communications in gorealis using an HTTP Post Client
func defaultTTransport(urlstr string, timeoutms int, config *RealisConfig) (thrift.TTransport, error) { func defaultTTransport(url string, timeoutMs int, config *RealisConfig) (thrift.TTransport, error) {
jar, err := cookiejar.New(nil) jar, err := cookiejar.New(nil)
if err != nil { if err != nil {
return &thrift.THttpClient{}, errors.Wrap(err, "Error creating Cookie Jar") return &thrift.THttpClient{}, errors.Wrap(err, "Error creating Cookie Jar")
@ -420,14 +422,14 @@ func defaultTTransport(urlstr string, timeoutms int, config *RealisConfig) (thri
} }
tlsConfig.RootCAs = rootCAs tlsConfig.RootCAs = rootCAs
} }
if config.clientkey != "" && config.clientcert == "" { if config.clientKey != "" && config.clientCert == "" {
return nil, fmt.Errorf("have to provide both client key,cert. Only client key provided ") return nil, fmt.Errorf("have to provide both client key, cert. Only client key provided ")
} }
if config.clientkey == "" && config.clientcert != "" { if config.clientKey == "" && config.clientCert != "" {
return nil, fmt.Errorf("have to provide both client key,cert. Only client cert provided ") return nil, fmt.Errorf("have to provide both client key, cert. Only client cert provided ")
} }
if config.clientkey != "" && config.clientcert != "" { if config.clientKey != "" && config.clientCert != "" {
cert, err := tls.LoadX509KeyPair(config.clientcert, config.clientkey) cert, err := tls.LoadX509KeyPair(config.clientCert, config.clientKey)
if err != nil { if err != nil {
config.logger.Println("error occurred loading client certs and keys") config.logger.Println("error occurred loading client certs and keys")
return nil, err return nil, err
@ -437,15 +439,20 @@ func defaultTTransport(urlstr string, timeoutms int, config *RealisConfig) (thri
transport.TLSClientConfig = tlsConfig transport.TLSClientConfig = tlsConfig
} }
trans, err := thrift.NewTHttpClientWithOptions(urlstr+"/api", trans, err := thrift.NewTHttpClientWithOptions(
thrift.THttpClientOptions{Client: &http.Client{Timeout: time.Millisecond * time.Duration(timeoutms), Transport: &transport, Jar: jar}}) url+APIPath,
thrift.THttpClientOptions{
Client: &http.Client{
Timeout: time.Millisecond * time.Duration(timeoutMs),
Transport: &transport,
Jar: jar}})
if err != nil { if err != nil {
return nil, errors.Wrap(err, "Error creating transport") return nil, errors.Wrap(err, "Error creating transport")
} }
if err := trans.Open(); err != nil { if err := trans.Open(); err != nil {
return nil, errors.Wrapf(err, "Error opening connection to %s", urlstr) return nil, errors.Wrapf(err, "Error opening connection to %s", url)
} }
return trans, nil return trans, nil

View file

@ -133,7 +133,7 @@ func (r *realisClient) thriftCallWithRetries(thriftCall auroraThriftCall) (*auro
adjusted = Jitter(duration, backoff.Jitter) adjusted = Jitter(duration, backoff.Jitter)
} }
r.logger.Printf("A retriable error occurred during thrift call, backing off for %v before retry %v\n", adjusted, curStep) r.logger.Printf("A retryable error occurred during thrift call, backing off for %v before retry %v\n", adjusted, curStep)
time.Sleep(adjusted) time.Sleep(adjusted)
duration = time.Duration(float64(duration) * backoff.Factor) duration = time.Duration(float64(duration) * backoff.Factor)
@ -169,7 +169,7 @@ func (r *realisClient) thriftCallWithRetries(thriftCall auroraThriftCall) (*auro
// when the server is overloaded and should be retried. All other errors that are permanent // when the server is overloaded and should be retried. All other errors that are permanent
// will not be retried. // will not be retried.
if e.Err != io.EOF && !e.Temporary() { if e.Err != io.EOF && !e.Temporary() {
return nil, errors.Wrap(clientErr, "Permanent connection error") return nil, errors.Wrap(clientErr, "permanent connection error")
} }
} }
} }
@ -183,7 +183,7 @@ func (r *realisClient) thriftCallWithRetries(thriftCall auroraThriftCall) (*auro
// If there was no client error, but the response is nil, something went wrong. // If there was no client error, but the response is nil, something went wrong.
// Ideally, we'll never encounter this but we're placing a safeguard here. // Ideally, we'll never encounter this but we're placing a safeguard here.
if resp == nil { if resp == nil {
return nil, errors.New("Response from aurora is nil") return nil, errors.New("response from aurora is nil")
} }
// Check Response Code from thrift and make a decision to continue retrying or not. // Check Response Code from thrift and make a decision to continue retrying or not.
@ -210,7 +210,7 @@ func (r *realisClient) thriftCallWithRetries(thriftCall auroraThriftCall) (*auro
// It is currently not used as a response in the scheduler so it is unknown how to handle it. // It is currently not used as a response in the scheduler so it is unknown how to handle it.
default: default:
r.logger.DebugPrintf("unhandled response code %v received from Aurora\n", responseCode) r.logger.DebugPrintf("unhandled response code %v received from Aurora\n", responseCode)
return nil, errors.Errorf("unhandled response code from Aurora %v\n", responseCode.String()) return nil, errors.Errorf("unhandled response code from Aurora %v", responseCode.String())
} }
} }

12
zk.go
View file

@ -103,7 +103,7 @@ func LeaderFromZKOpts(options ...ZKOpt) (string, error) {
c, _, err := zk.Connect(config.endpoints, config.timeout, func(c *zk.Conn) { c.SetLogger(config.logger) }) c, _, err := zk.Connect(config.endpoints, config.timeout, func(c *zk.Conn) { c.SetLogger(config.logger) })
if err != nil { if err != nil {
return false, NewTemporaryError(errors.Wrap(err, "Failed to connect to Zookeeper")) return false, NewTemporaryError(errors.Wrap(err, "failed to connect to Zookeeper"))
} }
defer c.Close() defer c.Close()
@ -117,7 +117,7 @@ func LeaderFromZKOpts(options ...ZKOpt) (string, error) {
return false, errors.Wrapf(err, "path %s is an invalid Zookeeper path", config.path) return false, errors.Wrapf(err, "path %s is an invalid Zookeeper path", config.path)
} }
return false, NewTemporaryError(errors.Wrapf(err, "Path %s doesn't exist on Zookeeper ", config.path)) return false, NewTemporaryError(errors.Wrapf(err, "path %s doesn't exist on Zookeeper ", config.path))
} }
// Search for the leader through all the children in the given path // Search for the leader through all the children in the given path
@ -134,12 +134,12 @@ func LeaderFromZKOpts(options ...ZKOpt) (string, error) {
return false, errors.Wrapf(err, "path %s is an invalid Zookeeper path", childPath) return false, errors.Wrapf(err, "path %s is an invalid Zookeeper path", childPath)
} }
return false, NewTemporaryError(errors.Wrap(err, "Error fetching contents of leader")) return false, NewTemporaryError(errors.Wrap(err, "unable to fetch contents of leader"))
} }
err = json.Unmarshal([]byte(data), serviceInst) err = json.Unmarshal([]byte(data), serviceInst)
if err != nil { if err != nil {
return false, NewTemporaryError(errors.Wrap(err, "Unable to unmarshall contents of leader")) return false, NewTemporaryError(errors.Wrap(err, "unable to unmarshal contents of leader"))
} }
// Should only be one endpoint. // Should only be one endpoint.
@ -162,11 +162,11 @@ func LeaderFromZKOpts(options ...ZKOpt) (string, error) {
} }
// Leader data might not be available yet, try to fetch again. // Leader data might not be available yet, try to fetch again.
return false, NewTemporaryError(errors.New("No leader found")) return false, NewTemporaryError(errors.New("no leader found"))
}) })
if retryErr != nil { if retryErr != nil {
config.logger.Printf("Failed to determine leader after %v attempts", config.backoff.Steps) config.logger.Printf("failed to determine leader after %v attempts", config.backoff.Steps)
return "", retryErr return "", retryErr
} }