From 388b8fd50f7b0a7798d6eaf6d80d9a5babf53f98 Mon Sep 17 00:00:00 2001 From: Dong Chen Date: Mon, 1 Feb 2016 22:13:11 -0800 Subject: [PATCH] Only record connection failure error in error message. Signed-off-by: Dong Chen --- cluster/engine.go | 12 ++---------- cluster/engine_test.go | 5 +++++ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/cluster/engine.go b/cluster/engine.go index dcb3113c7f..c49be1f08a 100644 --- a/cluster/engine.go +++ b/cluster/engine.go @@ -342,16 +342,6 @@ func (e *Engine) CheckConnectionErr(err error) { return } - // Docker engine may return 404 when it doesn't recognize a command. - // It's not an error from the engine itself. Version validation should be done separately. - // This error message is not recorded here to avoid user confusion. - if strings.HasPrefix(err.Error(), "404 ") { - return - } - - // update engine error message - e.setErrMsg(err.Error()) - // dockerclient defines ErrConnectionRefused error. but if http client is from swarm, it's not using // dockerclient. We need string matching for these cases. Remove the first character to deal with // case sensitive issue @@ -364,6 +354,8 @@ func (e *Engine) CheckConnectionErr(err error) { // can track last error time. Only increase failure count if last error is // not too recent, e.g., last error is at least 1 seconds ago. e.incFailureCount() + // update engine error message + e.setErrMsg(err.Error()) return } // other errors may be ambiguous. diff --git a/cluster/engine_test.go b/cluster/engine_test.go index 6fa17a72e3..6a17396f3e 100644 --- a/cluster/engine_test.go +++ b/cluster/engine_test.go @@ -69,6 +69,11 @@ func TestCheckConnectionErr(t *testing.T) { engine.CheckConnectionErr(err) assert.True(t, engine.failureCount == 0) assert.True(t, len(engine.ErrMsg()) == 0) + // Do not accept random error + err = fmt.Errorf("random error") + engine.CheckConnectionErr(err) + assert.True(t, engine.failureCount == 0) + assert.True(t, len(engine.ErrMsg()) == 0) } func TestEngineFailureCount(t *testing.T) {