Browse code

Merge pull request #5894 from csrwng/gitserver_autherror

Merged by openshift-bot

OpenShift Bot authored on 2015/11/14 07:18:04
Showing 1 changed files
... ...
@@ -18,6 +18,7 @@ import (
18 18
 	"github.com/AaronO/go-git-http/auth"
19 19
 	"github.com/prometheus/client_golang/prometheus"
20 20
 
21
+	"k8s.io/kubernetes/pkg/api/errors"
21 22
 	"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
22 23
 	"k8s.io/kubernetes/pkg/healthz"
23 24
 
... ...
@@ -107,6 +108,14 @@ type Clone struct {
107 107
 	Hooks map[string]string
108 108
 }
109 109
 
110
+type statusError struct {
111
+	*errors.StatusError
112
+}
113
+
114
+func (e *statusError) StatusCode() int {
115
+	return e.StatusError.Status().Code
116
+}
117
+
110 118
 // NewDefaultConfig returns a default server config.
111 119
 func NewDefaultConfig() *Config {
112 120
 	return &Config{
... ...
@@ -214,6 +223,9 @@ func NewEnviromentConfig() (*Config, error) {
214 214
 			}
215 215
 			res, err := osc.ImpersonateLocalSubjectAccessReviews(namespace, info.Password).Create(req)
216 216
 			if err != nil {
217
+				if se, ok := err.(*errors.StatusError); ok {
218
+					return false, &statusError{se}
219
+				}
217 220
 				return false, err
218 221
 			}
219 222
 			//log.Printf("debug: server response allowed=%t message=%s", res.Allowed, res.Reason)