Adding a check for 401. This reduces the retries on the end to end test and fails fast when a wrong/unathorized username and password are provided to interact with Aurora.
This commit is contained in:
parent
71d41de2e4
commit
e4e8a1c0b3
2 changed files with 13 additions and 3 deletions
|
@ -87,7 +87,8 @@ func TestNonExistentEndpoint(t *testing.T) {
|
||||||
|
|
||||||
func TestBadCredentials(t *testing.T) {
|
func TestBadCredentials(t *testing.T) {
|
||||||
r, err := realis.NewClient(realis.SchedulerUrl("http://192.168.33.7:8081"),
|
r, err := realis.NewClient(realis.SchedulerUrl("http://192.168.33.7:8081"),
|
||||||
realis.BasicAuth("incorrect", "password"))
|
realis.BasicAuth("incorrect", "password"),
|
||||||
|
realis.Debug())
|
||||||
defer r.Close()
|
defer r.Close()
|
||||||
|
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
@ -246,13 +247,13 @@ func TestRealisClient_CreateJob_Thermos(t *testing.T) {
|
||||||
assert.True(t, success)
|
assert.True(t, success)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
//Fetch all Jobs
|
// Fetch all Jobs
|
||||||
result, err := r.GetJobs(role)
|
result, err := r.GetJobs(role)
|
||||||
fmt.Printf("GetJobs length: %+v \n", len(result.Configs))
|
fmt.Printf("GetJobs length: %+v \n", len(result.Configs))
|
||||||
assert.Len(t, result.Configs, 1)
|
assert.Len(t, result.Configs, 1)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Test asking the scheduler to perform a Snpshot
|
// Test asking the scheduler to perform a Snapshot
|
||||||
t.Run("TestRealisClient_Snapshot", func(t *testing.T) {
|
t.Run("TestRealisClient_Snapshot", func(t *testing.T) {
|
||||||
err := r.Snapshot()
|
err := r.Snapshot()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
9
retry.go
9
retry.go
|
@ -17,7 +17,10 @@ package realis
|
||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.apache.org/thrift.git/lib/go/thrift"
|
"git.apache.org/thrift.git/lib/go/thrift"
|
||||||
|
@ -163,6 +166,12 @@ func (c *Client) thriftCallWithRetries(thriftCall auroraThriftCall) (*aurora.Res
|
||||||
if ok {
|
if ok {
|
||||||
c.logger.DebugPrint("Encountered a transport exception")
|
c.logger.DebugPrint("Encountered a transport exception")
|
||||||
|
|
||||||
|
// TODO(rdelvalle): Figure out a better way to obtain the error code as this is a very brittle solution
|
||||||
|
// 401 Unauthorized means the wrong username and password were provided
|
||||||
|
if strings.Contains(e.Error(), strconv.Itoa(http.StatusUnauthorized)) {
|
||||||
|
return nil, errors.Wrap(clientErr, "wrong username or password provided")
|
||||||
|
}
|
||||||
|
|
||||||
e, ok := e.Err().(*url.Error)
|
e, ok := e.Err().(*url.Error)
|
||||||
if ok {
|
if ok {
|
||||||
// EOF error occurs when the server closes the read buffer of the client. This is common
|
// EOF error occurs when the server closes the read buffer of the client. This is common
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue