mirror of
https://github.com/go-sigma/sigma.git
synced 2026-10-28 14:34:34 +08:00
fix(handler): log original error instead of rebuilding it
Replace `errors.New(utils.UnwrapJoinedErrors(err))` with the original `err` in slog error logging so the logged value keeps its error chain for `errors.Is`/`errors.As` classification. Also drop the duplicated `err` attribute in the namespace handlers. Verification: - go build -tags "netgo,timetzdata,exclude_graphdriver_btrfs,containers_image_openpgp" ./pkg/server/handlers/...
This commit is contained in:
1 parent
ee12dbda37
commit
20af519812
19 files changed
+27
-27
No files matched your search
@@ -82,7 +82,7 @@ func (h *handler) ListTags(c *gin.Context) {
|
||||
authChecked, err := h.Authorizer.Repository(ctx, *user, repositoryObj.ID, enums.AuthRead)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)))
|
||||
slog.Error("resource not found", "err", err)
|
||||
errcode.NewDSError(c, errcode.GenDSErrCodeResourceNotFound(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ func (h *handler) DeleteBlob(c *gin.Context) {
|
||||
authChecked, err := h.Authorizer.Repository(ctx, *user, namespaceObj.ID, enums.AuthManage)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)))
|
||||
slog.Error("resource not found", "err", err)
|
||||
errcode.NewDSError(c, errcode.GenDSErrCodeResourceNotFound(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ func (h *handler) GetBlob(c *gin.Context) {
|
||||
authChecked, err := h.Authorizer.Namespace(ctx, *user, namespaceObj.ID, enums.AuthRead)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)))
|
||||
slog.Error("resource not found", "err", err)
|
||||
errcode.NewDSError(c, errcode.GenDSErrCodeResourceNotFound(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ func (h *handler) HeadBlob(c *gin.Context) {
|
||||
authChecked, err := h.Authorizer.Namespace(ctx, *user, namespaceObj.ID, enums.AuthRead)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)))
|
||||
slog.Error("resource not found", "err", err)
|
||||
errcode.NewDSError(c, errcode.GenDSErrCodeResourceNotFound(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ func (h *handler) DeleteManifest(c *gin.Context) {
|
||||
authChecked, err := h.Authorizer.Namespace(ctx, *user, namespaceObj.ID, enums.AuthManage)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)))
|
||||
slog.Error("resource not found", "err", err)
|
||||
errcode.NewDSError(c, errcode.GenDSErrCodeResourceNotFound(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ func (h *handler) GetManifest(c *gin.Context) {
|
||||
authChecked, err := h.Authorizer.Namespace(ctx, *user, namespaceObj.ID, enums.AuthRead)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)))
|
||||
slog.Error("resource not found", "err", err)
|
||||
errcode.NewDSError(c, errcode.GenDSErrCodeResourceNotFound(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ func (h *handler) HeadManifest(c *gin.Context) {
|
||||
authChecked, err := h.Authorizer.Namespace(ctx, *user, namespaceObj.ID, enums.AuthRead)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)))
|
||||
slog.Error("resource not found", "err", err)
|
||||
errcode.NewDSError(c, errcode.GenDSErrCodeResourceNotFound(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ func (h *handler) PutManifest(c *gin.Context) {
|
||||
authChecked, err := h.Authorizer.Namespace(ctx, *user, namespaceObj.ID, enums.AuthRead)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)))
|
||||
slog.Error("resource not found", "err", err)
|
||||
errcode.NewDSError(c, errcode.GenDSErrCodeResourceNotFound(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ func (h *handler) PatchUpload(c *gin.Context) {
|
||||
authChecked, err := h.Authorizer.Namespace(ctx, *user, namespaceObj.ID, enums.AuthManage)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)))
|
||||
slog.Error("resource not found", "err", err)
|
||||
errcode.NewDSError(c, errcode.GenDSErrCodeResourceNotFound(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ func (h *handler) PostUpload(c *gin.Context) {
|
||||
authChecked, err := h.Authorizer.Namespace(ctx, *user, namespaceObj.ID, enums.AuthManage)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)))
|
||||
slog.Error("resource not found", "err", err)
|
||||
errcode.NewDSError(c, errcode.GenDSErrCodeResourceNotFound(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ func (h *handler) PutUpload(c *gin.Context) {
|
||||
authChecked, err := h.Authorizer.Namespace(ctx, *user, namespaceObj.ID, enums.AuthManage)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)))
|
||||
slog.Error("resource not found", "err", err)
|
||||
errcode.NewDSError(c, errcode.GenDSErrCodeResourceNotFound(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -54,11 +54,11 @@ func (h *handler) DeleteNamespace(c *gin.Context, req *api.DeleteNamespaceReques
|
||||
authChecked, err := h.Authorizer.Namespace(ctx, *user, req.ID, enums.AuthManage)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)), "NamespaceID", req.ID)
|
||||
slog.Error("resource not found", "err", err, "NamespaceID", req.ID)
|
||||
errcode.NewHTTPError(c, errcode.HTTPErrCodeNotFound, utils.UnwrapJoinedErrors(err))
|
||||
return
|
||||
}
|
||||
slog.Error("get resource failed", "err", errors.New(utils.UnwrapJoinedErrors(err)), "NamespaceID", req.ID, "err", err)
|
||||
slog.Error("get resource failed", "err", err, "NamespaceID", req.ID)
|
||||
errcode.NewHTTPError(c, errcode.HTTPErrCodeInternalError, utils.UnwrapJoinedErrors(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -54,11 +54,11 @@ func (h *handler) PutNamespace(c *gin.Context, req *api.UpdateNamespaceRequest)
|
||||
authChecked, err := h.Authorizer.Namespace(ctx, *user, req.ID, enums.AuthAdmin)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)), "NamespaceID", req.ID)
|
||||
slog.Error("resource not found", "err", err, "NamespaceID", req.ID)
|
||||
errcode.NewHTTPError(c, errcode.HTTPErrCodeNotFound, utils.UnwrapJoinedErrors(err))
|
||||
return
|
||||
}
|
||||
slog.Error("get resource failed", "err", errors.New(utils.UnwrapJoinedErrors(err)), "NamespaceID", req.ID, "err", err)
|
||||
slog.Error("get resource failed", "err", err, "NamespaceID", req.ID)
|
||||
errcode.NewHTTPError(c, errcode.HTTPErrCodeInternalError, utils.UnwrapJoinedErrors(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -58,11 +58,11 @@ func (h *handler) CreateRepository(c *gin.Context, req *api.CreateRepositoryRequ
|
||||
authChecked, err := h.Authorizer.Namespace(ctx, *user, req.NamespaceID, enums.AuthManage)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)), "NamespaceID", req.NamespaceID)
|
||||
slog.Error("resource not found", "err", err, "NamespaceID", req.NamespaceID)
|
||||
errcode.NewHTTPError(c, errcode.HTTPErrCodeNotFound, utils.UnwrapJoinedErrors(err))
|
||||
return
|
||||
}
|
||||
slog.Error("get resource failed", "err", errors.New(utils.UnwrapJoinedErrors(err)), "NamespaceID", req.NamespaceID)
|
||||
slog.Error("get resource failed", "err", err, "NamespaceID", req.NamespaceID)
|
||||
errcode.NewHTTPError(c, errcode.HTTPErrCodeInternalError, utils.UnwrapJoinedErrors(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -56,11 +56,11 @@ func (h *handler) DeleteRepository(c *gin.Context, req *api.DeleteRepositoryRequ
|
||||
authChecked, err := h.Authorizer.Repository(ctx, *user, req.ID, enums.AuthManage)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)), "NamespaceID", req.NamespaceID, "RepositoryID", req.ID)
|
||||
slog.Error("resource not found", "err", err, "NamespaceID", req.NamespaceID, "RepositoryID", req.ID)
|
||||
errcode.NewHTTPError(c, errcode.HTTPErrCodeNotFound, utils.UnwrapJoinedErrors(err))
|
||||
return
|
||||
}
|
||||
slog.Error("get resource failed", "err", errors.New(utils.UnwrapJoinedErrors(err)), "NamespaceID", req.NamespaceID, "RepositoryID", req.ID)
|
||||
slog.Error("get resource failed", "err", err, "NamespaceID", req.NamespaceID, "RepositoryID", req.ID)
|
||||
errcode.NewHTTPError(c, errcode.HTTPErrCodeInternalError, utils.UnwrapJoinedErrors(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -59,11 +59,11 @@ func (h *handler) GetRepository(c *gin.Context, req *api.GetRepositoryRequest) {
|
||||
authChecked, err := h.Authorizer.Repository(ctx, *user, req.ID, enums.AuthRead)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)), "NamespaceID", req.NamespaceID, "RepositoryID", req.ID)
|
||||
slog.Error("resource not found", "err", err, "NamespaceID", req.NamespaceID, "RepositoryID", req.ID)
|
||||
errcode.NewHTTPError(c, errcode.HTTPErrCodeNotFound, utils.UnwrapJoinedErrors(err))
|
||||
return
|
||||
}
|
||||
slog.Error("get resource failed", "err", errors.New(utils.UnwrapJoinedErrors(err)), "NamespaceID", req.NamespaceID, "RepositoryID", req.ID)
|
||||
slog.Error("get resource failed", "err", err, "NamespaceID", req.NamespaceID, "RepositoryID", req.ID)
|
||||
errcode.NewHTTPError(c, errcode.HTTPErrCodeInternalError, utils.UnwrapJoinedErrors(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -58,11 +58,11 @@ func (h *handler) UpdateRepository(c *gin.Context, req *api.UpdateRepositoryRequ
|
||||
authChecked, err := h.Authorizer.Repository(ctx, *user, req.ID, enums.AuthManage)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("resource not found", "err", errors.New(utils.UnwrapJoinedErrors(err)), "NamespaceID", req.NamespaceID, "RepositoryID", req.ID)
|
||||
slog.Error("resource not found", "err", err, "NamespaceID", req.NamespaceID, "RepositoryID", req.ID)
|
||||
errcode.NewHTTPError(c, errcode.HTTPErrCodeNotFound, utils.UnwrapJoinedErrors(err))
|
||||
return
|
||||
}
|
||||
slog.Error("get resource failed", "err", errors.New(utils.UnwrapJoinedErrors(err)), "NamespaceID", req.NamespaceID, "RepositoryID", req.ID)
|
||||
slog.Error("get resource failed", "err", err, "NamespaceID", req.NamespaceID, "RepositoryID", req.ID)
|
||||
errcode.NewHTTPError(c, errcode.HTTPErrCodeInternalError, utils.UnwrapJoinedErrors(err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -58,11 +58,11 @@ func (h *handler) DeleteTag(c *gin.Context, req *api.DeleteTagRequest) {
|
||||
authChecked, err := h.Authorizer.Tag(ctx, *user, req.ID, enums.AuthRead)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("namespace not found", "err", errors.New(utils.UnwrapJoinedErrors(err)), "NamespaceID", req.NamespaceID)
|
||||
slog.Error("namespace not found", "err", err, "NamespaceID", req.NamespaceID)
|
||||
errcode.NewHTTPError(c, errcode.HTTPErrCodeNotFound, fmt.Sprintf("Namespace(%s) not found: %v", req.NamespaceID, err))
|
||||
return
|
||||
}
|
||||
slog.Error("namespace find failed", "err", errors.New(utils.UnwrapJoinedErrors(err)), "NamespaceID", req.NamespaceID)
|
||||
slog.Error("namespace find failed", "err", err, "NamespaceID", req.NamespaceID)
|
||||
errcode.NewHTTPError(c, errcode.HTTPErrCodeInternalError, fmt.Sprintf("Namespace(%s) find failed: %v", req.NamespaceID, err))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -58,11 +58,11 @@ func (h *handler) GetTag(c *gin.Context, req *api.GetTagRequest) {
|
||||
authChecked, err := h.Authorizer.Tag(ctx, *user, req.ID, enums.AuthRead)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
slog.Error("namespace not found", "err", errors.New(utils.UnwrapJoinedErrors(err)), "NamespaceID", req.NamespaceID)
|
||||
slog.Error("namespace not found", "err", err, "NamespaceID", req.NamespaceID)
|
||||
errcode.NewHTTPError(c, errcode.HTTPErrCodeNotFound, fmt.Sprintf("Namespace(%s) not found: %v", req.NamespaceID, err))
|
||||
return
|
||||
}
|
||||
slog.Error("namespace find failed", "err", errors.New(utils.UnwrapJoinedErrors(err)), "NamespaceID", req.NamespaceID)
|
||||
slog.Error("namespace find failed", "err", err, "NamespaceID", req.NamespaceID)
|
||||
errcode.NewHTTPError(c, errcode.HTTPErrCodeInternalError, fmt.Sprintf("Namespace(%s) find failed: %v", req.NamespaceID, err))
|
||||
return
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user