Skip to content

Commit de94df1

Browse files
authored
feat/oceanus (#2224)
* feat/oceanus * feat/oceanus * feat/oceanus * feat/oceanus * feat/oceanus * feat/oceanus * feat/oceanus * feat/oceanus * feat/oceanus * feat/oceanus * feat/oceanus * feat/oceanus * feat/oceanus
1 parent dd37fa5 commit de94df1

File tree

65 files changed

+16353
-15
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+16353
-15
lines changed

.changelog/2224.txt

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
```release-note:new-data-source
2+
tencentcloud_oceanus_resource_related_job
3+
```
4+
5+
```release-note:new-data-source
6+
tencentcloud_oceanus_savepoint_list
7+
```
8+
9+
```release-note:new-data-source
10+
tencentcloud_oceanus_system_resource
11+
```
12+
13+
```release-note:new-data-source
14+
tencentcloud_oceanus_work_spaces
15+
```
16+
17+
```release-note:new-data-source
18+
tencentcloud_oceanus_clusters
19+
```
20+
21+
```release-note:new-data-source
22+
tencentcloud_oceanus_tree_jobs
23+
```
24+
25+
```release-note:new-data-source
26+
tencentcloud_oceanus_tree_resources
27+
```
28+
29+
```release-note:new-data-source
30+
tencentcloud_oceanus_job_submission_log
31+
```
32+
33+
```release-note:new-data-source
34+
tencentcloud_oceanus_check_savepoint
35+
```
36+
37+
```release-note:new-resource
38+
tencentcloud_oceanus_job
39+
```
40+
41+
```release-note:new-resource
42+
tencentcloud_oceanus_job_config
43+
```
44+
45+
```release-note:new-resource
46+
tencentcloud_oceanus_job_copy
47+
```
48+
49+
```release-note:new-resource
50+
tencentcloud_oceanus_run_job
51+
```
52+
53+
```release-note:new-resource
54+
tencentcloud_oceanus_stop_job
55+
```
56+
57+
```release-note:new-resource
58+
tencentcloud_oceanus_trigger_job_savepoint
59+
```
60+
61+
```release-note:new-resource
62+
tencentcloud_oceanus_resource
63+
```
64+
65+
```release-note:new-resource
66+
tencentcloud_oceanus_resource_config
67+
```
68+
69+
```release-note:new-resource
70+
tencentcloud_oceanus_work_space
71+
```

go.mod

Lines changed: 3 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.693
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544
4848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.711
49-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.772
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.775
5050
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624
5151
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
5252
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.692
@@ -97,7 +97,7 @@ require (
9797
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tsf v1.0.674
9898
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199
9999
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.755
100-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.770
100+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.771
101101
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.725
102102
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199
103103
github.com/tencentyun/cos-go-sdk-v5 v0.7.42-0.20230629101357-7edd77448a0f
@@ -108,6 +108,7 @@ require (
108108
require (
109109
github.com/hashicorp/go-uuid v1.0.3
110110
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwpg v1.0.772
111+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.775
111112
)
112113

113114
require (

go.sum

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -868,8 +868,10 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.764/go.mod
868868
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.765/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
869869
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.768/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
870870
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.770/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
871-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.772 h1:zwJinPIIMaBUJB9Sr5eeMcNaEQBcMzsjev4S14RhA10=
871+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.771/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
872872
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.772/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
873+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.775 h1:+Ju3OkY1c3B5U0JFjq9EIEiqn9P+OicoyehXY7qDgek=
874+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.775/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
873875
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
874876
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624/go.mod h1:+TXSVyeKwt1IhZRqKPbTREteBcP+K07Q846/ilNzLWA=
875877
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762 h1:2egy69SP/wPsmnfozcQVZ6tUY6F6N/TpEe/7xtXrc/8=
@@ -914,6 +916,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.764 h1:Od3
914916
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.764/go.mod h1:K+Jg+65mur5Wq4qFzLcmDfMZdIk95qgarQV+BtarJp4=
915917
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.758 h1:lsuwM6CNu1aKpHOmsA7dizDxd4gCOBNvT25+yQNPGx8=
916918
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.758/go.mod h1:OklPo0yw4wKOYDAtXgmtUJCzGdvYooaqKchviSg84Ro=
919+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.775 h1:VIZop5bJScxARZjqQj/01zs2TA1nGX1klgkqmjvf+5s=
920+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.775/go.mod h1:xBt3wq6VMlfNXvegSCGmPySjfEShqiv56j3LrWyhmGs=
917921
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.770 h1:Ksu947uY/fafnlILemfMuyKqL/RxHh9dfVowWX8paeQ=
918922
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.770/go.mod h1:Ew8jug2Kq03q9Kkjzov7IMYgugGLEw3FGYPofuRqzKw=
919923
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.676 h1:KDt87M2b8j/Xo/9o+kaVtJ46fOtPctCpMDa1CJpSlkY=
@@ -970,17 +974,15 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199 h1:6Yt74l4
970974
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199/go.mod h1:Yw6OQ33z3s4k0HVYTNSffB12qOzEJ2Zf1Vj4+5S3sRs=
971975
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.755 h1:3u79chvseChtkc4m3zNVOteMcggXuyOYzDorpDmz0ao=
972976
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.755/go.mod h1:sOWUQj3GQHdkTqZc1b+mAFqWmhUv2Pg4EZoOjqDprzY=
973-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.770 h1:6CrSnLhg6rEO+4nmwD7fVixn5zzB4IeCO2TuzYyrkEU=
974-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.770/go.mod h1:XT2vvXZwjKyxaS2ahRs+Pxss5IbjKnqbqd/NE5B2XHw=
977+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.771 h1:y047JWTfU9KUy2H5SDqQfizq1+n7rJlYCBEMCZJEy5M=
978+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.771/go.mod h1:ahzakUD9//SLiEPseHAS9hZhth6lqSYHfc2w2rmQ/sM=
975979
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.725 h1:ETqP+erlPnDK1zafCmyDYNkZLcY+dAG3143Ihk5vFHk=
976980
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.725/go.mod h1:YPB08jHrJ3GJJ09ZTEBLnMvI+lqQEtu17jJjyfq8+sU=
977981
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199 h1:hMBLtiJPnZ9GvA677cTB6ELBR6B68wCR2QY1sNoGQc4=
978982
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199/go.mod h1:nnY91/H3j/Gu7V/oCA6Zeg8T5D3q36EUdBh4EjmHwqY=
979983
github.com/tencentyun/cos-go-sdk-v5 v0.7.42-0.20230629101357-7edd77448a0f h1:yTMDoBvFuXjZat10d98DIKbPnN9FQG+drt1SbNfMW5U=
980984
github.com/tencentyun/cos-go-sdk-v5 v0.7.42-0.20230629101357-7edd77448a0f/go.mod h1:LUFnaqRmGk6pEHOaRmdn2dCZR2j0cSsM5xowWFPTPao=
981-
github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA=
982985
github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0=
983-
github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag=
984986
github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY=
985987
github.com/tetafro/godot v1.4.11 h1:BVoBIqAf/2QdbFmSwAWnaIqDivZdOV0ZRwEm6jivLKw=
986988
github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8=
@@ -1009,7 +1011,6 @@ github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvC
10091011
github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4=
10101012
github.com/vmihailenco/tagparser v0.1.1 h1:quXMXlA39OCbd2wAdTsGDlK9RkOk6Wuw+x37wVyIuWY=
10111013
github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI=
1012-
github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI=
10131014
github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0=
10141015
github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 h1:QldyIu/L63oPpyvQmHgvgickp1Yw510KJOqX7H24mg8=
10151016
github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs=
@@ -1048,7 +1049,6 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
10481049
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
10491050
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
10501051
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
1051-
go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
10521052
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
10531053
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
10541054
go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
@@ -1280,7 +1280,6 @@ golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
12801280
golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA=
12811281
golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
12821282
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
1283-
golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw=
12841283
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
12851284
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
12861285
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1485,15 +1484,13 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8
14851484
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
14861485
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
14871486
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
1488-
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
14891487
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
14901488
gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
14911489
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
14921490
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
14931491
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
14941492
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
14951493
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
1496-
gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
14971494
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
14981495
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
14991496
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

tencentcloud/connectivity/client.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import (
88
"strconv"
99
"time"
1010

11+
oceanus "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus/v20190422"
12+
1113
cfw "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfw/v20190904"
1214

1315
waf "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125"
@@ -187,6 +189,7 @@ type TencentCloudClient struct {
187189
wedataConn *wedata.Client
188190
wafConn *waf.Client
189191
cfwConn *cfw.Client
192+
oceanusConn *oceanus.Client
190193
trocketConn *trocket.Client
191194
biConn *bi.Client
192195
cdwpgConn *cdwpg.Client
@@ -1297,6 +1300,19 @@ func (me *TencentCloudClient) UseCfwClient() *cfw.Client {
12971300
return me.cfwConn
12981301
}
12991302

1303+
func (me *TencentCloudClient) UseOceanusClient() *oceanus.Client {
1304+
if me.oceanusConn != nil {
1305+
return me.oceanusConn
1306+
}
1307+
1308+
cpf := me.NewClientProfile(300)
1309+
cpf.Language = "zh-CN"
1310+
me.oceanusConn, _ = oceanus.NewClient(me.Credential, me.Region, cpf)
1311+
me.oceanusConn.WithHttpTransport(&LogRoundTripper{})
1312+
1313+
return me.oceanusConn
1314+
}
1315+
13001316
// UseTrocketClient returns trocket client for service
13011317
func (me *TencentCloudClient) UseTrocketClient() *trocket.Client {
13021318
if me.trocketConn != nil {
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
/*
2+
Use this data source to query detailed information of oceanus check_savepoint
3+
4+
Example Usage
5+
6+
```hcl
7+
data "tencentcloud_oceanus_check_savepoint" "example" {
8+
job_id = "cql-314rw6w0"
9+
serial_id = "svp-52xkpymp"
10+
record_type = 1
11+
savepoint_path = "cosn://52xkpymp-12345/12345/10000/cql-12345/2/flink-savepoints/savepoint-000000-12334"
12+
work_space_id = "space-2idq8wbr"
13+
}
14+
```
15+
*/
16+
package tencentcloud
17+
18+
import (
19+
"context"
20+
21+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
22+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
23+
oceanus "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus/v20190422"
24+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
25+
)
26+
27+
func dataSourceTencentCloudOceanusCheckSavepoint() *schema.Resource {
28+
return &schema.Resource{
29+
Read: dataSourceTencentCloudOceanusCheckSavepointRead,
30+
Schema: map[string]*schema.Schema{
31+
"job_id": {
32+
Required: true,
33+
Type: schema.TypeString,
34+
Description: "Job id.",
35+
},
36+
"serial_id": {
37+
Required: true,
38+
Type: schema.TypeString,
39+
Description: "Snapshot resource ID.",
40+
},
41+
"record_type": {
42+
Required: true,
43+
Type: schema.TypeInt,
44+
ValidateFunc: validateAllowedIntValue(RECORD_TYPE),
45+
Description: "Snapshot type. 1:savepoint; 2:checkpoint; 3:cancelWithSavepoint.",
46+
},
47+
"savepoint_path": {
48+
Required: true,
49+
Type: schema.TypeString,
50+
Description: "Snapshot path, currently only supports COS path.",
51+
},
52+
"work_space_id": {
53+
Required: true,
54+
Type: schema.TypeString,
55+
Description: "Workspace ID.",
56+
},
57+
"savepoint_status": {
58+
Computed: true,
59+
Type: schema.TypeInt,
60+
Description: "1=available, 2=unavailable.",
61+
},
62+
"result_output_file": {
63+
Type: schema.TypeString,
64+
Optional: true,
65+
Description: "Used to save results.",
66+
},
67+
},
68+
}
69+
}
70+
71+
func dataSourceTencentCloudOceanusCheckSavepointRead(d *schema.ResourceData, meta interface{}) error {
72+
defer logElapsed("data_source.tencentcloud_oceanus_check_savepoint.read")()
73+
defer inconsistentCheck(d, meta)()
74+
75+
var (
76+
logId = getLogId(contextNil)
77+
ctx = context.WithValue(context.TODO(), logIdKey, logId)
78+
service = OceanusService{client: meta.(*TencentCloudClient).apiV3Conn}
79+
checkSavepoint *oceanus.CheckSavepointResponseParams
80+
serialId string
81+
)
82+
83+
paramMap := make(map[string]interface{})
84+
if v, ok := d.GetOk("job_id"); ok {
85+
paramMap["JobId"] = helper.String(v.(string))
86+
}
87+
88+
if v, ok := d.GetOk("serial_id"); ok {
89+
paramMap["SerialId"] = helper.String(v.(string))
90+
serialId = v.(string)
91+
}
92+
93+
if v, ok := d.GetOkExists("record_type"); ok {
94+
paramMap["RecordType"] = helper.IntInt64(v.(int))
95+
}
96+
97+
if v, ok := d.GetOk("savepoint_path"); ok {
98+
paramMap["SavepointPath"] = helper.String(v.(string))
99+
}
100+
101+
if v, ok := d.GetOk("work_space_id"); ok {
102+
paramMap["WorkSpaceId"] = helper.String(v.(string))
103+
}
104+
105+
err := resource.Retry(readRetryTimeout, func() *resource.RetryError {
106+
result, e := service.DescribeOceanusCheckSavepointByFilter(ctx, paramMap)
107+
if e != nil {
108+
return retryError(e)
109+
}
110+
111+
checkSavepoint = result
112+
return nil
113+
})
114+
115+
if err != nil {
116+
return err
117+
}
118+
119+
if checkSavepoint.SerialId != nil {
120+
_ = d.Set("serial_id", checkSavepoint.SerialId)
121+
}
122+
123+
if checkSavepoint.SavepointStatus != nil {
124+
_ = d.Set("savepoint_status", checkSavepoint.SavepointStatus)
125+
}
126+
127+
d.SetId(serialId)
128+
output, ok := d.GetOk("result_output_file")
129+
if ok && output.(string) != "" {
130+
if e := writeToFile(output.(string), d); e != nil {
131+
return e
132+
}
133+
}
134+
135+
return nil
136+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package tencentcloud
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
)
8+
9+
// go test -i; go test -test.run TestAccTencentCloudNeedFixOceanusCheckSavepointDataSource_basic -v
10+
func TestAccTencentCloudNeedFixOceanusCheckSavepointDataSource_basic(t *testing.T) {
11+
t.Parallel()
12+
resource.Test(t, resource.TestCase{
13+
PreCheck: func() {
14+
testAccPreCheck(t)
15+
},
16+
Providers: testAccProviders,
17+
Steps: []resource.TestStep{
18+
{
19+
Config: testAccOceanusCheckSavepointDataSource,
20+
Check: resource.ComposeTestCheckFunc(
21+
testAccCheckTencentCloudDataSourceID("data.tencentcloud_oceanus_check_savepoint.example"),
22+
resource.TestCheckResourceAttrSet("data.tencentcloud_oceanus_check_savepoint.example", "job_id"),
23+
resource.TestCheckResourceAttrSet("data.tencentcloud_oceanus_check_savepoint.example", "serial_id"),
24+
resource.TestCheckResourceAttrSet("data.tencentcloud_oceanus_check_savepoint.example", "record_type"),
25+
resource.TestCheckResourceAttrSet("data.tencentcloud_oceanus_check_savepoint.example", "savepoint_path"),
26+
resource.TestCheckResourceAttrSet("data.tencentcloud_oceanus_check_savepoint.example", "work_space_id"),
27+
),
28+
},
29+
},
30+
})
31+
}
32+
33+
const testAccOceanusCheckSavepointDataSource = `
34+
data "tencentcloud_oceanus_check_savepoint" "example" {
35+
job_id = "cql-314rw6w0"
36+
serial_id = "svp-52xkpymp"
37+
record_type = 1
38+
savepoint_path = "cosn://52xkpymp-12345/12345/10000/cql-12345/2/flink-savepoints/savepoint-000000-12334"
39+
work_space_id = "space-2idq8wbr"
40+
}
41+
`

0 commit comments

Comments
 (0)