Skip to content

Commit 5d24836

Browse files
authored
Feat/support pg base backup feature (#1803)
* support postgresql data source * add changelog and update doc * support postgresql resource * add changelog and update doc * update doc * support postgresql base backup * add changelog and update doc * adjust base instance id after sdk version updated
1 parent 3c1a7a4 commit 5d24836

File tree

16 files changed

+971
-18
lines changed

16 files changed

+971
-18
lines changed

.changelog/1803.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+
tencentcloud_postgresql_base_backup
3+
```

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ require (
3838
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.659
3939
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544
4040
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.663
41-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.673
41+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.676
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
@@ -60,7 +60,7 @@ require (
6060
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.616
6161
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.584
6262
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.540
63-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.661
63+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.676
6464
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.290
6565
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.533
6666
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.657

go.sum

Lines changed: 437 additions & 1 deletion
Large diffs are not rendered by default.

tencentcloud/data_source_tc_postgresql_base_backups.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ func dataSourceTencentCloudPostgresqlBaseBackups() *schema.Resource {
5353
"filters": {
5454
Optional: true,
5555
Type: schema.TypeList,
56-
Description: "Filter instances using one or more criteria. Valid filter names:db-instance-id: Filter by instance ID (in string format).db-instance-name: Filter by instance name (in string format).db-instance-ip: Filter by instance VPC IP (in string format).",
56+
Description: "Filter instances using one or more criteria. Valid filter names: `db-instance-id`: Filter by instance ID (in string format). `db-instance-name`: Filter by instance name (in string format). `db-instance-ip`: Filter by instance VPC IP (in string format). `base-backup-id`: Filter by base backup ID (in string format).",
5757
Elem: &schema.Resource{
5858
Schema: map[string]*schema.Schema{
5959
"name": {

tencentcloud/data_source_tc_postgresql_base_backups_test.go

Lines changed: 63 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ func TestAccTencentCloudPostgresqlBaseBackupsDataSource_basic(t *testing.T) {
2323
Steps: []resource.TestStep{
2424
{
2525
Config: fmt.Sprintf(testAccPostgresqlBaseBackupsDataSource_bytime, startTime, endTime),
26+
PreConfig: func() {
27+
testAccStepSetRegion(t, "ap-chengdu")
28+
testAccPreCheckCommon(t, ACCOUNT_TYPE_COMMON)
29+
},
2630
Check: resource.ComposeTestCheckFunc(
2731
testAccCheckTencentCloudDataSourceID(testAccPostgresqlBaseBackupsObject),
2832
resource.TestCheckResourceAttr(testAccPostgresqlBaseBackupsObject, "min_finish_time", startTime),
@@ -43,7 +47,11 @@ func TestAccTencentCloudPostgresqlBaseBackupsDataSource_basic(t *testing.T) {
4347
),
4448
},
4549
{
46-
Config: testAccPostgresqlBaseBackupsDataSource_byfilters,
50+
Config: testAccPostgresqlBaseBackupsDataSource_byMasterId,
51+
PreConfig: func() {
52+
testAccStepSetRegion(t, "ap-chengdu")
53+
testAccPreCheckCommon(t, ACCOUNT_TYPE_COMMON)
54+
},
4755
Check: resource.ComposeTestCheckFunc(
4856
testAccCheckTencentCloudDataSourceID(testAccPostgresqlBaseBackupsObject),
4957
resource.TestCheckResourceAttr(testAccPostgresqlBaseBackupsObject, "filters.0.name", "db-instance-id"),
@@ -63,35 +71,83 @@ func TestAccTencentCloudPostgresqlBaseBackupsDataSource_basic(t *testing.T) {
6371
resource.TestCheckResourceAttrSet(testAccPostgresqlBaseBackupsObject, "base_backup_set.0.expire_time"),
6472
),
6573
},
74+
{
75+
Config: testAccPostgresqlBaseBackupsDataSource_byBackupId,
76+
PreConfig: func() {
77+
testAccStepSetRegion(t, "ap-chengdu")
78+
testAccPreCheckCommon(t, ACCOUNT_TYPE_COMMON)
79+
},
80+
Check: resource.ComposeTestCheckFunc(
81+
testAccCheckTencentCloudDataSourceID(testAccPostgresqlBaseBackupsObject),
82+
resource.TestCheckResourceAttr(testAccPostgresqlBaseBackupsObject, "filters.0.name", "base-backup-id"),
83+
resource.TestCheckResourceAttrSet(testAccPostgresqlBaseBackupsObject, "filters.0.values.#"),
84+
resource.TestCheckResourceAttr(testAccPostgresqlBaseBackupsObject, "order_by", "Size"),
85+
resource.TestCheckResourceAttr(testAccPostgresqlBaseBackupsObject, "order_by_type", "asc"),
86+
resource.TestCheckResourceAttrSet(testAccPostgresqlBaseBackupsObject, "base_backup_set.#"),
87+
resource.TestCheckResourceAttrSet(testAccPostgresqlBaseBackupsObject, "base_backup_set.0.db_instance_id"),
88+
resource.TestCheckResourceAttrSet(testAccPostgresqlBaseBackupsObject, "base_backup_set.0.id"),
89+
resource.TestCheckResourceAttrSet(testAccPostgresqlBaseBackupsObject, "base_backup_set.0.name"),
90+
resource.TestCheckResourceAttrSet(testAccPostgresqlBaseBackupsObject, "base_backup_set.0.backup_method"),
91+
resource.TestCheckResourceAttrSet(testAccPostgresqlBaseBackupsObject, "base_backup_set.0.backup_mode"),
92+
resource.TestCheckResourceAttrSet(testAccPostgresqlBaseBackupsObject, "base_backup_set.0.state"),
93+
resource.TestCheckResourceAttrSet(testAccPostgresqlBaseBackupsObject, "base_backup_set.0.size"),
94+
resource.TestCheckResourceAttrSet(testAccPostgresqlBaseBackupsObject, "base_backup_set.0.start_time"),
95+
resource.TestCheckResourceAttrSet(testAccPostgresqlBaseBackupsObject, "base_backup_set.0.finish_time"),
96+
resource.TestCheckResourceAttrSet(testAccPostgresqlBaseBackupsObject, "base_backup_set.0.expire_time"),
97+
),
98+
},
6699
},
67100
})
68101
}
69102

70-
const testAccPostgresqlBaseBackupsDataSource_bytime = `
103+
const testAccPostgresqlBaseBackupsDataSource_bytime = testAccPostgresqlInstance_common + `
71104
72105
data "tencentcloud_postgresql_base_backups" "base_backups" {
73106
min_finish_time = "%s"
74107
max_finish_time = "%s"
75108
76109
order_by = "StartTime"
77110
order_by_type = "asc"
111+
}
78112
113+
`
114+
115+
const testAccPostgresqlBaseBackupsDataSource_byMasterId = testAccPostgresqlInstance_common + `
116+
data "tencentcloud_postgresql_base_backups" "base_backups" {
117+
filters {
118+
name = "db-instance-id"
119+
values = [local.pgsql_id]
120+
}
121+
122+
order_by = "Size"
123+
order_by_type = "asc"
79124
}
80125
126+
81127
`
82128

83-
const testAccPostgresqlBaseBackupsDataSource_byfilters = CommonPresetPGSQL + `
129+
const testAccPostgresqlBaseBackupsDataSource_byBackupId = testAccPostgresqlInstance_common + `
130+
data "tencentcloud_postgresql_base_backups" "query_master" {
131+
filters {
132+
name = "db-instance-id"
133+
values = [local.pgsql_id]
134+
}
135+
136+
order_by = "Size"
137+
order_by_type = "asc"
138+
139+
}
84140
85141
data "tencentcloud_postgresql_base_backups" "base_backups" {
86142
filters {
87-
name = "db-instance-id"
88-
values = [local.pgsql_id]
89-
143+
name = "base-backup-id"
144+
values = [data.tencentcloud_postgresql_base_backups.query_master.base_backup_set.0.id]
90145
}
91146
92-
order_by = "Size"
147+
order_by = "Size"
93148
order_by_type = "asc"
94149
95150
}
96151
152+
97153
`

tencentcloud/provider.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -658,6 +658,7 @@ TencentDB for PostgreSQL(PostgreSQL)
658658
tencentcloud_postgresql_delete_log_backup_operation
659659
tencentcloud_postgresql_modify_account_remark_operation
660660
tencentcloud_postgresql_modify_switch_time_period_operation
661+
tencentcloud_postgresql_base_backup
661662
662663
TencentDB for Redis(crs)
663664
Data Source
@@ -2306,6 +2307,7 @@ func Provider() *schema.Provider {
23062307
"tencentcloud_postgresql_readonly_group": resourceTencentCloudPostgresqlReadonlyGroup(),
23072308
"tencentcloud_postgresql_readonly_attachment": resourceTencentCloudPostgresqlReadonlyAttachment(),
23082309
"tencentcloud_postgresql_parameter_template": resourceTencentCloudPostgresqlParameterTemplate(),
2310+
"tencentcloud_postgresql_base_backup": resourceTencentCloudPostgresqlBaseBackup(),
23092311
"tencentcloud_postgresql_backup_plan_config": resourceTencentCloudPostgresqlBackupPlanConfig(),
23102312
"tencentcloud_postgresql_security_group_config": resourceTencentCloudPostgresqlSecurityGroupConfig(),
23112313
"tencentcloud_postgresql_backup_download_restriction_config": resourceTencentCloudPostgresqlBackupDownloadRestrictionConfig(),

0 commit comments

Comments
 (0)