Skip to content

Commit 3ff255b

Browse files
authored
feat/oceanus (#2452)
* feat/oceanus * feat/oceanus
1 parent fe64a76 commit 3ff255b

File tree

16 files changed

+383
-6
lines changed

16 files changed

+383
-6
lines changed

.changelog/2452.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
```release-note:new-data-source
2+
tencentcloud_oceanus_job_events
3+
```
4+
5+
```release-note:new-data-source
6+
tencentcloud_oceanus_meta_table
7+
```

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.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.829
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.831
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
@@ -109,7 +109,7 @@ require (
109109
github.com/hashicorp/go-uuid v1.0.3
110110
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwpg v1.0.772
111111
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb v1.0.798
112-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.829
112+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.831
113113
github.com/wI2L/jsondiff v0.3.0
114114
k8s.io/apimachinery v0.22.4
115115
)

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -935,6 +935,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.825 h1:ijG2
935935
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.825/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
936936
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.829 h1:5Wx+X/EmjEU6T9WHjc/vBPvW97OUe3Bi8BGdQBD8pJM=
937937
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.829/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
938+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.831 h1:3hMsWgpFCyVmpm9KzgyHNRhYSqAn9EPr5WlZYWoJSMw=
939+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.831/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
938940
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
939941
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624/go.mod h1:+TXSVyeKwt1IhZRqKPbTREteBcP+K07Q846/ilNzLWA=
940942
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762 h1:2egy69SP/wPsmnfozcQVZ6tUY6F6N/TpEe/7xtXrc/8=
@@ -985,6 +987,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.810 h1:P9e
985987
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.810/go.mod h1:jWIMZDz6D+bwcfc1n4idP3S1581bOqRPaXjU4wllnZ8=
986988
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.829 h1:+7Qwa1c6sgbBreu18IDYGmGGaoFwQVen3hmPQlALR4E=
987989
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.829/go.mod h1:ftIGeNWJScZOiWWEmJWRww65CMxsj26Vscc8A0yAObM=
990+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.831 h1:oyazF5wgAgoinGo/SDGfUReE3JFxqcpI6/pstWhK7yE=
991+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.831/go.mod h1:2WuTlTnKCnZoa6l0JxY9GNfo0UG6nU7AEsljF8rMMsM=
988992
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.770 h1:Ksu947uY/fafnlILemfMuyKqL/RxHh9dfVowWX8paeQ=
989993
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.770/go.mod h1:Ew8jug2Kq03q9Kkjzov7IMYgugGLEw3FGYPofuRqzKw=
990994
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.814 h1:1XlGrQHRBJv419m64yWRNRWVUTvqBi3Go4ahndnZz9w=

tencentcloud/provider.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,7 @@ func Provider() *schema.Provider {
312312
"tencentcloud_oceanus_job_submission_log": oceanus.DataSourceTencentCloudOceanusJobSubmissionLog(),
313313
"tencentcloud_oceanus_check_savepoint": oceanus.DataSourceTencentCloudOceanusCheckSavepoint(),
314314
"tencentcloud_oceanus_job_events": oceanus.DataSourceTencentCloudOceanusJobEvents(),
315+
"tencentcloud_oceanus_meta_table": oceanus.DataSourceTencentCloudOceanusMetaTable(),
315316
"tencentcloud_vpn_customer_gateways": vpn.DataSourceTencentCloudVpnCustomerGateways(),
316317
"tencentcloud_vpn_gateways": vpn.DataSourceTencentCloudVpnGateways(),
317318
"tencentcloud_vpn_gateway_routes": vpn.DataSourceTencentCloudVpnGatewayRoutes(),

tencentcloud/provider.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1127,6 +1127,8 @@ Oceanus
11271127
tencentcloud_oceanus_tree_resources
11281128
tencentcloud_oceanus_job_submission_log
11291129
tencentcloud_oceanus_check_savepoint
1130+
tencentcloud_oceanus_job_events
1131+
tencentcloud_oceanus_meta_table
11301132

11311133
Resource
11321134
tencentcloud_oceanus_folder

tencentcloud/services/oceanus/data_source_tc_oceanus_job_events_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package oceanus
1+
package oceanus_test
22

33
import (
44
"testing"
Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
package oceanus
2+
3+
import (
4+
"context"
5+
"fmt"
6+
7+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
8+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
9+
oceanus "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus/v20190422"
10+
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
11+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
12+
)
13+
14+
func DataSourceTencentCloudOceanusMetaTable() *schema.Resource {
15+
return &schema.Resource{
16+
Read: dataSourceTencentCloudOceanusMetaTableRead,
17+
Schema: map[string]*schema.Schema{
18+
"work_space_id": {
19+
Required: true,
20+
Type: schema.TypeString,
21+
Description: "Unique identifier of the space.",
22+
},
23+
"catalog": {
24+
Required: true,
25+
Type: schema.TypeString,
26+
Description: "Catalog name.",
27+
},
28+
"database": {
29+
Required: true,
30+
Type: schema.TypeString,
31+
Description: "Database name.",
32+
},
33+
"table": {
34+
Required: true,
35+
Type: schema.TypeString,
36+
Description: "Table name.",
37+
},
38+
// computed
39+
"serial_id": {
40+
Computed: true,
41+
Type: schema.TypeString,
42+
Description: "Unique identifier of the metadata table.",
43+
},
44+
"ddl": {
45+
Computed: true,
46+
Type: schema.TypeString,
47+
Description: "Table creation statement, encoded in Base64.For example,Q1JFQVRFIFRBQkxFIGRhdGFnZW5fc291cmNlX3RhYmxlICggCiAgICBpZCBJTlQsIAogICAgbmFtZSBTVFJJTkcgCikgV0lUSCAoCidjb25uZWN0b3InPSdkYXRhZ2VuJywKJ3Jvd3MtcGVyLXNlY29uZCcgPSAnMScKKTs=.",
48+
},
49+
"create_time": {
50+
Computed: true,
51+
Type: schema.TypeString,
52+
Description: "Scene time.",
53+
},
54+
"result_output_file": {
55+
Type: schema.TypeString,
56+
Optional: true,
57+
Description: "Used to save results.",
58+
},
59+
},
60+
}
61+
}
62+
63+
func dataSourceTencentCloudOceanusMetaTableRead(d *schema.ResourceData, meta interface{}) error {
64+
defer tccommon.LogElapsed("data_source.tencentcloud_oceanus_meta_table.read")()
65+
defer tccommon.InconsistentCheck(d, meta)()
66+
67+
var (
68+
logId = tccommon.GetLogId(tccommon.ContextNil)
69+
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
70+
service = OceanusService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
71+
MetaTable *oceanus.GetMetaTableResponseParams
72+
workSpaceId string
73+
)
74+
75+
paramMap := make(map[string]interface{})
76+
if v, ok := d.GetOk("work_space_id"); ok {
77+
paramMap["WorkSpaceId"] = helper.String(v.(string))
78+
workSpaceId = v.(string)
79+
}
80+
81+
if v, ok := d.GetOk("catalog"); ok {
82+
paramMap["Catalog"] = helper.String(v.(string))
83+
}
84+
85+
if v, ok := d.GetOk("database"); ok {
86+
paramMap["Database"] = helper.String(v.(string))
87+
}
88+
89+
if v, ok := d.GetOk("table"); ok {
90+
paramMap["Table"] = helper.String(v.(string))
91+
}
92+
93+
err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
94+
result, e := service.DescribeOceanusMetaTableByFilter(ctx, paramMap)
95+
if e != nil {
96+
return tccommon.RetryError(e)
97+
}
98+
99+
if result == nil {
100+
e = fmt.Errorf("MetaTable not exists")
101+
return resource.NonRetryableError(e)
102+
}
103+
104+
MetaTable = result
105+
return nil
106+
})
107+
108+
if err != nil {
109+
return err
110+
}
111+
112+
_ = d.Set("work_space_id", workSpaceId)
113+
114+
if MetaTable.Catalog != nil {
115+
_ = d.Set("catalog", MetaTable.Catalog)
116+
}
117+
118+
if MetaTable.Database != nil {
119+
_ = d.Set("database", MetaTable.Database)
120+
}
121+
122+
if MetaTable.Table != nil {
123+
_ = d.Set("table", MetaTable.Table)
124+
}
125+
126+
if MetaTable.SerialId != nil {
127+
_ = d.Set("serial_id", MetaTable.SerialId)
128+
}
129+
130+
if MetaTable.DDL != nil {
131+
_ = d.Set("ddl", MetaTable.DDL)
132+
}
133+
134+
if MetaTable.CreateTime != nil {
135+
_ = d.Set("create_time", MetaTable.CreateTime)
136+
}
137+
138+
d.SetId(workSpaceId)
139+
output, ok := d.GetOk("result_output_file")
140+
if ok && output.(string) != "" {
141+
if e := tccommon.WriteToFile(output.(string), d); e != nil {
142+
return e
143+
}
144+
}
145+
146+
return nil
147+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Use this data source to query detailed information of oceanus meta_table
2+
3+
Example Usage
4+
5+
```hcl
6+
data "tencentcloud_oceanus_meta_table" "example" {
7+
work_space_id = "space-6w8eab6f"
8+
catalog = "_dc"
9+
database = "_db"
10+
table = "tf_table"
11+
}
12+
```
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package oceanus_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+
// go test -i; go test -test.run TestAccTencentCloudNeedFixOceanusMetaTableDataSource_basic -v
11+
func TestAccTencentCloudNeedFixOceanusMetaTableDataSource_basic(t *testing.T) {
12+
t.Parallel()
13+
resource.Test(t, resource.TestCase{
14+
PreCheck: func() {
15+
tcacctest.AccPreCheck(t)
16+
},
17+
Providers: tcacctest.AccProviders,
18+
Steps: []resource.TestStep{
19+
{
20+
Config: testAccOceanusMetaTableDataSource,
21+
Check: resource.ComposeTestCheckFunc(
22+
tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_oceanus_meta_table.example"),
23+
resource.TestCheckResourceAttr("data.tencentcloud_oceanus_meta_table.example", "work_space_id", "space-6w8eab6f"),
24+
resource.TestCheckResourceAttr("data.tencentcloud_oceanus_meta_table.example", "catalog", "_dc"),
25+
resource.TestCheckResourceAttr("data.tencentcloud_oceanus_meta_table.example", "database", "_db"),
26+
resource.TestCheckResourceAttr("data.tencentcloud_oceanus_meta_table.example", "table", "tf_table"),
27+
),
28+
},
29+
},
30+
})
31+
}
32+
33+
const testAccOceanusMetaTableDataSource = `
34+
data "tencentcloud_oceanus_meta_table" "example" {
35+
work_space_id = "space-6w8eab6f"
36+
catalog = "_dc"
37+
database = "_db"
38+
table = "tf_table"
39+
}
40+
`

tencentcloud/services/oceanus/service_tencentcloud_oceanus.go

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -901,3 +901,51 @@ func (me *OceanusService) DescribeOceanusJobEventsByFilter(ctx context.Context,
901901
JobEvents = response.Response
902902
return
903903
}
904+
905+
func (me *OceanusService) DescribeOceanusMetaTableByFilter(ctx context.Context, param map[string]interface{}) (MetaTable *oceanus.GetMetaTableResponseParams, errRet error) {
906+
var (
907+
logId = tccommon.GetLogId(ctx)
908+
request = oceanus.NewGetMetaTableRequest()
909+
)
910+
911+
defer func() {
912+
if errRet != nil {
913+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error())
914+
}
915+
}()
916+
917+
for k, v := range param {
918+
if k == "WorkSpaceId" {
919+
request.WorkSpaceId = v.(*string)
920+
}
921+
922+
if k == "Catalog" {
923+
request.Catalog = v.(*string)
924+
}
925+
926+
if k == "Database" {
927+
request.Database = v.(*string)
928+
}
929+
930+
if k == "Table" {
931+
request.Table = v.(*string)
932+
}
933+
}
934+
935+
ratelimit.Check(request.GetAction())
936+
937+
response, err := me.client.UseOceanusClient().GetMetaTable(request)
938+
if err != nil {
939+
errRet = err
940+
return
941+
}
942+
943+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
944+
945+
if response == nil || response.Response == nil {
946+
return
947+
}
948+
949+
MetaTable = response.Response
950+
return
951+
}

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.

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus/v20190422/models.go

Lines changed: 17 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)