fix: module not found return 404 (#25558)

Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
This commit is contained in:
Jian Qiu
2026-09-04 19:23:42 +08:00
committed by GitHub
parent bb540b7a4a
commit 59b658ce87
2 changed files with 6 additions and 2 deletions

View File

@@ -143,7 +143,9 @@ func (req Request) findMod(resKey string) (modulebase.Manager, error) {
resName := req.params[resKey]
module, err := modulebase.GetModule(req.session, resName)
if err != nil {
return nil, errors.Errorf("found module by %s: %v", resName, err)
// preserve the error chain, so unknown modules (cause
// errors.ErrNotFound) are reported as 404 instead of 500
return nil, errors.Wrapf(err, "found module by %s", resName)
}
if module == nil {
return nil, httperrors.NewNotFoundError("resource %s module not exists", resName)

View File

@@ -294,7 +294,9 @@ func registerAllJointModules() {
func _getModule(session *mcclient.ClientSession, name string) (IBaseManager, error) {
mods, ok := modules[name]
if !ok {
return nil, fmt.Errorf("No such module %s", name)
// unknown module means the request URL does not exist: a client
// error (404), not a server error
return nil, errors.Wrapf(errors.ErrNotFound, "No such module %s", name)
}
if len(mods) == 1 {