Skip to content

Commit 7f7d769

Browse files
WeiMengXSWeiMengXS
andauthored
Feat/dlc suspend (#2240)
* feat: suspend engine * feat: doc * feat: changelog --------- Co-authored-by: WeiMengXS <nickcchen@tencent.com>
1 parent e550718 commit 7f7d769

File tree

6 files changed

+209
-1
lines changed

6 files changed

+209
-1
lines changed

.changelog/2240.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_dlc_suspend_resume_data_engine
3+
```

tencentcloud/provider.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1828,6 +1828,7 @@ Data Lake Compute(DLC)
18281828
tencentcloud_dlc_user
18291829
tencentcloud_dlc_add_users_to_work_group_attachment
18301830
tencentcloud_dlc_store_location_config
1831+
tencentcloud_dlc_suspend_resume_data_engine
18311832
18321833
WeData
18331834
Data Source
@@ -3462,10 +3463,11 @@ func Provider() *schema.Provider {
34623463
"tencentcloud_eb_event_target": resourceTencentCloudEbEventTarget(),
34633464
"tencentcloud_eb_put_events": resourceTencentCloudEbPutEvents(),
34643465
"tencentcloud_eb_event_connector": resourceTencentCloudEbEventConnector(),
3465-
"tencentcloud_dlc_work_group": resourceTencentCloudDlcWorkGroup(),
34663466
"tencentcloud_dlc_user": resourceTencentCloudDlcUser(),
34673467
"tencentcloud_dlc_add_users_to_work_group_attachment": resourceTencentCloudDlcAddUsersToWorkGroupAttachment(),
34683468
"tencentcloud_dlc_store_location_config": resourceTencentCloudDlcStoreLocationConfig(),
3469+
"tencentcloud_dlc_work_group": resourceTencentCloudDlcWorkGroup(),
3470+
"tencentcloud_dlc_suspend_resume_data_engine": resourceTencentCloudDlcSuspendResumeDataEngine(),
34693471
"tencentcloud_wedata_rule_template": resourceTencentCloudWedataRuleTemplate(),
34703472
"tencentcloud_waf_custom_rule": resourceTencentCloudWafCustomRule(),
34713473
"tencentcloud_waf_custom_white_rule": resourceTencentCloudWafCustomWhiteRule(),
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
/*
2+
Provides a resource to create a dlc suspend_resume_data_engine
3+
4+
Example Usage
5+
6+
```hcl
7+
resource "tencentcloud_dlc_suspend_resume_data_engine" "suspend_resume_data_engine" {
8+
data_engine_name = "example-iac"
9+
operate = "suspend"
10+
}
11+
```
12+
13+
Import
14+
15+
dlc suspend_resume_data_engine can be imported using the id, e.g.
16+
17+
```
18+
terraform import tencentcloud_dlc_suspend_resume_data_engine.suspend_resume_data_engine suspend_resume_data_engine_id
19+
```
20+
*/
21+
package tencentcloud
22+
23+
import (
24+
"log"
25+
26+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
27+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
28+
dlc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dlc/v20210125"
29+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
30+
)
31+
32+
func resourceTencentCloudDlcSuspendResumeDataEngine() *schema.Resource {
33+
return &schema.Resource{
34+
Create: resourceTencentCloudDlcSuspendResumeDataEngineCreate,
35+
Read: resourceTencentCloudDlcSuspendResumeDataEngineRead,
36+
Delete: resourceTencentCloudDlcSuspendResumeDataEngineDelete,
37+
Importer: &schema.ResourceImporter{
38+
State: schema.ImportStatePassthrough,
39+
},
40+
Schema: map[string]*schema.Schema{
41+
"data_engine_name": {
42+
Required: true,
43+
ForceNew: true,
44+
Type: schema.TypeString,
45+
Description: "Engine name.",
46+
},
47+
48+
"operate": {
49+
Required: true,
50+
ForceNew: true,
51+
Type: schema.TypeString,
52+
Description: "Engine operate tye: suspend/resume.",
53+
},
54+
},
55+
}
56+
}
57+
58+
func resourceTencentCloudDlcSuspendResumeDataEngineCreate(d *schema.ResourceData, meta interface{}) error {
59+
defer logElapsed("resource.tencentcloud_dlc_suspend_resume_data_engine.create")()
60+
defer inconsistentCheck(d, meta)()
61+
62+
logId := getLogId(contextNil)
63+
64+
var (
65+
request = dlc.NewSuspendResumeDataEngineRequest()
66+
dataEngineName string
67+
)
68+
if v, ok := d.GetOk("data_engine_name"); ok {
69+
dataEngineName = v.(string)
70+
request.DataEngineName = helper.String(v.(string))
71+
}
72+
73+
if v, ok := d.GetOk("operate"); ok {
74+
request.Operate = helper.String(v.(string))
75+
}
76+
77+
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
78+
result, e := meta.(*TencentCloudClient).apiV3Conn.UseDlcClient().SuspendResumeDataEngine(request)
79+
if e != nil {
80+
return retryError(e)
81+
} else {
82+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
83+
}
84+
return nil
85+
})
86+
if err != nil {
87+
log.Printf("[CRITAL]%s operate dlc suspendResumeDataEngine failed, reason:%+v", logId, err)
88+
return err
89+
}
90+
91+
d.SetId(dataEngineName)
92+
93+
return resourceTencentCloudDlcSuspendResumeDataEngineRead(d, meta)
94+
}
95+
96+
func resourceTencentCloudDlcSuspendResumeDataEngineRead(d *schema.ResourceData, meta interface{}) error {
97+
defer logElapsed("resource.tencentcloud_dlc_suspend_resume_data_engine.read")()
98+
defer inconsistentCheck(d, meta)()
99+
100+
return nil
101+
}
102+
103+
func resourceTencentCloudDlcSuspendResumeDataEngineDelete(d *schema.ResourceData, meta interface{}) error {
104+
defer logElapsed("resource.tencentcloud_dlc_suspend_resume_data_engine.delete")()
105+
defer inconsistentCheck(d, meta)()
106+
107+
return nil
108+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package tencentcloud
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
)
8+
9+
func TestAccTencentCloudDlcSuspendResumeDataEngineResource_basic(t *testing.T) {
10+
t.Parallel()
11+
resource.Test(t, resource.TestCase{
12+
PreCheck: func() {
13+
testAccPreCheck(t)
14+
},
15+
Providers: testAccProviders,
16+
Steps: []resource.TestStep{
17+
{
18+
Config: testAccDlcSuspendResumeDataEngineSuspend,
19+
Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_dlc_suspend_resume_data_engine.suspend_resume_data_engine", "id"),
20+
resource.TestCheckResourceAttr("tencentcloud_dlc_suspend_resume_data_engine.suspend_resume_data_engine", "data_engine_name", "iac-test"),
21+
resource.TestCheckResourceAttr("tencentcloud_dlc_suspend_resume_data_engine.suspend_resume_data_engine", "operate", "suspend")),
22+
},
23+
{
24+
Config: testAccDlcSuspendResumeDataEngineResume,
25+
Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_dlc_suspend_resume_data_engine.suspend_resume_data_engine", "id"),
26+
resource.TestCheckResourceAttr("tencentcloud_dlc_suspend_resume_data_engine.suspend_resume_data_engine", "data_engine_name", "iac-test"),
27+
resource.TestCheckResourceAttr("tencentcloud_dlc_suspend_resume_data_engine.suspend_resume_data_engine", "operate", "resume")),
28+
},
29+
},
30+
})
31+
}
32+
33+
const testAccDlcSuspendResumeDataEngineSuspend = `
34+
35+
resource "tencentcloud_dlc_suspend_resume_data_engine" "suspend_resume_data_engine" {
36+
data_engine_name = "iac-test"
37+
operate = "suspend"
38+
}
39+
40+
`
41+
const testAccDlcSuspendResumeDataEngineResume = `
42+
43+
resource "tencentcloud_dlc_suspend_resume_data_engine" "suspend_resume_data_engine" {
44+
data_engine_name = "iac-test"
45+
operate = "resume"
46+
}
47+
`
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
subcategory: "Data Lake Compute(DLC)"
3+
layout: "tencentcloud"
4+
page_title: "TencentCloud: tencentcloud_dlc_suspend_resume_data_engine"
5+
sidebar_current: "docs-tencentcloud-resource-dlc_suspend_resume_data_engine"
6+
description: |-
7+
Provides a resource to create a dlc suspend_resume_data_engine
8+
---
9+
10+
# tencentcloud_dlc_suspend_resume_data_engine
11+
12+
Provides a resource to create a dlc suspend_resume_data_engine
13+
14+
## Example Usage
15+
16+
```hcl
17+
resource "tencentcloud_dlc_suspend_resume_data_engine" "suspend_resume_data_engine" {
18+
data_engine_name = "example-iac"
19+
operate = "suspend"
20+
}
21+
```
22+
23+
## Argument Reference
24+
25+
The following arguments are supported:
26+
27+
* `data_engine_name` - (Required, String, ForceNew) Engine name.
28+
* `operate` - (Required, String, ForceNew) Engine operate tye: suspend/resume.
29+
30+
## Attributes Reference
31+
32+
In addition to all arguments above, the following attributes are exported:
33+
34+
* `id` - ID of the resource.
35+
36+
37+
38+
## Import
39+
40+
dlc suspend_resume_data_engine can be imported using the id, e.g.
41+
42+
```
43+
terraform import tencentcloud_dlc_suspend_resume_data_engine.suspend_resume_data_engine suspend_resume_data_engine_id
44+
```
45+

website/tencentcloud.erb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1718,6 +1718,9 @@
17181718
<li>
17191719
<a href="/docs/providers/tencentcloud/r/dlc_store_location_config.html">tencentcloud_dlc_store_location_config</a>
17201720
</li>
1721+
<li>
1722+
<a href="/docs/providers/tencentcloud/r/dlc_suspend_resume_data_engine.html">tencentcloud_dlc_suspend_resume_data_engine</a>
1723+
</li>
17211724
<li>
17221725
<a href="/docs/providers/tencentcloud/r/dlc_user.html">tencentcloud_dlc_user</a>
17231726
</li>

0 commit comments

Comments
 (0)