diff --git a/pkg/mcclient/modules/mod_domains.go b/pkg/mcclient/modules/mod_domains.go index 1ef700b466..84d57ffb34 100644 --- a/pkg/mcclient/modules/mod_domains.go +++ b/pkg/mcclient/modules/mod_domains.go @@ -5,6 +5,7 @@ import ( "yunion.io/x/jsonutils" "yunion.io/x/log" + "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/util/httputils" "yunion.io/x/onecloud/pkg/mcclient" @@ -217,12 +218,6 @@ func (this *DomainManager) DoDomainConfigDelete(s *mcclient.ClientSession, param ids, _ := params.GetArray("ids") domains := jsonutils.JSONArray2StringArray(ids) - E := httputils.JSONClientError{ - Code: 403, - Class: "", - Details: "", - } - for _, domain := range domains { objId, err := this.GetId(s, domain, nil) if err != nil { @@ -242,25 +237,21 @@ func (this *DomainManager) DoDomainConfigDelete(s *mcclient.ClientSession, param detail, err := this.GetById(s, domain, nil) if err != nil { log.Errorf("got domain detail error: %v", err) - E.Details = "找不到该认证域" - return ret, &E + return ret, httperrors.NewResourceNotFoundError("找不到该认证域") } driver, err := detail.GetString("driver") if err != nil { log.Errorf("got driver from domain detail error: %v", err) - E.Details = "服务器错误,获取认证协议失败,不允许删除" - return ret, &E + return ret, httperrors.NewInternalServerError("服务器错误,获取认证协议失败,不允许删除") } if driver != "ldap" { if result, err := UsersV3.List(s, params); err != nil { log.Errorf("user list got error: %v", err) - E.Details = "服务器错误,获取认证域用户列表失败,不允许删除" - return ret, &E + return ret, httperrors.NewInternalServerError("服务器错误,获取认证域用户列表失败,不允许删除") } else if len(result.Data) > 0 { - E.Details = fmt.Sprintf("域名%s下存在%d名用户,不允许删除.", objId, len(result.Data)) - return ret, &E + return ret, httperrors.NewForbiddenError(fmt.Sprintf("域名%s下存在%d名用户,不允许删除.", objId, len(result.Data))) } }