mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-06-10 08:34:42 +08:00
mcclient error
This commit is contained in:
@@ -22,7 +22,7 @@ func newNameValidator(manager IModelManager, ownerProjId string, name string) er
|
||||
return err
|
||||
}
|
||||
if !isNameUnique(manager, ownerProjId, name) {
|
||||
return httperrors.NewConflictError(fmt.Sprintf("duplicate name %s", name))
|
||||
return httperrors.NewDuplicateNameError("name", name)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -44,7 +44,7 @@ func alterNameValidator(model IModel, name string) error {
|
||||
return err
|
||||
}
|
||||
if !isAlterNameUnique(model, name) {
|
||||
return httperrors.NewConflictError(fmt.Sprintf("duplicate name %s", name))
|
||||
return httperrors.NewDuplicateNameError("name", name)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -214,7 +214,7 @@ func (model *SVirtualResourceBase) PerformChangeOwner(ctx context.Context, userC
|
||||
q = q.Equals("tenant_id", tobj.GetId())
|
||||
q = q.NotEquals("id", model.GetId())
|
||||
if q.Count() > 0 {
|
||||
return nil, httperrors.NewConflictError(fmt.Sprintf("duplicate name %s", model.GetName()))
|
||||
return nil, httperrors.NewDuplicateNameError("name", model.GetName())
|
||||
}
|
||||
former, _ := TenantCacheManager.FetchTenantById(ctx, model.ProjectId)
|
||||
if former == nil {
|
||||
|
||||
@@ -144,7 +144,7 @@ func (self *SSecurityGroup) PerformClone(ctx context.Context, userCred mcclient.
|
||||
sql := SecurityGroupManager.Query()
|
||||
sql = SecurityGroupManager.FilterByName(sql, name)
|
||||
if sql.Count() != 0 {
|
||||
return nil, httperrors.NewDuplicateNameError("Dumplicate name %s", name)
|
||||
return nil, httperrors.NewDuplicateNameError("name", name)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -301,7 +301,8 @@ func (self *SStoragecache) PerformUncacheImage(ctx context.Context, userCred mcc
|
||||
|
||||
image, err := CachedimageManager.getImageInfo(ctx, userCred, imageStr, isForce)
|
||||
if err != nil {
|
||||
return nil, httperrors.NewImageNotFoundError("image %s not found: %s", imageStr, err)
|
||||
log.Infof("image %s not found %s", imageStr, err)
|
||||
return nil, httperrors.NewImageNotFoundError(imageStr)
|
||||
}
|
||||
|
||||
scimg := StoragecachedimageManager.GetStoragecachedimage(self.Id, image.Id)
|
||||
@@ -337,7 +338,8 @@ func (self *SStoragecache) PerformCacheImage(ctx context.Context, userCred mccli
|
||||
|
||||
image, err := CachedimageManager.getImageInfo(ctx, userCred, imageStr, isForce)
|
||||
if err != nil {
|
||||
return nil, httperrors.NewImageNotFoundError("image %s not found: %s", imageStr, err)
|
||||
log.Infof("image %s not found %s", imageStr, err)
|
||||
return nil, httperrors.NewImageNotFoundError(imageStr)
|
||||
}
|
||||
|
||||
if len(image.Checksum) == 0 {
|
||||
|
||||
@@ -11,13 +11,13 @@ func NewJsonClientError(code int, title string, msg string, error httputils.Erro
|
||||
return &err
|
||||
}
|
||||
|
||||
func errorMessage(msg string, params []interface{}) (string, httputils.Error) {
|
||||
fileds := make([]string, len(params))
|
||||
func errorMessage(msg string, params ...interface{}) (string, httputils.Error) {
|
||||
fields := make([]string, len(params))
|
||||
for i, v := range params {
|
||||
fileds[i] = fmt.Sprint(v)
|
||||
fields[i] = fmt.Sprint(v)
|
||||
}
|
||||
|
||||
error := httputils.Error{Id: msg, Fields: fileds}
|
||||
error := httputils.Error{Id: msg, Fields: fields}
|
||||
if len(params) > 0 {
|
||||
msg = fmt.Sprintf(msg, params...)
|
||||
}
|
||||
@@ -60,8 +60,8 @@ func NewPaymentError(msg string, params ...interface{}) *httputils.JSONClientErr
|
||||
return NewJsonClientError(402, "PaymentError", msg, err)
|
||||
}
|
||||
|
||||
func NewImageNotFoundError(msg string, params ...interface{}) *httputils.JSONClientError {
|
||||
msg, err := errorMessage(msg, params)
|
||||
func NewImageNotFoundError(imageId string) *httputils.JSONClientError {
|
||||
msg, err := errorMessage("Image %s not found", imageId)
|
||||
return NewJsonClientError(404, "ImageNotFoundError", msg, err)
|
||||
}
|
||||
|
||||
@@ -105,6 +105,11 @@ func NewWeakPasswordError() *httputils.JSONClientError {
|
||||
return NewJsonClientError(400, "WeakPasswordError", msg, err)
|
||||
}
|
||||
|
||||
func NewMissingParameterError(paramName string) *httputils.JSONClientError {
|
||||
msg, err := errorMessage("Missing parameter %s", paramName)
|
||||
return NewJsonClientError(400, "MissingParameterError", msg, err)
|
||||
}
|
||||
|
||||
func NewInsufficientResourceError(msg string, params ...interface{}) *httputils.JSONClientError {
|
||||
msg, err := errorMessage(msg, params)
|
||||
return NewJsonClientError(400, "InsufficientResourceError", msg, err)
|
||||
@@ -160,8 +165,8 @@ func NewNotAcceptableError(msg string, params ...interface{}) *httputils.JSONCli
|
||||
return NewJsonClientError(406, "NotAcceptableError", msg, err)
|
||||
}
|
||||
|
||||
func NewDuplicateNameError(msg string, params ...interface{}) *httputils.JSONClientError {
|
||||
msg, err := errorMessage(msg, params)
|
||||
func NewDuplicateNameError(resName string, resId string) *httputils.JSONClientError {
|
||||
msg, err := errorMessage("Duplicate %s %s", resName, resId)
|
||||
return NewJsonClientError(409, "DuplicateNameError", msg, err)
|
||||
}
|
||||
|
||||
|
||||
@@ -71,6 +71,10 @@ func InvalidInputError(w http.ResponseWriter, msg string, params ...interface{})
|
||||
JsonClientError(w, NewInputParameterError(msg, params...))
|
||||
}
|
||||
|
||||
func MissingParameterError(w http.ResponseWriter, param string) {
|
||||
JsonClientError(w, NewMissingParameterError(param))
|
||||
}
|
||||
|
||||
func ConflictError(w http.ResponseWriter, msg string, params ...interface{}) {
|
||||
JsonClientError(w, NewConflictError(msg, params...))
|
||||
}
|
||||
|
||||
@@ -37,10 +37,10 @@ func (this *DomainManager) UpdateConfig(s *mcclient.ClientSession, domain string
|
||||
func (this *DomainManager) _updateConfig(s *mcclient.ClientSession, domain string, config jsonutils.JSONObject) (jsonutils.JSONObject, error) {
|
||||
driver, e := config.GetString("config", "identity", "driver")
|
||||
if e != nil {
|
||||
return nil, fmt.Errorf("Malformed domain configuration %s", driver)
|
||||
return nil, httperrors.NewInputParameterError("Malformed domain configuration %s", driver)
|
||||
}
|
||||
if driver != "ldap" {
|
||||
return nil, fmt.Errorf("Invalid driver: %s, ONLY ldap is supported", driver)
|
||||
return nil, httperrors.NewInputParameterError("Invalid driver: %s, ONLY ldap is supported", driver)
|
||||
}
|
||||
url := fmt.Sprintf("/domains/%s/config", domain)
|
||||
ret, e := this._patch(s, url, config, "config")
|
||||
@@ -58,10 +58,7 @@ func (this *DomainManager) _updateConfig(s *mcclient.ClientSession, domain strin
|
||||
|
||||
func (this *DomainManager) DeleteConfig(s *mcclient.ClientSession, domain string) (jsonutils.JSONObject, error) {
|
||||
if domain == "default" {
|
||||
err := httputils.JSONClientError{}
|
||||
err.Code = 403
|
||||
err.Details = fmt.Sprintf("domain %s did not allowed deleted", domain)
|
||||
return nil, &err
|
||||
return nil, httperrors.NewForbiddenError("domain %s did not allowed deleted", domain)
|
||||
}
|
||||
|
||||
result, e := this._deleteConfig(s, domain)
|
||||
@@ -143,14 +140,11 @@ func (this *DomainManager) DoDomainConfigUpdate(s *mcclient.ClientSession, domai
|
||||
|
||||
_domain, err := params.Get("domain")
|
||||
if err != nil {
|
||||
return ret, err
|
||||
return ret, httperrors.NewMissingParameterError("domain")
|
||||
}
|
||||
name, _ := _domain.GetString("name")
|
||||
if domain == "default" && name != "Default" {
|
||||
err := httputils.JSONClientError{}
|
||||
err.Code = 403
|
||||
err.Details = fmt.Sprintf("domain %s did not allowed update Name", domain)
|
||||
return nil, &err
|
||||
return nil, httperrors.NewUnsupportOperationError("domain %s did not allowed update Name", domain)
|
||||
}
|
||||
|
||||
_domain, err = this.Patch(s, domain, _domain)
|
||||
@@ -182,7 +176,7 @@ func (this *DomainManager) DoDomainConfigCreate(s *mcclient.ClientSession, param
|
||||
_domain, err := params.Get("domain")
|
||||
|
||||
if err != nil {
|
||||
return ret, err
|
||||
return ret, httperrors.NewMissingParameterError("domain")
|
||||
}
|
||||
|
||||
_domain, err = this.Create(s, _domain)
|
||||
@@ -237,16 +231,16 @@ 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)
|
||||
return ret, httperrors.NewResourceNotFoundError("找不到该认证域")
|
||||
return ret, httperrors.NewResourceNotFoundError("%s %s not find", "Domain", domain)
|
||||
}
|
||||
|
||||
driver, _ := detail.GetString("driver")
|
||||
if driver != "ldap" {
|
||||
if result, err := UsersV3.List(s, params); err != nil {
|
||||
log.Errorf("user list got error: %v", err)
|
||||
return ret, httperrors.NewInternalServerError("服务器错误,获取认证域用户列表失败,不允许删除")
|
||||
return ret, httperrors.NewInternalServerError("Not allow delete: failed to fetch related user list.")
|
||||
} else if len(result.Data) > 0 {
|
||||
return ret, httperrors.NewForbiddenError(fmt.Sprintf("域名%s下存在%d名用户,不允许删除.", objId, len(result.Data)))
|
||||
return ret, httperrors.NewForbiddenError(fmt.Sprintf("Not allow delete: there still exists %s user related with domain %s.", objId, len(result.Data)))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -76,11 +76,11 @@ func (this *ImageManager) GetByName(session *mcclient.ClientSession, id string,
|
||||
return nil, e
|
||||
}
|
||||
if len(listresults.Data) == 0 {
|
||||
return nil, httperrors.NewImageNotFoundError("Image not found")
|
||||
return nil, httperrors.NewImageNotFoundError(id)
|
||||
} else if len(listresults.Data) == 1 {
|
||||
return listresults.Data[0], nil
|
||||
} else {
|
||||
return nil, httperrors.NewDuplicateNameError("More than 1 images matching the name")
|
||||
return nil, httperrors.NewDuplicateNameError("image name", id)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -436,7 +436,7 @@ func (this *ImageManager) _create(s *mcclient.ClientSession, params jsonutils.JS
|
||||
if len(format) == 0 {
|
||||
format, _ = params.GetString("disk_format")
|
||||
if len(format) == 0 {
|
||||
return nil, fmt.Errorf("Missing format")
|
||||
return nil, httperrors.NewMissingParameterError("disk_format")
|
||||
}
|
||||
}
|
||||
exists, _ := utils.InStringArray(format, []string{"qcow2", "raw", "vhd", "vmdk", "iso", "docker"})
|
||||
@@ -449,7 +449,7 @@ func (this *ImageManager) _create(s *mcclient.ClientSession, params jsonutils.JS
|
||||
if len(imageId) == 0 {
|
||||
osType, err := params.GetString("properties", "os_type")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Can't get os_type from params: %s", params.String())
|
||||
return nil, httperrors.NewMissingParameterError("os_type")
|
||||
}
|
||||
exists, _ = utils.InStringArray(osType, []string{"Windows", "Linux", "Freebsd", "Android", "macOS", "VMWare"})
|
||||
if !exists {
|
||||
@@ -457,11 +457,11 @@ func (this *ImageManager) _create(s *mcclient.ClientSession, params jsonutils.JS
|
||||
}
|
||||
name, _ := params.GetString("name")
|
||||
if len(name) == 0 {
|
||||
return nil, fmt.Errorf("Missing name")
|
||||
return nil, httperrors.NewMissingParameterError("name")
|
||||
}
|
||||
dupName, e := this.IsNameDuplicate(s, name)
|
||||
if dupName {
|
||||
return nil, fmt.Errorf("Duplicate name %s", name)
|
||||
return nil, httperrors.NewDuplicateNameError("name", name)
|
||||
}
|
||||
if e != nil {
|
||||
return nil, fmt.Errorf("Check name duplicate error %s", e)
|
||||
|
||||
@@ -101,7 +101,7 @@ func (this *ResourceManager) GetByNameInContexts(session *mcclient.ClientSession
|
||||
} else if len(results.Data) == 1 {
|
||||
return results.Data[0], nil
|
||||
} else {
|
||||
return nil, httperrors.NewDuplicateNameError("Name %s duplicate", name)
|
||||
return nil, httperrors.NewDuplicateNameError("name", name)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user