Merge pull request #8711 from tb365/bugfix/tb-bugfix-201109

redis prepaid create autorenew bugfix
This commit is contained in:
Zexi Li
2020-11-10 12:53:18 +08:00
committed by GitHub
5 changed files with 13 additions and 4 deletions
+4
View File
@@ -200,6 +200,10 @@ type ElasticcacheCreateInput struct {
// 包年包月时间周期
Duration string `json:"duration"`
// 是否自动续费(仅包年包月时生效)
// default: false
AutoRenew bool `json:"auto_renew"`
// swagger:ignore
ExpiredAt time.Time `json:"expired_at"`
@@ -865,6 +865,7 @@ func (self *SElasticcache) GetCreateAliyunElasticcacheParams(data *jsonutils.JSO
if err != nil {
return nil, errors.Wrap(err, "elasticcache.GetCreateAliyunElasticcacheParams.BillingCycle")
}
billingCycle.AutoRenew = self.AutoRenew
input.BC = &billingCycle
default:
input.ChargeType = "PostPaid"
@@ -956,6 +957,7 @@ func (self *SElasticcache) GetCreateHuaweiElasticcacheParams(data *jsonutils.JSO
if err != nil {
return nil, errors.Wrap(err, "elasticcache.GetCreateHuaweiElasticcacheParams.BillingCycle")
}
billingCycle.AutoRenew = self.AutoRenew
input.BC = &billingCycle
default:
input.ChargeType = "PostPaid"
@@ -1043,6 +1045,7 @@ func (self *SElasticcache) GetCreateQCloudElasticcacheParams(data *jsonutils.JSO
if err != nil {
return nil, errors.Wrap(err, "elasticcache.GetCreateHuaweiElasticcacheParams.BillingCycle")
}
billingCycle.AutoRenew = self.AutoRenew
input.BC = &billingCycle
default:
input.ChargeType = "PostPaid"
+1
View File
@@ -1496,6 +1496,7 @@ func (self *SQcloudRegionDriver) ValidateCreateElasticcacheData(ctx context.Cont
err := data.Unmarshal(&secgroups, "secgroup_ids")
if err != nil {
log.Debugf("Unmarshal.security_groups %s", err)
data.Set("secgroup_ids", jsonutils.NewArray(jsonutils.NewString(api.SECGROUP_DEFAULT_ID)))
secgroups = []string{api.SECGROUP_DEFAULT_ID}
}
@@ -19,7 +19,6 @@ import (
"fmt"
"yunion.io/x/jsonutils"
"yunion.io/x/pkg/errors"
api "yunion.io/x/onecloud/pkg/apis/compute"
"yunion.io/x/onecloud/pkg/cloudcommon/db"
@@ -59,13 +58,15 @@ func (self *ElasticcacheCreateTask) OnInit(ctx context.Context, obj db.IStandalo
secgroups := []string{}
err := self.GetParams().Unmarshal(&secgroups, "secgroup_ids")
if err != nil {
self.taskFail(ctx, elasticcache, jsonutils.Marshal(errors.Wrap(err, "Unmarshal.secgroup_ids")))
notes := fmt.Sprintf("Unmarshal.secgroup_ids %s", err)
self.taskFail(ctx, elasticcache, jsonutils.NewString(notes))
return
}
secgroupInput := api.ElasticcacheSecgroupsInput{SecgroupIds: secgroups}
_, err = elasticcache.ProcessElasticcacheSecgroupsInput(ctx, self.UserCred, "set", &secgroupInput)
if err != nil {
self.taskFail(ctx, elasticcache, jsonutils.Marshal(errors.Wrap(err, "ProcessElasticcacheSecgroupsInput")))
notes := fmt.Sprintf("ProcessElasticcacheSecgroupsInput %s", err)
self.taskFail(ctx, elasticcache, jsonutils.NewString(notes))
return
}
@@ -488,7 +488,7 @@ func (self *SRegion) CreateIElasticcaches(ec *cloudprovider.SCloudElasticCacheIn
bssParam := jsonutils.NewDict()
bssParam.Set("charging_mode", jsonutils.NewString("prePaid"))
bssParam.Set("is_auto_pay", jsonutils.NewString("true"))
bssParam.Set("is_auto_renew", jsonutils.NewString("false"))
bssParam.Set("is_auto_renew", jsonutils.NewString(fmt.Sprintf("%v", ec.BC.AutoRenew)))
if ec.BC.GetMonths() >= 1 && ec.BC.GetMonths() >= 9 {
bssParam.Set("period_type", jsonutils.NewString("month"))
bssParam.Set("period_num", jsonutils.NewInt(int64(ec.BC.GetMonths())))