Skip to content

Commit a060e9c

Browse files
authored
Merge pull request #1631 from tencentcloudstack/feat/cfs_support_month
cfs support day_of_month
2 parents bb9e534 + 599d371 commit a060e9c

File tree

10 files changed

+213
-23
lines changed

10 files changed

+213
-23
lines changed

.changelog/1631.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:new-resource
2+
resource/tencentcloud_cfs_auto_snapshot_policy: support set day_of_month and interval_days
3+
```

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ require (
3232
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.591
3333
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.576
3434
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.539
35-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.581
35+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.627
3636
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/chdfs v1.0.600
3737
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.403
3838
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.599
3939
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544
4040
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.412
41-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.625
41+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.627
4242
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624
4343
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.589
4444
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.572

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -476,6 +476,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.539 h1:0L6nZhT
476476
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.539/go.mod h1:6Syk7W5fdDf0BLvX+RXL5obQ6unkt3Id4aN2QqVrV6U=
477477
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.581 h1:Ei818gJRB9wd1sGux9x9Hi3l9XwfYbPBhri6T3aYorc=
478478
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.581/go.mod h1:T7/YP64GYsB74saN6wG9IOQ1/XZFWX2MKEM9tphORYk=
479+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.627 h1:nChNdoCUWQZciiJj3gRCWoHBO/8LituLQOdCRREIrS4=
480+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.627/go.mod h1:lr3IyWgJk4rLWr0vVd8J1Tfs5O+wNcwSZ9ciMhGUrlI=
479481
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/chdfs v1.0.600 h1:qSpp4rEgAzfXhi1rPxes+AJp2mwnsyRGPY/Km1FuYGs=
480482
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/chdfs v1.0.600/go.mod h1:xud1dQ7Rc23yC5kS00TYRrvZ/A+94EOkwquaI6xGVac=
481483
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.403 h1:rD9H4dQkULnRpq1BiD2KuDKsd9VEKHun2gMT+V6DNOE=
@@ -530,6 +532,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.616/go.mod
530532
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.624/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
531533
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.625 h1:cqU4m8KEkc7HtLxk/rgUAzRTKngsjlD2FnngqgPqZzY=
532534
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.625/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
535+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.627 h1:6IYzbYpwLzKatxFIpwWRli11VXfDXkYFZzMJzrG8FYU=
536+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.627/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
533537
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
534538
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624/go.mod h1:+TXSVyeKwt1IhZRqKPbTREteBcP+K07Q846/ilNzLWA=
535539
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.589 h1:LZihgirMH0vsaGScYexxwY0fTss9vHaSZs/YOQUVESg=

tencentcloud/resource_tc_cfs_auto_snapshot_policy.go

Lines changed: 73 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ Provides a resource to create a cfs auto_snapshot_policy
33
44
Example Usage
55
6+
use day of week
7+
68
```hcl
79
resource "tencentcloud_cfs_auto_snapshot_policy" "auto_snapshot_policy" {
810
day_of_week = "1,2"
@@ -12,6 +14,29 @@ resource "tencentcloud_cfs_auto_snapshot_policy" "auto_snapshot_policy" {
1214
}
1315
```
1416
17+
use day of month
18+
19+
```hcl
20+
resource "tencentcloud_cfs_auto_snapshot_policy" "auto_snapshot_policy" {
21+
hour = "2,3"
22+
policy_name = "policy_name"
23+
alive_days = 7
24+
day_of_month = "2,3,4"
25+
}
26+
```
27+
28+
use interval days
29+
30+
```hcl
31+
resource "tencentcloud_cfs_auto_snapshot_policy" "auto_snapshot_policy" {
32+
hour = "2,3"
33+
policy_name = "policy_name"
34+
alive_days = 7
35+
interval_days = 1
36+
}
37+
```
38+
39+
1540
Import
1641
1742
cfs auto_snapshot_policy can be imported using the id, e.g.
@@ -43,12 +68,6 @@ func resourceTencentCloudCfsAutoSnapshotPolicy() *schema.Resource {
4368
State: schema.ImportStatePassthrough,
4469
},
4570
Schema: map[string]*schema.Schema{
46-
"day_of_week": {
47-
Required: true,
48-
Type: schema.TypeString,
49-
Description: "The day of the week on which to repeat the snapshot operation.",
50-
},
51-
5271
"hour": {
5372
Required: true,
5473
Type: schema.TypeString,
@@ -61,11 +80,29 @@ func resourceTencentCloudCfsAutoSnapshotPolicy() *schema.Resource {
6180
Description: "Policy name.",
6281
},
6382

83+
"day_of_week": {
84+
Optional: true,
85+
Type: schema.TypeString,
86+
Description: "The day of the week on which to repeat the snapshot operation.",
87+
},
88+
6489
"alive_days": {
6590
Optional: true,
6691
Type: schema.TypeInt,
6792
Description: "Snapshot retention period.",
6893
},
94+
95+
"day_of_month": {
96+
Optional: true,
97+
Type: schema.TypeString,
98+
Description: "The specific day (day 1 to day 31) of the month on which to create a snapshot.",
99+
},
100+
101+
"interval_days": {
102+
Optional: true,
103+
Type: schema.TypeInt,
104+
Description: "The snapshot interval, in days.",
105+
},
69106
},
70107
}
71108
}
@@ -93,10 +130,18 @@ func resourceTencentCloudCfsAutoSnapshotPolicyCreate(d *schema.ResourceData, met
93130
request.PolicyName = helper.String(v.(string))
94131
}
95132

96-
if v, _ := d.GetOk("alive_days"); v != nil {
133+
if v, ok := d.GetOkExists("alive_days"); ok {
97134
request.AliveDays = helper.IntUint64(v.(int))
98135
}
99136

137+
if v, ok := d.GetOk("day_of_month"); ok {
138+
request.DayOfMonth = helper.String(v.(string))
139+
}
140+
141+
if v, ok := d.GetOkExists("interval_days"); ok {
142+
request.IntervalDays = helper.IntUint64(v.(int))
143+
}
144+
100145
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
101146
result, e := meta.(*TencentCloudClient).apiV3Conn.UseCfsClient().CreateAutoSnapshotPolicy(request)
102147
if e != nil {
@@ -156,6 +201,14 @@ func resourceTencentCloudCfsAutoSnapshotPolicyRead(d *schema.ResourceData, meta
156201
_ = d.Set("alive_days", autoSnapshotPolicy.AliveDays)
157202
}
158203

204+
if autoSnapshotPolicy.DayOfMonth != nil {
205+
_ = d.Set("day_of_month", autoSnapshotPolicy.DayOfMonth)
206+
}
207+
208+
if autoSnapshotPolicy.IntervalDays != nil {
209+
_ = d.Set("interval_days", autoSnapshotPolicy.IntervalDays)
210+
}
211+
159212
return nil
160213
}
161214

@@ -189,11 +242,23 @@ func resourceTencentCloudCfsAutoSnapshotPolicyUpdate(d *schema.ResourceData, met
189242
}
190243

191244
if d.HasChange("alive_days") {
192-
if v, _ := d.GetOk("alive_days"); v != nil {
245+
if v, ok := d.GetOkExists("alive_days"); ok {
193246
request.AliveDays = helper.IntUint64(v.(int))
194247
}
195248
}
196249

250+
if d.HasChange("day_of_month") {
251+
if v, ok := d.GetOk("day_of_month"); ok {
252+
request.DayOfMonth = helper.String(v.(string))
253+
}
254+
}
255+
256+
if d.HasChange("interval_days") {
257+
if v, ok := d.GetOkExists("interval_days"); ok {
258+
request.IntervalDays = helper.IntUint64(v.(int))
259+
}
260+
}
261+
197262
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
198263
result, e := meta.(*TencentCloudClient).apiV3Conn.UseCfsClient().UpdateAutoSnapshotPolicy(request)
199264
if e != nil {

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs/v20190719/client.go

Lines changed: 24 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs/v20190719/errors.go

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)