From 3a449855579f1308fca226c4f3f271b8d38680d7 Mon Sep 17 00:00:00 2001 From: TangBin Date: Mon, 9 Nov 2020 19:31:03 +0800 Subject: [PATCH] redis prepaid create autorenew bugfix --- pkg/apis/compute/elasticcache.go | 4 ++++ pkg/compute/models/elasticcache_instances.go | 3 +++ pkg/multicloud/huawei/elasticcache_instance.go | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/apis/compute/elasticcache.go b/pkg/apis/compute/elasticcache.go index f40ea541f0..bddf7ab1a8 100644 --- a/pkg/apis/compute/elasticcache.go +++ b/pkg/apis/compute/elasticcache.go @@ -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"` diff --git a/pkg/compute/models/elasticcache_instances.go b/pkg/compute/models/elasticcache_instances.go index c978cd3084..a7688eb6a4 100644 --- a/pkg/compute/models/elasticcache_instances.go +++ b/pkg/compute/models/elasticcache_instances.go @@ -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" diff --git a/pkg/multicloud/huawei/elasticcache_instance.go b/pkg/multicloud/huawei/elasticcache_instance.go index 4987ad39a5..4565255c40 100644 --- a/pkg/multicloud/huawei/elasticcache_instance.go +++ b/pkg/multicloud/huawei/elasticcache_instance.go @@ -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())))