mirror of
https://github.com/gomods/athens
synced 2026-02-03 12:10:32 +00:00
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:
committed by
Aaron Schlesinger
parent
1eef6b9940
commit
800024fc6f
@@ -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)
|
||||||
url.Path = path
|
if err != nil {
|
||||||
return url.String()
|
return "", err
|
||||||
|
}
|
||||||
|
url.Path = path
|
||||||
|
return url.String(), nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user