Skip to content

Commit 5b4fee6

Browse files
authored
vpngw support change renewflag (#1314)
* vpngw support change renewflag * vpngw rebase
1 parent 709b1c1 commit 5b4fee6

File tree

9 files changed

+747
-149
lines changed

9 files changed

+747
-149
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ require (
3434
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.445
3535
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.199
3636
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.412
37-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.514
37+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.515
3838
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.445
3939
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.488
4040
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dayu v1.0.335
@@ -64,7 +64,7 @@ require (
6464
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.500
6565
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.489
6666
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199
67-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.479
67+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.515
6868
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199
6969
github.com/tencentyun/cos-go-sdk-v5 v0.7.38
7070
github.com/yangwenmai/ratelimit v0.0.0-20180104140304-44221c2292e1

go.sum

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -495,10 +495,9 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.500 h1:xuc9
495495
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.500/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
496496
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.503 h1:XV1MdaHDMqpGz74EvbkOWr+xlslC7yQHc+9DXmkTXZs=
497497
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.503/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
498-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.512 h1:1BfCqQApL2VpBSanzyrQ1a47XaARS8dLrerBc2FP8MQ=
499-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.512/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
500-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.514 h1:CgYPKvnfjxs3dQPcM/nUqIk+ZIZAV6+hBvEpsPP7OSk=
501498
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.514/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
499+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.515 h1:00k2TZVyhjggGSiAOezadymUA3ImlOq5xz8NrZJCDWs=
500+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.515/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
502501
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.445 h1:Bh7XD0ypNMHYyBOM8hhKsSu+y0VVKUnJVS+YKKhfpGg=
503502
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.445/go.mod h1:jMDD351efCFpT1+KVFbcpu6SbmP4TYmp4qkoCfr63nQ=
504503
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.488 h1:A1seXWtMf2atBjSNYvcwxyDoFzCMgqyVnsxnWzhqJEA=
@@ -570,6 +569,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199 h1:6Yt74l4
570569
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199/go.mod h1:Yw6OQ33z3s4k0HVYTNSffB12qOzEJ2Zf1Vj4+5S3sRs=
571570
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.479 h1:eArkuh12SjyaHaKDNfF2oLjkY3f8SnuazgM/2dV9hcA=
572571
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.479/go.mod h1:U+ZEKIS6qZu8unIM3K5qWBaK7bO4ydXgzmdNeRBjQQw=
572+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.515 h1:OWA3zSqC+tY42DwnlzAZVNYkB5dWgcwk435n+84jXNM=
573+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.515/go.mod h1:LGZP3nY3duqIACvT7Xi+wjWKpJvibZh71JgZX39nUNI=
573574
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199 h1:hMBLtiJPnZ9GvA677cTB6ELBR6B68wCR2QY1sNoGQc4=
574575
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199/go.mod h1:nnY91/H3j/Gu7V/oCA6Zeg8T5D3q36EUdBh4EjmHwqY=
575576
github.com/tencentyun/cos-go-sdk-v5 v0.7.38 h1:EsMD39fDk5GRD8ouOcHG5MAb0CIT0ndDm6kZgSAYuBg=

tencentcloud/resource_tc_vpn_gateway.go

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ func resourceTencentCloudVpnGateway() *schema.Resource {
113113
Type: schema.TypeString,
114114
Optional: true,
115115
Default: VPN_PERIOD_PREPAID_RENEW_FLAG_AUTO_NOTIFY,
116-
Description: "Flag indicates whether to renew or not. Valid value: `NOTIFY_AND_RENEW`, `NOTIFY_AND_AUTO_RENEW`, `NOT_NOTIFY_AND_NOT_RENEW`. This para can only be set to take effect in create operation.",
116+
Description: "Flag indicates whether to renew or not. Valid value: `NOTIFY_AND_AUTO_RENEW`, `NOTIFY_AND_MANUAL_RENEW`.",
117117
},
118118
"prepaid_period": {
119119
Type: schema.TypeInt,
@@ -352,7 +352,6 @@ func resourceTencentCloudVpnGatewayUpdate(d *schema.ResourceData, meta interface
352352

353353
unsupportedUpdateFields := []string{
354354
"prepaid_period",
355-
"prepaid_renew_flag",
356355
"type",
357356
}
358357
for _, field := range unsupportedUpdateFields {
@@ -361,6 +360,35 @@ func resourceTencentCloudVpnGatewayUpdate(d *schema.ResourceData, meta interface
361360
}
362361
}
363362

363+
if d.HasChange("prepaid_renew_flag") {
364+
chargeType := d.Get("charge_type").(string)
365+
renewFlag := d.Get("prepaid_renew_flag").(string)
366+
if chargeType != VPN_CHARGE_TYPE_PREPAID {
367+
return fmt.Errorf("Invalid renew flag change. Only support pre-paid vpn.")
368+
}
369+
request := vpc.NewSetVpnGatewaysRenewFlagRequest()
370+
request.VpnGatewayIds = []*string{&gatewayId}
371+
if renewFlag == "NOTIFY_AND_AUTO_RENEW" {
372+
request.AutoRenewFlag = helper.IntInt64(1)
373+
} else {
374+
request.AutoRenewFlag = helper.IntInt64(0)
375+
}
376+
377+
err := resource.Retry(readRetryTimeout, func() *resource.RetryError {
378+
_, e := meta.(*TencentCloudClient).apiV3Conn.UseVpcClient().SetVpnGatewaysRenewFlag(request)
379+
if e != nil {
380+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
381+
logId, request.GetAction(), request.ToJsonString(), e.Error())
382+
return retryError(e)
383+
}
384+
return nil
385+
})
386+
if err != nil {
387+
log.Printf("[CRITAL]%s modify VPN gateway renewflag failed, reason:%s\n", logId, err.Error())
388+
return err
389+
}
390+
}
391+
364392
if d.HasChange("name") || d.HasChange("charge_type") {
365393
//check that the charge type change is valid
366394
//only pre-paid --> post-paid is valid

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)