Skip to content

Commit 748e675

Browse files
authored
Feat/bh (#2319)
* feat/bh * feat/bh * feat/bh * feat/bh * feat/bh * feat/bh * feat/bh * feat/bh * feat/bh * feat/bh * feat/bh * feat/bh * feat/bh
1 parent 0954768 commit 748e675

26 files changed

+1623
-21
lines changed

.changelog/2319.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
```release-note:new-resource
2+
tencentcloud_dasb_user_group
3+
```
4+
5+
```release-note:new-resource
6+
tencentcloud_dasb_reset_user
7+
```
8+
9+
```release-note:new-resource
10+
tencentcloud_dasb_bind_device_account_private_key
11+
```
12+
13+
```release-note:new-resource
14+
tencentcloud_dasb_bind_device_account_password
15+
```

go.mod

Lines changed: 3 additions & 3 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.797
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.798
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,8 +97,8 @@ 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.779
100-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792
101100
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.794
101+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792
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
104104
github.com/yangwenmai/ratelimit v0.0.0-20180104140304-44221c2292e1
@@ -108,7 +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/dasb v1.0.788
111+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb v1.0.798
112112
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.775
113113
github.com/wI2L/jsondiff v0.3.0
114114
)

go.sum

Lines changed: 454 additions & 8 deletions
Large diffs are not rendered by default.

tencentcloud/provider.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2027,6 +2027,10 @@ Bastion Host(BH)
20272027
tencentcloud_dasb_bind_device_resource
20282028
tencentcloud_dasb_resource
20292029
tencentcloud_dasb_device
2030+
tencentcloud_dasb_user_group
2031+
tencentcloud_dasb_reset_user
2032+
tencentcloud_dasb_bind_device_account_private_key
2033+
tencentcloud_dasb_bind_device_account_password
20302034
20312035
Cwp
20322036
Data Source
@@ -3821,6 +3825,10 @@ func Provider() *schema.Provider {
38213825
"tencentcloud_dasb_bind_device_resource": resourceTencentCloudDasbBindDeviceResource(),
38223826
"tencentcloud_dasb_resource": resourceTencentCloudDasbResource(),
38233827
"tencentcloud_dasb_device": resourceTencentCloudDasbDevice(),
3828+
"tencentcloud_dasb_user_group": resourceTencentCloudDasbUserGroup(),
3829+
"tencentcloud_dasb_reset_user": resourceTencentCloudDasbResetUser(),
3830+
"tencentcloud_dasb_bind_device_account_private_key": resourceTencentCloudDasbBindDeviceAccountPrivateKey(),
3831+
"tencentcloud_dasb_bind_device_account_password": resourceTencentCloudDasbBindDeviceAccountPassword(),
38243832
"tencentcloud_ssl_check_certificate_chain_operation": resourceTencentCloudSslCheckCertificateChainOperation(),
38253833
"tencentcloud_ssl_complete_certificate_operation": resourceTencentCloudSslCompleteCertificateOperation(),
38263834
"tencentcloud_ssl_deploy_certificate_instance_operation": resourceTencentCloudSslDeployCertificateInstanceOperation(),

tencentcloud/resource_tc_cbs_storage_testing_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package tencentcloud
22

33
import (
4-
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
54
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
67
)
78

89
func TestAccTencentCloudTestingCbsStorageResource_basic(t *testing.T) {
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
/*
2+
Provides a resource to create a dasb bind_device_account_password
3+
4+
Example Usage
5+
6+
```hcl
7+
resource "tencentcloud_dasb_bind_device_account_password" "example" {
8+
device_account_id = 16
9+
password = "TerraformPassword"
10+
}
11+
```
12+
*/
13+
package tencentcloud
14+
15+
import (
16+
"context"
17+
"log"
18+
"strconv"
19+
20+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
21+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
22+
dasb "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb/v20191018"
23+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
24+
)
25+
26+
func resourceTencentCloudDasbBindDeviceAccountPassword() *schema.Resource {
27+
return &schema.Resource{
28+
Create: resourceTencentCloudDasbBindDeviceAccountPasswordCreate,
29+
Read: resourceTencentCloudDasbBindDeviceAccountPasswordRead,
30+
Delete: resourceTencentCloudDasbBindDeviceAccountPasswordDelete,
31+
32+
Schema: map[string]*schema.Schema{
33+
"device_account_id": {
34+
Required: true,
35+
ForceNew: true,
36+
Type: schema.TypeInt,
37+
Description: "Host account ID.",
38+
},
39+
"password": {
40+
Required: true,
41+
ForceNew: true,
42+
Type: schema.TypeString,
43+
Description: "Host account password.",
44+
},
45+
},
46+
}
47+
}
48+
49+
func resourceTencentCloudDasbBindDeviceAccountPasswordCreate(d *schema.ResourceData, meta interface{}) error {
50+
defer logElapsed("resource.tencentcloud_dasb_bind_device_account_password.create")()
51+
defer inconsistentCheck(d, meta)()
52+
53+
var (
54+
logId = getLogId(contextNil)
55+
request = dasb.NewBindDeviceAccountPasswordRequest()
56+
deviceAccountId string
57+
)
58+
59+
if v, ok := d.GetOkExists("device_account_id"); ok {
60+
request.Id = helper.IntUint64(v.(int))
61+
deviceAccountId = strconv.Itoa(v.(int))
62+
}
63+
64+
if v, ok := d.GetOk("password"); ok {
65+
request.Password = helper.String(v.(string))
66+
}
67+
68+
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
69+
result, e := meta.(*TencentCloudClient).apiV3Conn.UseDasbClient().BindDeviceAccountPassword(request)
70+
if e != nil {
71+
return retryError(e)
72+
} else {
73+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
74+
}
75+
76+
return nil
77+
})
78+
79+
if err != nil {
80+
log.Printf("[CRITAL]%s create dasb BindDeviceAccountPassword failed, reason:%+v", logId, err)
81+
return err
82+
}
83+
84+
d.SetId(deviceAccountId)
85+
86+
return resourceTencentCloudDasbBindDeviceAccountPasswordRead(d, meta)
87+
}
88+
89+
func resourceTencentCloudDasbBindDeviceAccountPasswordRead(d *schema.ResourceData, meta interface{}) error {
90+
defer logElapsed("resource.tencentcloud_dasb_bind_device_account_password.read")()
91+
defer inconsistentCheck(d, meta)()
92+
93+
if v, ok := d.GetOkExists("device_account_id"); ok {
94+
_ = d.Set("device_account_id", v.(int))
95+
}
96+
97+
if v, ok := d.GetOk("password"); ok {
98+
_ = d.Set("password", v.(string))
99+
}
100+
101+
return nil
102+
}
103+
104+
func resourceTencentCloudDasbBindDeviceAccountPasswordDelete(d *schema.ResourceData, meta interface{}) error {
105+
defer logElapsed("resource.tencentcloud_dasb_bind_device_account_password.delete")()
106+
defer inconsistentCheck(d, meta)()
107+
108+
var (
109+
logId = getLogId(contextNil)
110+
ctx = context.WithValue(context.TODO(), logIdKey, logId)
111+
service = DasbService{client: meta.(*TencentCloudClient).apiV3Conn}
112+
deviceAccountId = d.Id()
113+
)
114+
115+
if err := service.DeleteDasbBindDeviceAccountPasswordById(ctx, deviceAccountId); err != nil {
116+
return err
117+
}
118+
119+
return nil
120+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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 TestAccTencentCloudNeedFixDasbBindDeviceAccountPasswordResource_basic -v
10+
func TestAccTencentCloudNeedFixDasbBindDeviceAccountPasswordResource_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: testAccDasbBindDeviceAccountPassword,
20+
Check: resource.ComposeTestCheckFunc(
21+
resource.TestCheckResourceAttrSet("tencentcloud_dasb_bind_device_account_password.example", "id"),
22+
resource.TestCheckResourceAttrSet("tencentcloud_dasb_bind_device_account_password.example", "device_account_id"),
23+
resource.TestCheckResourceAttr("tencentcloud_dasb_bind_device_account_password.example", "password", "TerraformPassword"),
24+
),
25+
},
26+
},
27+
})
28+
}
29+
30+
const testAccDasbBindDeviceAccountPassword = `
31+
resource "tencentcloud_dasb_bind_device_account_password" "example" {
32+
device_account_id = 16
33+
password = "TerraformPassword"
34+
}
35+
`
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
/*
2+
Provides a resource to create a dasb bind_device_account_private_key
3+
4+
Example Usage
5+
6+
```hcl
7+
resource "tencentcloud_dasb_bind_device_account_private_key" "example" {
8+
device_account_id = 16
9+
private_key = "MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUpwmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ51s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh"
10+
private_key_password = "TerraformPassword"
11+
}
12+
```
13+
*/
14+
package tencentcloud
15+
16+
import (
17+
"context"
18+
"log"
19+
"strconv"
20+
21+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
22+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
23+
dasb "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb/v20191018"
24+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
25+
)
26+
27+
func resourceTencentCloudDasbBindDeviceAccountPrivateKey() *schema.Resource {
28+
return &schema.Resource{
29+
Create: resourceTencentCloudDasbBindDeviceAccountPrivateKeyCreate,
30+
Read: resourceTencentCloudDasbBindDeviceAccountPrivateKeyRead,
31+
Delete: resourceTencentCloudDasbBindDeviceAccountPrivateKeyDelete,
32+
33+
Schema: map[string]*schema.Schema{
34+
"device_account_id": {
35+
Required: true,
36+
ForceNew: true,
37+
Type: schema.TypeInt,
38+
Description: "Host account ID.",
39+
},
40+
"private_key": {
41+
Required: true,
42+
ForceNew: true,
43+
Type: schema.TypeString,
44+
Description: "Host account private key, the latest length is 128 bytes, the maximum length is 8192 bytes.",
45+
},
46+
"private_key_password": {
47+
Optional: true,
48+
ForceNew: true,
49+
Type: schema.TypeString,
50+
Description: "Host account private key password, maximum length 256 bytes.",
51+
},
52+
},
53+
}
54+
}
55+
56+
func resourceTencentCloudDasbBindDeviceAccountPrivateKeyCreate(d *schema.ResourceData, meta interface{}) error {
57+
defer logElapsed("resource.tencentcloud_dasb_bind_device_account_private_key.create")()
58+
defer inconsistentCheck(d, meta)()
59+
60+
var (
61+
logId = getLogId(contextNil)
62+
request = dasb.NewBindDeviceAccountPrivateKeyRequest()
63+
deviceAccountId string
64+
)
65+
66+
if v, ok := d.GetOkExists("device_account_id"); ok {
67+
request.Id = helper.IntUint64(v.(int))
68+
deviceAccountId = strconv.Itoa(v.(int))
69+
}
70+
71+
if v, ok := d.GetOk("private_key"); ok {
72+
request.PrivateKey = helper.String(v.(string))
73+
}
74+
75+
if v, ok := d.GetOk("private_key_password"); ok {
76+
request.PrivateKeyPassword = helper.String(v.(string))
77+
}
78+
79+
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
80+
result, e := meta.(*TencentCloudClient).apiV3Conn.UseDasbClient().BindDeviceAccountPrivateKey(request)
81+
if e != nil {
82+
return retryError(e)
83+
} else {
84+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
85+
}
86+
87+
return nil
88+
})
89+
90+
if err != nil {
91+
log.Printf("[CRITAL]%s create dasb bindDeviceAccountPrivateKey failed, reason:%+v", logId, err)
92+
return err
93+
}
94+
95+
d.SetId(deviceAccountId)
96+
97+
return resourceTencentCloudDasbBindDeviceAccountPrivateKeyRead(d, meta)
98+
}
99+
100+
func resourceTencentCloudDasbBindDeviceAccountPrivateKeyRead(d *schema.ResourceData, meta interface{}) error {
101+
defer logElapsed("resource.tencentcloud_dasb_bind_device_account_private_key.read")()
102+
defer inconsistentCheck(d, meta)()
103+
104+
if v, ok := d.GetOkExists("device_account_id"); ok {
105+
_ = d.Set("device_account_id", v.(int))
106+
}
107+
108+
if v, ok := d.GetOk("private_key"); ok {
109+
_ = d.Set("private_key", v.(string))
110+
}
111+
112+
if v, ok := d.GetOk("private_key_password"); ok {
113+
_ = d.Set("private_key_password", v.(string))
114+
}
115+
116+
return nil
117+
}
118+
119+
func resourceTencentCloudDasbBindDeviceAccountPrivateKeyDelete(d *schema.ResourceData, meta interface{}) error {
120+
defer logElapsed("resource.tencentcloud_dasb_bind_device_account_private_key.delete")()
121+
defer inconsistentCheck(d, meta)()
122+
123+
var (
124+
logId = getLogId(contextNil)
125+
ctx = context.WithValue(context.TODO(), logIdKey, logId)
126+
service = DasbService{client: meta.(*TencentCloudClient).apiV3Conn}
127+
deviceAccountId = d.Id()
128+
)
129+
130+
if err := service.DeleteDasbBindDeviceAccountPrivateKeyById(ctx, deviceAccountId); err != nil {
131+
return err
132+
}
133+
134+
return nil
135+
}

0 commit comments

Comments
 (0)