From df0299bf740392eb5c846aefadfa34fd10cedd0b Mon Sep 17 00:00:00 2001 From: Qu Xuan Date: Fri, 15 Nov 2019 17:31:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=81=BF=E5=85=8D=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E5=88=B0=E5=94=AE=E7=BD=84=E7=9A=84=E5=A5=97=E9=A4=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/models/dbinstances.go | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/pkg/compute/models/dbinstances.go b/pkg/compute/models/dbinstances.go index 40b22471ac..31945673f0 100644 --- a/pkg/compute/models/dbinstances.go +++ b/pkg/compute/models/dbinstances.go @@ -283,7 +283,7 @@ func (man *SDBInstanceManager) ValidateCreateData(ctx context.Context, userCred instance := SDBInstance{} jsonutils.Update(&instance, input) - skus, err := instance.GetDBInstanceSkus() + skus, err := instance.GetAvailableDBInstanceSkus() if err != nil { return nil, httperrors.NewGeneralError(err) } @@ -729,9 +729,9 @@ func (self *SDBInstance) PerformChangeConfig(ctx context.Context, userCred mccli } if changed { - skus, err := tmp.GetDBInstanceSkus() + skus, err := tmp.GetAvailableDBInstanceSkus() if err != nil { - return nil, httperrors.NewGeneralError(errors.Wrap(err, "self.GetDBInstanceSkus")) + return nil, httperrors.NewGeneralError(errors.Wrap(err, "self.GetAvailableDBInstanceSkus")) } if len(skus) == 0 { return nil, httperrors.NewInputParameterError("failed to match any skus for change config") @@ -1164,6 +1164,17 @@ func (self *SDBInstance) GetDBInstanceSkuQuery() *sqlchemy.SQuery { return q } +func (self *SDBInstance) GetAvailableDBInstanceSkus() ([]SDBInstanceSku, error) { + skus := []SDBInstanceSku{} + q := self.GetDBInstanceSkuQuery().Equals("status", api.DBINSTANCE_SKU_AVAILABLE) + err := db.FetchModelObjects(DBInstanceSkuManager, q, &skus) + if err != nil { + return nil, err + } + return skus, nil + +} + func (self *SDBInstance) GetDBInstanceSkus() ([]SDBInstanceSku, error) { skus := []SDBInstanceSku{} q := self.GetDBInstanceSkuQuery() @@ -1190,9 +1201,9 @@ func (self *SDBInstance) GetAvailableZoneIds() ([]string, error) { func (self *SDBInstance) GetAvailableInstanceTypes() ([]cloudprovider.SInstanceType, error) { instanceTypes := map[string]cloudprovider.SInstanceType{} - skus, err := self.GetDBInstanceSkus() + skus, err := self.GetAvailableDBInstanceSkus() if err != nil { - return nil, errors.Wrap(err, "self.GetDBInstanceSkus") + return nil, errors.Wrap(err, "self.GetAvailableDBInstanceSkus") } for _, sku := range skus {