Skip to content

Commit d30b00a

Browse files
committed
feat(postgresql): [120953562]support pgsql time window
1 parent 1d9b151 commit d30b00a

15 files changed

+666
-7
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ require (
4646
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1034
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033
4848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1046
49-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1073
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1078
5050
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1053
5151
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
5252
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.1058
@@ -70,7 +70,7 @@ require (
7070
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.1066
7171
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.853
7272
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.1038
73-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1010
73+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1078
7474
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.1038
7575
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.762
7676
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.1008

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -953,6 +953,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1072 h1:zoo
953953
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1072/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
954954
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1073 h1:AWEtNWRQwIh9xJVarhhTB3h1CglBV5a0pMI9pvQvZ60=
955955
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1073/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
956+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1078 h1:6dDx6ePLVKl39noLeqVO22A1xPoTRXcVkQ3rW9WlnXA=
957+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1078/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
956958
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=
957959
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY=
958960
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
@@ -1019,6 +1021,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.1038
10191021
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.1038/go.mod h1:ZcauOIKWXstNwe6IlD3iBBxzljEWdQjZbTc6PfwsPxQ=
10201022
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1010 h1:lx554ZfB++mge+/Gk7LnDUI5Dwm9r+DgGNN9C/DqhE4=
10211023
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1010/go.mod h1:GGhAf2ehV2/jwKf3Sezr2x/soJ3nDuefJFlcoZnlflA=
1024+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1078 h1:kTV4aJ8RcA7fv1vrxSw4wCcGJeur5ZFm+TZr/LB8kkI=
1025+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1078/go.mod h1:jssFHFM6jTndhOiW0bGKJ8J6QymvWbKKSTCfuOaZw18=
10221026
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.1038 h1:4rzyVxkDB27v73jDXPr5eGAwjN859R7SsqniCt+46XE=
10231027
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.1038/go.mod h1:TAHhxxDVV36Pe4P4Gel3dgX4kHUfQO7f27GzRf8DAro=
10241028
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.762 h1:rZDKucVVtTnmnbZFDyh6t47dHswkb2oSuOxOHTTkygA=

tencentcloud/provider.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1548,6 +1548,7 @@ func Provider() *schema.Provider {
15481548
"tencentcloud_postgresql_account_privileges_operation": postgresql.ResourceTencentCloudPostgresqlAccountPrivilegesOperation(),
15491549
"tencentcloud_postgresql_apply_parameter_template_operation": postgresql.ResourceTencentCloudPostgresqlApplyParameterTemplateOperation(),
15501550
"tencentcloud_postgresql_clone_db_instance": postgresql.ResourceTencentCloudPostgresqlCloneDbInstance(),
1551+
"tencentcloud_postgresql_time_window": postgresql.ResourceTencentCloudPostgresqlTimeWindow(),
15511552
"tencentcloud_sqlserver_instance": sqlserver.ResourceTencentCloudSqlserverInstance(),
15521553
"tencentcloud_sqlserver_db": sqlserver.ResourceTencentCloudSqlserverDB(),
15531554
"tencentcloud_sqlserver_account": sqlserver.ResourceTencentCloudSqlserverAccount(),

tencentcloud/provider.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -909,6 +909,7 @@ TencentDB for PostgreSQL(PostgreSQL)
909909
tencentcloud_postgresql_account
910910
tencentcloud_postgresql_apply_parameter_template_operation
911911
tencentcloud_postgresql_clone_db_instance
912+
tencentcloud_postgresql_time_window
912913

913914
TencentDB for Redis(crs)
914915
Data Source

tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go

Lines changed: 177 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
Provides a resource to create a postgres postgresql_time_window
2+
3+
Example Usage
4+
5+
```hcl
6+
resource "tencentcloud_postgresql_time_window" "postgresql_time_window" {
7+
db_instance_id = "postgres-45b0vlmr"
8+
maintain_duration = 2
9+
maintain_start_time = "04:00"
10+
maintain_week_days = [
11+
"friday",
12+
"monday",
13+
"saturday",
14+
"sunday",
15+
"thursday",
16+
"tuesday",
17+
"wednesday",
18+
]
19+
}
20+
```
21+
22+
Import
23+
24+
postgres postgresql_time_window can be imported using the id, e.g.
25+
26+
```
27+
terraform import tencentcloud_postgresql_time_window.postgresql_time_window instance_id
28+
```
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package postgresql
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
package postgresql_test
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
8+
)
9+
10+
func TestAccTencentCloudPostgresqlTimeWindowResource_basic(t *testing.T) {
11+
t.Parallel()
12+
resource.Test(t, resource.TestCase{
13+
PreCheck: func() {
14+
tcacctest.AccPreCheck(t)
15+
},
16+
Providers: tcacctest.AccProviders,
17+
Steps: []resource.TestStep{
18+
{
19+
Config: testAccPostgresqlTimeWindow,
20+
Check: resource.ComposeTestCheckFunc(
21+
resource.TestCheckResourceAttrSet("tencentcloud_postgresql_time_window.postgresql_time_window", "id"),
22+
resource.TestCheckResourceAttr("tencentcloud_postgresql_time_window.postgresql_time_window", "maintain_duration", "2"),
23+
resource.TestCheckResourceAttr("tencentcloud_postgresql_time_window.postgresql_time_window", "maintain_start_time", "04:00"),
24+
resource.TestCheckResourceAttr("tencentcloud_postgresql_time_window.postgresql_time_window", "maintain_week_days.#", "7"),
25+
),
26+
},
27+
{
28+
ResourceName: "tencentcloud_postgresql_time_window.postgresql_time_window",
29+
ImportState: true,
30+
ImportStateVerify: true,
31+
},
32+
33+
{
34+
Config: testAccPostgresqlTimeWindowUp,
35+
Check: resource.ComposeTestCheckFunc(
36+
resource.TestCheckResourceAttrSet("tencentcloud_postgresql_time_window.postgresql_time_window", "id"),
37+
resource.TestCheckResourceAttr("tencentcloud_postgresql_time_window.postgresql_time_window", "maintain_duration", "3"),
38+
resource.TestCheckResourceAttr("tencentcloud_postgresql_time_window.postgresql_time_window", "maintain_start_time", "05:00"),
39+
resource.TestCheckResourceAttr("tencentcloud_postgresql_time_window.postgresql_time_window", "maintain_week_days.#", "6"),
40+
),
41+
},
42+
},
43+
})
44+
}
45+
46+
const testAccPostgresqlTimeWindow = testAccPostgresqlInstance + `
47+
48+
resource "tencentcloud_postgresql_time_window" "postgresql_time_window" {
49+
db_instance_id = tencentcloud_postgresql_instance.test.id
50+
maintain_duration = 2
51+
maintain_start_time = "04:00"
52+
maintain_week_days = [
53+
"friday",
54+
"monday",
55+
"saturday",
56+
"sunday",
57+
"thursday",
58+
"tuesday",
59+
"wednesday",
60+
]
61+
}
62+
`
63+
64+
const testAccPostgresqlTimeWindowUp = testAccPostgresqlInstance + `
65+
66+
resource "tencentcloud_postgresql_time_window" "postgresql_time_window" {
67+
db_instance_id = tencentcloud_postgresql_instance.test.id
68+
maintain_duration = 3
69+
maintain_start_time = "05:00"
70+
maintain_week_days = [
71+
"friday",
72+
"monday",
73+
"saturday",
74+
"sunday",
75+
"thursday",
76+
"tuesday",
77+
]
78+
}
79+
`

tencentcloud/services/postgresql/service_tencentcloud_postgresql.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
1414
sdkErrors "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
1515
postgresql "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312"
16+
postgresv20170312 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312"
1617

1718
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/connectivity"
1819
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
@@ -2186,3 +2187,33 @@ func (me *PostgresqlService) DescribePostgresqlDedicatedClustersByFilter(ctx con
21862187
ret = response.Response.DedicatedClusterSet
21872188
return
21882189
}
2190+
2191+
func (me *PostgresqlService) DescribePostgresqlTimeWindowById(ctx context.Context, dBInstanceId string) (ret *postgresv20170312.DescribeMaintainTimeWindowResponseParams, errRet error) {
2192+
logId := tccommon.GetLogId(ctx)
2193+
2194+
request := postgresv20170312.NewDescribeMaintainTimeWindowRequest()
2195+
response := postgresv20170312.NewDescribeMaintainTimeWindowResponse()
2196+
request.DBInstanceId = helper.String(dBInstanceId)
2197+
2198+
defer func() {
2199+
if errRet != nil {
2200+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error())
2201+
}
2202+
}()
2203+
2204+
ratelimit.Check(request.GetAction())
2205+
2206+
errRet = resource.Retry(3*tccommon.WriteRetryTimeout, func() *resource.RetryError {
2207+
result, e := me.client.UsePostgresV20170312Client().DescribeMaintainTimeWindow(request)
2208+
if e != nil {
2209+
return tccommon.RetryError(e)
2210+
} else {
2211+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
2212+
}
2213+
response = result
2214+
return nil
2215+
})
2216+
2217+
ret = response.Response
2218+
return
2219+
}

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)