From dccf114fdddb97c4795735f8d90a2f0e7abf476e Mon Sep 17 00:00:00 2001 From: Clayton Coleman Date: Tue, 15 Mar 2016 12:49:53 -0400 Subject: [PATCH] Display a better error on unauthorized Not being logged in is a common user error, and the message we display can be more specific to an end user. Provide a friendly message with the server message in parethesis (in case this is a more complex server error). --- pkg/kubectl/cmd/util/helpers.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkg/kubectl/cmd/util/helpers.go b/pkg/kubectl/cmd/util/helpers.go index b1b1ac03ce7..82ee77c2f80 100644 --- a/pkg/kubectl/cmd/util/helpers.go +++ b/pkg/kubectl/cmd/util/helpers.go @@ -171,10 +171,15 @@ func StandardErrorMessage(err error) (string, bool) { if debugErr, ok := err.(debugError); ok { glog.V(4).Infof(debugErr.DebugError()) } - _, isStatus := err.(errors.APIStatus) + status, isStatus := err.(errors.APIStatus) switch { case isStatus: - return fmt.Sprintf("Error from server: %s", err.Error()), true + switch s := status.Status(); { + case s.Reason == "Unauthorized": + return fmt.Sprintf("error: You must be logged in to the server (%s)", s.Message), true + default: + return fmt.Sprintf("Error from server: %s", err.Error()), true + } case errors.IsUnexpectedObjectError(err): return fmt.Sprintf("Server returned an unexpected response: %s", err.Error()), true }