Fix ignoring error (#1356)

* fix ignoring error

* fix operator

* fix minio error handling

* fix get url to return error if failed parsing

* add error handling

* position of statement to get redirect url was wrong.
This commit is contained in:
Kenshi Kamata
2019-09-17 06:15:51 +09:00
committed by Aaron Schlesinger
parent 1eef6b9940
commit 800024fc6f
6 changed files with 38 additions and 7 deletions
+6 -3
View File
@@ -55,8 +55,11 @@ func RegisterHandlers(r *mux.Router, opts *HandlerOpts) {
r.Handle(PathVersionZip, LogEntryHandler(ZipHandler, opts)).Methods(http.MethodGet) r.Handle(PathVersionZip, LogEntryHandler(ZipHandler, opts)).Methods(http.MethodGet)
} }
func getRedirectURL(base, path string) string { func getRedirectURL(base, path string) (string, error) {
url, _ := url.Parse(base) url, err := url.Parse(base)
if err != nil {
return "", err
}
url.Path = path url.Path = path
return url.String() return url.String(), nil
} }
+7 -1
View File
@@ -26,7 +26,13 @@ func InfoHandler(dp Protocol, lggr log.Entry, df *mode.DownloadFile) http.Handle
severityLevel := errors.Expect(err, errors.KindNotFound, errors.KindRedirect) severityLevel := errors.Expect(err, errors.KindNotFound, errors.KindRedirect)
lggr.SystemErr(errors.E(op, err, errors.M(mod), errors.V(ver), severityLevel)) lggr.SystemErr(errors.E(op, err, errors.M(mod), errors.V(ver), severityLevel))
if errors.Kind(err) == errors.KindRedirect { if errors.Kind(err) == errors.KindRedirect {
http.Redirect(w, r, getRedirectURL(df.URL(mod), r.URL.Path), errors.KindRedirect) url, err := getRedirectURL(df.URL(mod), r.URL.Path)
if err != nil {
lggr.SystemErr(err)
w.WriteHeader(errors.Kind(err))
return
}
http.Redirect(w, r, url, errors.KindRedirect)
return return
} }
w.WriteHeader(errors.Kind(err)) w.WriteHeader(errors.Kind(err))
+8 -1
View File
@@ -28,7 +28,14 @@ func ModuleHandler(dp Protocol, lggr log.Entry, df *mode.DownloadFile) http.Hand
err = errors.E(op, err, severityLevel) err = errors.E(op, err, severityLevel)
lggr.SystemErr(err) lggr.SystemErr(err)
if errors.Kind(err) == errors.KindRedirect { if errors.Kind(err) == errors.KindRedirect {
http.Redirect(w, r, getRedirectURL(df.URL(mod), r.URL.Path), errors.KindRedirect) url, err := getRedirectURL(df.URL(mod), r.URL.Path)
if err != nil {
err = errors.E(op, errors.M(mod), errors.V(ver), err)
lggr.SystemErr(err)
w.WriteHeader(errors.Kind(err))
return
}
http.Redirect(w, r, url, errors.KindRedirect)
return return
} }
w.WriteHeader(errors.Kind(err)) w.WriteHeader(errors.Kind(err))
+7 -1
View File
@@ -28,7 +28,13 @@ func ZipHandler(dp Protocol, lggr log.Entry, df *mode.DownloadFile) http.Handler
err = errors.E(op, err, severityLevel) err = errors.E(op, err, severityLevel)
lggr.SystemErr(err) lggr.SystemErr(err)
if errors.Kind(err) == errors.KindRedirect { if errors.Kind(err) == errors.KindRedirect {
http.Redirect(w, r, getRedirectURL(df.URL(mod), r.URL.Path), errors.KindRedirect) url, err := getRedirectURL(df.URL(mod), r.URL.Path)
if err != nil {
lggr.SystemErr(err)
w.WriteHeader(errors.Kind(err))
return
}
http.Redirect(w, r, url, errors.KindRedirect)
return return
} }
w.WriteHeader(errors.Kind(err)) w.WriteHeader(errors.Kind(err))
+3
View File
@@ -60,6 +60,9 @@ func (s *storageImpl) Catalog(ctx context.Context, token string, pageSize int) (
} }
return nil return nil
}) })
if err != nil && err != io.EOF {
return nil, "", errors.E(op, err, errors.KindUnexpected)
}
return res, resToken, nil return res, resToken, nil
} }
+7 -1
View File
@@ -31,6 +31,9 @@ func NewStorage(conf *config.MinioConfig, timeout time.Duration) (storage.Backen
region := conf.Region region := conf.Region
useSSL := conf.EnableSSL useSSL := conf.EnableSSL
minioCore, err := minio.NewCore(endpoint, accessKeyID, secretAccessKey, useSSL) minioCore, err := minio.NewCore(endpoint, accessKeyID, secretAccessKey, useSSL)
if err != nil {
return nil, errors.E(op, err)
}
minioClient, err := minio.New(endpoint, accessKeyID, secretAccessKey, useSSL) minioClient, err := minio.New(endpoint, accessKeyID, secretAccessKey, useSSL)
if err != nil { if err != nil {
return nil, errors.E(op, err) return nil, errors.E(op, err)
@@ -39,7 +42,10 @@ func NewStorage(conf *config.MinioConfig, timeout time.Duration) (storage.Backen
err = minioClient.MakeBucket(bucketName, region) err = minioClient.MakeBucket(bucketName, region)
if err != nil { if err != nil {
// Check to see if we already own this bucket // Check to see if we already own this bucket
exists, _ := minioClient.BucketExists(bucketName) exists, err := minioClient.BucketExists(bucketName)
if err != nil {
return nil, errors.E(op, err)
}
if !exists { if !exists {
// MakeBucket Error takes priority // MakeBucket Error takes priority
return nil, errors.E(op, err) return nil, errors.E(op, err)