Skip to content

Commit 53bccde

Browse files
authored
feat(postgresql): [117095855]support cpu for pg (#2605)
* pg support set cpu * pg support set cpu * pg support set cpu * modify macos * fix error * recovery golangci
1 parent 5c39960 commit 53bccde

16 files changed

+1766
-1559
lines changed

.changelog/2605.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_postgresql_instance: Support field `cpu`
3+
```
4+
```release-note:enhancement
5+
resource/tencentcloud_postgresql_readonly_instance: Support field `cpu`
6+
```

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ require (
7070
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.844
7171
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.853
7272
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.856
73-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.814
73+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.873
7474
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.859
7575
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.762
7676
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.657

go.sum

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -744,8 +744,6 @@ github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAm
744744
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
745745
github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
746746
github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
747-
github.com/sesky4/tencentcloud-sdk-go/tencentcloud/common v1.0.336-0.20240326032455-d61711597f1c h1:yPsYLRZAfaTYX33hyaXD8zgQeXS53hdwknNIo0csY9Y=
748-
github.com/sesky4/tencentcloud-sdk-go/tencentcloud/common v1.0.336-0.20240326032455-d61711597f1c/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
749747
github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU=
750748
github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs=
751749
github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=
@@ -905,10 +903,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.797/go.mod
905903
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.798/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
906904
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.799/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
907905
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.800/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
908-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.804/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
909906
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.807/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
910907
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.811/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
911-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.814/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
912908
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.816/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
913909
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.822/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
914910
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.824/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
@@ -924,8 +920,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.853/go.mod
924920
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.856/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
925921
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.857/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
926922
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.859/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
927-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.860 h1:d5/YwGX6b5YgFU/0thsbs5aBp4aJJXBi7JyU1JHAaw0=
928923
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.860/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
924+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.873/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
929925
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.888 h1:FqVcZ+POUhckq6ZRlwOR819fsXp49YyizpmWZJYAAGg=
930926
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.888/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
931927
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
@@ -980,8 +976,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.831 h1:oya
980976
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.831/go.mod h1:2WuTlTnKCnZoa6l0JxY9GNfo0UG6nU7AEsljF8rMMsM=
981977
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.856 h1:W1FLC178fBj5HigbNkAUIBGPPTit20RVycuXQ6u2lSg=
982978
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.856/go.mod h1:Ln9igPci1mCEe4gzekGpMMn/x9im6XlDh2bqvWnUMDo=
983-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.814 h1:1XlGrQHRBJv419m64yWRNRWVUTvqBi3Go4ahndnZz9w=
984-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.814/go.mod h1:ch9ZDGEWZXIpzOffmFMgCDKX5uL6x2NLJBiSG94WWEE=
979+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.873 h1:kqNFHpILFWPbOUAUrH1i6+IfkLWWEAZLYfj9RZ0WM+0=
980+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.873/go.mod h1:Mjkr/911Pw0VopTfXt5zt46TnV3IrX01mvjZ66RsRRg=
985981
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.859 h1:VrE3qzwzWB5mV/ejTJuwZbqZ/CNYLoc8X+uFbWEEOnY=
986982
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.859/go.mod h1:FeOl14rPWpNEu6r4bPEsTNHIB9qaRTg0dRhxhRwQ5Hw=
987983
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.762 h1:rZDKucVVtTnmnbZFDyh6t47dHswkb2oSuOxOHTTkygA=
@@ -1042,7 +1038,9 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199 h1:hMBLtiJ
10421038
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199/go.mod h1:nnY91/H3j/Gu7V/oCA6Zeg8T5D3q36EUdBh4EjmHwqY=
10431039
github.com/tencentyun/cos-go-sdk-v5 v0.7.42-0.20230629101357-7edd77448a0f h1:yTMDoBvFuXjZat10d98DIKbPnN9FQG+drt1SbNfMW5U=
10441040
github.com/tencentyun/cos-go-sdk-v5 v0.7.42-0.20230629101357-7edd77448a0f/go.mod h1:LUFnaqRmGk6pEHOaRmdn2dCZR2j0cSsM5xowWFPTPao=
1041+
github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA=
10451042
github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0=
1043+
github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag=
10461044
github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY=
10471045
github.com/tetafro/godot v1.4.11 h1:BVoBIqAf/2QdbFmSwAWnaIqDivZdOV0ZRwEm6jivLKw=
10481046
github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8=
@@ -1080,6 +1078,7 @@ github.com/vmihailenco/tagparser v0.1.1 h1:quXMXlA39OCbd2wAdTsGDlK9RkOk6Wuw+x37w
10801078
github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI=
10811079
github.com/wI2L/jsondiff v0.3.0 h1:iTzQ9u/d86GE9RsBzVHX88f2EA1vQUboHwLhSQFc1s4=
10821080
github.com/wI2L/jsondiff v0.3.0/go.mod h1:y1IMzNNjlSsk3IUoJdRJO7VRBtzMvRgyo4Vu0LdHpTc=
1081+
github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI=
10831082
github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0=
10841083
github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 h1:QldyIu/L63oPpyvQmHgvgickp1Yw510KJOqX7H24mg8=
10851084
github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs=
@@ -1118,6 +1117,7 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
11181117
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
11191118
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
11201119
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
1120+
go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
11211121
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
11221122
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
11231123
go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
@@ -1361,6 +1361,7 @@ golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA=
13611361
golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
13621362
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
13631363
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
1364+
golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek=
13641365
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
13651366
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
13661367
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1568,6 +1569,7 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8
15681569
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
15691570
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
15701571
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
1572+
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
15711573
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
15721574
gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
15731575
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
@@ -1577,6 +1579,7 @@ gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
15771579
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
15781580
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
15791581
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
1582+
gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
15801583
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
15811584
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
15821585
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -1624,4 +1627,5 @@ sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK
16241627
sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4=
16251628
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
16261629
sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
1630+
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
16271631
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=

tencentcloud/services/postgresql/resource_tc_postgresql_instance.go

Lines changed: 40 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -78,17 +78,19 @@ func ResourceTencentCloudPostgresqlInstance() *schema.Resource {
7878
Description: "Version of the postgresql database engine. Valid values: `10.4`, `11.8`, `12.4`.",
7979
},
8080
"db_major_vesion": {
81-
Type: schema.TypeString,
82-
Optional: true,
83-
Computed: true,
84-
Deprecated: "`db_major_vesion` will be deprecated, use `db_major_version` instead.",
81+
Type: schema.TypeString,
82+
Optional: true,
83+
Computed: true,
84+
Deprecated: "`db_major_vesion` will be deprecated, use `db_major_version` instead.",
85+
ConflictsWith: []string{"db_major_version"},
8586
Description: "PostgreSQL major version number. Valid values: 10, 11, 12, 13. " +
8687
"If it is specified, an instance running the latest kernel of PostgreSQL DBMajorVersion will be created.",
8788
},
8889
"db_major_version": {
89-
Type: schema.TypeString,
90-
Optional: true,
91-
Computed: true,
90+
Type: schema.TypeString,
91+
Optional: true,
92+
Computed: true,
93+
ConflictsWith: []string{"db_major_vesion"},
9294
Description: "PostgreSQL major version number. Valid values: 10, 11, 12, 13. " +
9395
"If it is specified, an instance running the latest kernel of PostgreSQL DBMajorVersion will be created.",
9496
},
@@ -129,6 +131,12 @@ func ResourceTencentCloudPostgresqlInstance() *schema.Resource {
129131
Required: true,
130132
Description: "Memory size(in GB). Allowed value must be larger than `memory` that data source `tencentcloud_postgresql_specinfos` provides.",
131133
},
134+
"cpu": {
135+
Type: schema.TypeInt,
136+
Optional: true,
137+
Computed: true,
138+
Description: "Number of CPU cores. Allowed value must be equal `cpu` that data source `tencentcloud_postgresql_specinfos` provides.",
139+
},
132140
"project_id": {
133141
Type: schema.TypeInt,
134142
Optional: true,
@@ -338,7 +346,7 @@ func resourceTencentCloudPostgresqlInstanceCreate(d *schema.ResourceData, meta i
338346

339347
var instanceId, specVersion, specCode string
340348
var outErr, inErr error
341-
var allowVersion, allowMemory []string
349+
var allowVersion, allowSpec []string
342350

343351
var (
344352
dbMajorVersion = ""
@@ -350,8 +358,13 @@ func resourceTencentCloudPostgresqlInstanceCreate(d *schema.ResourceData, meta i
350358
autoRenewFlag = 0
351359
autoVoucher = 0
352360
voucherIds []*string
361+
cpu int // cpu only used for query specCode which contains cpu info
353362
)
354363

364+
if v, ok := d.GetOkExists("cpu"); ok {
365+
cpu = v.(int)
366+
}
367+
355368
if v, ok := d.GetOk("period"); ok {
356369
log.Printf("period set")
357370
period = v.(int)
@@ -403,11 +416,17 @@ func resourceTencentCloudPostgresqlInstanceCreate(d *schema.ResourceData, meta i
403416
}
404417
if *info.Version == dbVersion {
405418
specVersion = *info.Version
406-
memoryString := fmt.Sprintf("%d", int(*info.Memory)/1024)
407-
if !tccommon.IsContains(allowMemory, memoryString) {
408-
allowMemory = append(allowMemory, memoryString)
419+
specString := fmt.Sprintf("(%d, %d)", int(*info.Memory)/1024, int(*info.Cpu))
420+
if !tccommon.IsContains(allowSpec, specString) {
421+
allowSpec = append(allowSpec, specString)
409422
}
410-
if int(*info.Memory)/1024 == memory {
423+
424+
if cpu != 0 && int(*info.Cpu) == cpu && int(*info.Memory)/1024 == memory {
425+
specCode = *info.SpecCode
426+
break
427+
}
428+
429+
if cpu == 0 && int(*info.Memory)/1024 == memory {
411430
specCode = *info.SpecCode
412431
break
413432
}
@@ -424,7 +443,8 @@ func resourceTencentCloudPostgresqlInstanceCreate(d *schema.ResourceData, meta i
424443
}
425444

426445
if specCode == "" {
427-
return fmt.Errorf(`The "memory" value: %d is invalid, Valid values are one of: %s`, memory, strings.Join(allowMemory, `, `))
446+
return fmt.Errorf(`The "memory" value: %d or the "cpu" value: %d is invalid, Valid combine values are one of: %s .`,
447+
memory, cpu, strings.Join(allowSpec, `; `))
428448
}
429449

430450
var dbNodeSet []*postgresql.DBNode
@@ -837,11 +857,15 @@ func resourceTencentCloudPostgresqlInstanceUpdate(d *schema.ResourceData, meta i
837857
}
838858

839859
// upgrade storage and memory size
840-
if d.HasChange("memory") || d.HasChange("storage") {
860+
if d.HasChange("memory") || d.HasChange("storage") || d.HasChange("cpu") {
841861
memory := d.Get("memory").(int)
842862
storage := d.Get("storage").(int)
863+
var cpu int
864+
if v, ok := d.GetOkExists("cpu"); ok {
865+
cpu = v.(int)
866+
}
843867
outErr = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
844-
inErr = postgresqlService.UpgradePostgresqlInstance(ctx, instanceId, memory, storage)
868+
inErr = postgresqlService.UpgradePostgresqlInstance(ctx, instanceId, memory, storage, cpu)
845869
if inErr != nil {
846870
return tccommon.RetryError(inErr)
847871
}
@@ -1263,6 +1287,7 @@ func resourceTencentCloudPostgresqlInstanceRead(d *schema.ResourceData, meta int
12631287
_ = d.Set("create_time", instance.CreateTime)
12641288
_ = d.Set("memory", instance.DBInstanceMemory)
12651289
_ = d.Set("storage", instance.DBInstanceStorage)
1290+
_ = d.Set("cpu", instance.DBInstanceCpu)
12661291

12671292
// kms
12681293
kmsRequest := postgresql.NewDescribeEncryptionKeysRequest()

tencentcloud/services/postgresql/resource_tc_postgresql_instance.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ resource "tencentcloud_postgresql_instance" "foo" {
8484
charset = "UTF8"
8585
project_id = 0
8686
memory = 2
87+
cpu = 1
8788
storage = 10
8889
8990
db_node_set {

tencentcloud/services/postgresql/resource_tc_postgresql_instance_test.go

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,8 @@ func TestAccTencentCloudPostgresqlInstanceResource_MAZ(t *testing.T) {
322322
resource.TestCheckResourceAttrSet(testPostgresqlInstanceResourceKey, "id"),
323323
// SDK 1.0 cannot provide set test expected "db_node_set.*.role" , "Primary"
324324
resource.TestCheckResourceAttr(testPostgresqlInstanceResourceKey, "db_node_set.#", "2"),
325+
resource.TestCheckResourceAttr(testPostgresqlInstanceResourceKey, "memory", "4"),
326+
resource.TestCheckResourceAttr(testPostgresqlInstanceResourceKey, "cpu", "2"),
325327
resource.TestCheckResourceAttr(testPostgresqlInstanceResourceKey, "availability_zone", "ap-guangzhou-6"),
326328
),
327329
},
@@ -342,6 +344,8 @@ func TestAccTencentCloudPostgresqlInstanceResource_MAZ(t *testing.T) {
342344
testAccCheckPostgresqlInstanceExists(testPostgresqlInstanceResourceKey),
343345
resource.TestCheckResourceAttrSet(testPostgresqlInstanceResourceKey, "id"),
344346
resource.TestCheckResourceAttr(testPostgresqlInstanceResourceKey, "db_node_set.#", "2"),
347+
resource.TestCheckResourceAttr(testPostgresqlInstanceResourceKey, "memory", "8"),
348+
resource.TestCheckResourceAttr(testPostgresqlInstanceResourceKey, "cpu", "4"),
345349
resource.TestCheckResourceAttr(testPostgresqlInstanceResourceKey, "availability_zone", "ap-guangzhou-6"),
346350
),
347351
},
@@ -649,16 +653,17 @@ resource "tencentcloud_subnet" "subnet" {
649653
}
650654
651655
resource "tencentcloud_postgresql_instance" "test" {
652-
name = "tf_postsql_maz_instance"
656+
name = "tf_postsql_maz_instance"
653657
availability_zone = "ap-guangzhou-6"
654-
charge_type = "POSTPAID_BY_HOUR"
658+
charge_type = "POSTPAID_BY_HOUR"
655659
vpc_id = tencentcloud_vpc.vpc.id
656660
subnet_id = tencentcloud_subnet.subnet.id
657-
engine_version = "13.3"
658-
root_password = "t1qaA2k1wgvfa3?ZZZ"
659-
charset = "LATIN1"
660-
memory = 4
661-
storage = 100
661+
engine_version = "13.3"
662+
root_password = "t1qaA2k1wgvfa3?ZZZ"
663+
charset = "LATIN1"
664+
memory = 4
665+
cpu = 2
666+
storage = 100
662667
db_node_set {
663668
role = "Primary"
664669
zone = "ap-guangzhou-6"
@@ -683,16 +688,17 @@ resource "tencentcloud_subnet" "subnet" {
683688
}
684689
685690
resource "tencentcloud_postgresql_instance" "test" {
686-
name = "tf_postsql_maz_instance"
691+
name = "tf_postsql_maz_instance"
687692
availability_zone = "ap-guangzhou-6"
688-
charge_type = "POSTPAID_BY_HOUR"
693+
charge_type = "POSTPAID_BY_HOUR"
689694
vpc_id = tencentcloud_vpc.vpc.id
690695
subnet_id = tencentcloud_subnet.subnet.id
691-
engine_version = "13.3"
692-
root_password = "t1qaA2k1wgvfa3?ZZZ"
693-
charset = "LATIN1"
694-
memory = 4
695-
storage = 250
696+
engine_version = "13.3"
697+
root_password = "t1qaA2k1wgvfa3?ZZZ"
698+
charset = "LATIN1"
699+
memory = 8
700+
cpu = 4
701+
storage = 100
696702
db_node_set {
697703
role = "Primary"
698704
zone = "ap-guangzhou-6"

0 commit comments

Comments
 (0)