fix: 避免dbinstance_sku.get 异常

This commit is contained in:
Qu Xuan
2020-03-17 16:22:59 +08:00
parent ae1557626d
commit 4f5d78b392
3 changed files with 12 additions and 9 deletions
+2 -3
View File
@@ -58,11 +58,10 @@ func call(obj interface{}, fName string, inputs ...interface{}) ([]reflect.Value
func callObject(modelVal reflect.Value, fName string, inputs ...interface{}) ([]reflect.Value, error) {
funcVal := modelVal.MethodByName(fName)
return callFunc(funcVal, inputs...)
return callFunc(funcVal, fName, inputs...)
}
func callFunc(funcVal reflect.Value, inputs ...interface{}) ([]reflect.Value, error) {
fName := funcVal.String()
func callFunc(funcVal reflect.Value, fName string, inputs ...interface{}) ([]reflect.Value, error) {
if !funcVal.IsValid() || funcVal.IsNil() {
return nil, httperrors.NewActionNotFoundError(fmt.Sprintf("%s method not found", fName))
}
+6 -6
View File
@@ -847,7 +847,7 @@ func (dispatcher *DBModelDispatcher) tryGetModelProperty(ctx context.Context, pr
}
userCred := fetchUserCredential(ctx)
params := []interface{}{ctx, userCred, query}
outs, err := callFunc(funcValue, params...)
outs, err := callFunc(funcValue, allowFuncName, params...)
if err != nil {
return nil, httperrors.NewInternalServerError("reflect call %s fail %s", allowFuncName, err)
}
@@ -859,7 +859,7 @@ func (dispatcher *DBModelDispatcher) tryGetModelProperty(ctx context.Context, pr
}
funcValue = modelValue.MethodByName(funcName)
outs, err = callFunc(funcValue, params...)
outs, err = callFunc(funcValue, funcName, params...)
if err != nil {
return nil, httperrors.NewInternalServerError("reflect call %s fail %s", funcName, err)
}
@@ -943,7 +943,7 @@ func (dispatcher *DBModelDispatcher) GetSpecific(ctx context.Context, idStr stri
return nil, httperrors.NewSpecNotFoundError("%s %s %s not found", dispatcher.Keyword(), idStr, spec)
}
outs, err := callFunc(funcValue, params...)
outs, err := callFunc(funcValue, funcName, params...)
if err != nil {
return nil, err
}
@@ -961,7 +961,7 @@ func (dispatcher *DBModelDispatcher) GetSpecific(ctx context.Context, idStr stri
return nil, httperrors.NewSpecNotFoundError("%s %s %s not found", dispatcher.Keyword(), idStr, spec)
}
outs, err := callFunc(funcValue, params...)
outs, err := callFunc(funcValue, funcName, params...)
if err != nil {
return nil, err
}
@@ -1526,7 +1526,7 @@ func reflectDispatcherInternal(
return nil, httperrors.NewActionNotFoundError(msg)
}
outs, err := callFunc(allowFuncValue, params...)
outs, err := callFunc(allowFuncValue, allowFuncName, params...)
if err != nil {
return nil, err
}
@@ -1539,7 +1539,7 @@ func reflectDispatcherInternal(
}
}
outs, err := callFunc(funcValue, params...)
outs, err := callFunc(funcValue, funcName, params...)
if err != nil {
return nil, err
}
+4
View File
@@ -168,6 +168,10 @@ func (manager *SDBInstanceSkuManager) ListItemFilter(
return q, nil
}
func (self *SDBInstanceSku) GetExtraDetails(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, isList bool) (api.DBInstanceSkuDetails, error) {
return api.DBInstanceSkuDetails{}, nil
}
func (manager *SDBInstanceSkuManager) FetchCustomizeColumns(
ctx context.Context,
userCred mcclient.TokenCredential,