Skip to content

Commit 7b491e9

Browse files
committed
add
1 parent 0bb271d commit 7b491e9

28 files changed

+1075
-5
lines changed

.changelog/3654.txt

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
```release-note:new-data-source
2+
tencentcloud_bh_account_groups
3+
```
4+
5+
```release-note:new-data-source
6+
tencentcloud_bh_source_types
7+
```
8+
9+
```release-note:new-resource
10+
tencentcloud_bh_access_white_list_rule
11+
```
12+
13+
```release-note:new-resource
14+
tencentcloud_bh_access_white_list_config
15+
```
16+
17+
```release-note:new-resource
18+
tencentcloud_bh_device
19+
```
20+
21+
```release-note:new-resource
22+
tencentcloud_bh_asset_sync_job_operation
23+
```
24+
25+
```release-note:new-resource
26+
tencentcloud_bh_asset_sync_flag_config
27+
```
28+
29+
```release-note:new-resource
30+
tencentcloud_bh_resource
31+
```
32+
33+
```release-note:new-resource
34+
tencentcloud_bh_reconnection_setting_config
35+
```
36+
37+
```release-note:new-resource
38+
tencentcloud_bh_user
39+
```
40+
41+
```release-note:new-resource
42+
tencentcloud_bh_user_group
43+
```
44+
45+
```release-note:new-resource
46+
tencentcloud_bh_user_directory
47+
```
48+
49+
```release-note:new-resource
50+
tencentcloud_bh_user_sync_task_operation
51+
```
52+
53+
```release-note:new-resource
54+
tencentcloud_bh_sync_devices_to_ioa_operation
55+
```

tencentcloud/provider.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2414,6 +2414,7 @@ func Provider() *schema.Provider {
24142414
"tencentcloud_bh_user_group": bh.ResourceTencentCloudBhUserGroup(),
24152415
"tencentcloud_bh_user_directory": bh.ResourceTencentCloudBhUserDirectory(),
24162416
"tencentcloud_bh_user_sync_task_operation": bh.ResourceTencentCloudBhUserSyncTaskOperation(),
2417+
"tencentcloud_bh_sync_devices_to_ioa_operation": bh.ResourceTencentCloudBhSyncDevicesToIoaOperation(),
24172418
"tencentcloud_dasb_acl": bh.ResourceTencentCloudDasbAcl(),
24182419
"tencentcloud_dasb_cmd_template": bh.ResourceTencentCloudDasbCmdTemplate(),
24192420
"tencentcloud_dasb_device_group": bh.ResourceTencentCloudDasbDeviceGroup(),

tencentcloud/provider.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2356,6 +2356,7 @@ tencentcloud_bh_user
23562356
tencentcloud_bh_user_group
23572357
tencentcloud_bh_user_directory
23582358
tencentcloud_bh_user_sync_task_operation
2359+
tencentcloud_bh_sync_devices_to_ioa_operation
23592360
tencentcloud_dasb_resource
23602361
tencentcloud_dasb_acl
23612362
tencentcloud_dasb_cmd_template

tencentcloud/services/bh/data_source_tc_bh_account_groups.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@ Use this data source to query detailed information of BH account groups
22

33
Example Usage
44

5+
Query all bh account groups
6+
57
```hcl
68
data "tencentcloud_bh_account_groups" "example" {}
79
```
10+
11+
Query bh account groups by filter
12+
13+
```hcl
14+
data "tencentcloud_bh_account_groups" "example" {
15+
deep_in = 1
16+
parent_id = 819729
17+
group_name = "tf-example"
18+
}
19+
```

tencentcloud/services/bh/resource_tc_bh_resource.go

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,38 @@ func resourceTencentCloudBhResourceUpdate(d *schema.ResourceData, meta interface
544544
log.Printf("[CRITAL]%s enable intranet access bh resource failed, reason:%+v", logId, reqErr)
545545
return reqErr
546546
}
547+
548+
// wait
549+
waitReq := bhv20230418.NewDescribeResourcesRequest()
550+
waitReq.ResourceIds = []*string{&resourceId}
551+
reqErr = resource.Retry(tccommon.ReadRetryTimeout*7, func() *resource.RetryError {
552+
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseBhV20230418Client().DescribeResourcesWithContext(ctx, waitReq)
553+
if e != nil {
554+
return tccommon.RetryError(e)
555+
} else {
556+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, waitReq.GetAction(), waitReq.ToJsonString(), result.ToJsonString())
557+
}
558+
559+
if result == nil || result.Response == nil || result.Response.ResourceSet == nil || len(result.Response.ResourceSet) == 0 {
560+
return resource.NonRetryableError(fmt.Errorf("Describe bh resource failed, Response is nil."))
561+
}
562+
563+
intranetAccess := result.Response.ResourceSet[0].IntranetAccess
564+
if intranetAccess == nil {
565+
return resource.NonRetryableError(fmt.Errorf("IntranetAccess is nil."))
566+
}
567+
568+
if *intranetAccess == 1 {
569+
return nil
570+
}
571+
572+
return resource.RetryableError(fmt.Errorf("Enable intranet access is still running...Intranet access is %d", *intranetAccess))
573+
})
574+
575+
if reqErr != nil {
576+
log.Printf("[CRITAL]%s enable intranet access bh resource failed, reason:%+v", logId, reqErr)
577+
return reqErr
578+
}
547579
} else {
548580
request := bhv20230418.NewDisableIntranetAccessRequest()
549581
request.ResourceId = helper.String(resourceId)
@@ -562,6 +594,38 @@ func resourceTencentCloudBhResourceUpdate(d *schema.ResourceData, meta interface
562594
log.Printf("[CRITAL]%s disable intranet access bh resource failed, reason:%+v", logId, reqErr)
563595
return reqErr
564596
}
597+
598+
// wait
599+
waitReq := bhv20230418.NewDescribeResourcesRequest()
600+
waitReq.ResourceIds = []*string{&resourceId}
601+
reqErr = resource.Retry(tccommon.ReadRetryTimeout*7, func() *resource.RetryError {
602+
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseBhV20230418Client().DescribeResourcesWithContext(ctx, waitReq)
603+
if e != nil {
604+
return tccommon.RetryError(e)
605+
} else {
606+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, waitReq.GetAction(), waitReq.ToJsonString(), result.ToJsonString())
607+
}
608+
609+
if result == nil || result.Response == nil || result.Response.ResourceSet == nil || len(result.Response.ResourceSet) == 0 {
610+
return resource.NonRetryableError(fmt.Errorf("Describe bh resource failed, Response is nil."))
611+
}
612+
613+
intranetAccess := result.Response.ResourceSet[0].IntranetAccess
614+
if intranetAccess == nil {
615+
return resource.NonRetryableError(fmt.Errorf("IntranetAccess is nil."))
616+
}
617+
618+
if *intranetAccess == 0 {
619+
return nil
620+
}
621+
622+
return resource.RetryableError(fmt.Errorf("Disable intranet access is still running...Intranet access is %d", *intranetAccess))
623+
})
624+
625+
if reqErr != nil {
626+
log.Printf("[CRITAL]%s disable intranet access bh resource failed, reason:%+v", logId, reqErr)
627+
return reqErr
628+
}
565629
}
566630
}
567631

@@ -583,6 +647,38 @@ func resourceTencentCloudBhResourceUpdate(d *schema.ResourceData, meta interface
583647
return nil
584648
})
585649

650+
if reqErr != nil {
651+
log.Printf("[CRITAL]%s disable external access bh resource failed, reason:%+v", logId, reqErr)
652+
return reqErr
653+
}
654+
655+
// wait
656+
waitReq := bhv20230418.NewDescribeResourcesRequest()
657+
waitReq.ResourceIds = []*string{&resourceId}
658+
reqErr = resource.Retry(tccommon.ReadRetryTimeout*7, func() *resource.RetryError {
659+
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseBhV20230418Client().DescribeResourcesWithContext(ctx, waitReq)
660+
if e != nil {
661+
return tccommon.RetryError(e)
662+
} else {
663+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, waitReq.GetAction(), waitReq.ToJsonString(), result.ToJsonString())
664+
}
665+
666+
if result == nil || result.Response == nil || result.Response.ResourceSet == nil || len(result.Response.ResourceSet) == 0 {
667+
return resource.NonRetryableError(fmt.Errorf("Describe bh resource failed, Response is nil."))
668+
}
669+
670+
externalAccess := result.Response.ResourceSet[0].ExternalAccess
671+
if externalAccess == nil {
672+
return resource.NonRetryableError(fmt.Errorf("ExternalAccess is nil."))
673+
}
674+
675+
if *externalAccess == 1 {
676+
return nil
677+
}
678+
679+
return resource.RetryableError(fmt.Errorf("Enable external access is still running...External access is %d", *externalAccess))
680+
})
681+
586682
if reqErr != nil {
587683
log.Printf("[CRITAL]%s enable external access bh resource failed, reason:%+v", logId, reqErr)
588684
return reqErr
@@ -605,6 +701,38 @@ func resourceTencentCloudBhResourceUpdate(d *schema.ResourceData, meta interface
605701
log.Printf("[CRITAL]%s disable external access bh resource failed, reason:%+v", logId, reqErr)
606702
return reqErr
607703
}
704+
705+
// wait
706+
waitReq := bhv20230418.NewDescribeResourcesRequest()
707+
waitReq.ResourceIds = []*string{&resourceId}
708+
reqErr = resource.Retry(tccommon.ReadRetryTimeout*7, func() *resource.RetryError {
709+
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseBhV20230418Client().DescribeResourcesWithContext(ctx, waitReq)
710+
if e != nil {
711+
return tccommon.RetryError(e)
712+
} else {
713+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, waitReq.GetAction(), waitReq.ToJsonString(), result.ToJsonString())
714+
}
715+
716+
if result == nil || result.Response == nil || result.Response.ResourceSet == nil || len(result.Response.ResourceSet) == 0 {
717+
return resource.NonRetryableError(fmt.Errorf("Describe bh resource failed, Response is nil."))
718+
}
719+
720+
externalAccess := result.Response.ResourceSet[0].ExternalAccess
721+
if externalAccess == nil {
722+
return resource.NonRetryableError(fmt.Errorf("ExternalAccess is nil."))
723+
}
724+
725+
if *externalAccess == 0 {
726+
return nil
727+
}
728+
729+
return resource.RetryableError(fmt.Errorf("Disable external access is still running...External access is %d", *externalAccess))
730+
})
731+
732+
if reqErr != nil {
733+
log.Printf("[CRITAL]%s disable external access bh resource failed, reason:%+v", logId, reqErr)
734+
return reqErr
735+
}
608736
}
609737
}
610738
}

tencentcloud/services/bh/resource_tc_bh_resource.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,7 @@ resource "tencentcloud_bh_resource" "example" {
1616
deploy_zone = "ap-guangzhou-6"
1717
cidr_block = "192.168.11.0/24"
1818
vpc_cidr_block = "192.168.0.0/16"
19+
intranet_access = 1
20+
external_access = 1
1921
}
2022
```
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package bh
2+
3+
import (
4+
"context"
5+
"log"
6+
7+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
8+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
9+
bhv20230418 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bh/v20230418"
10+
11+
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
12+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
13+
)
14+
15+
func ResourceTencentCloudBhSyncDevicesToIoaOperation() *schema.Resource {
16+
return &schema.Resource{
17+
Create: resourceTencentCloudBhSyncDevicesToIoaOperationCreate,
18+
Read: resourceTencentCloudBhSyncDevicesToIoaOperationRead,
19+
Delete: resourceTencentCloudBhSyncDevicesToIoaOperationDelete,
20+
Schema: map[string]*schema.Schema{
21+
"device_id_set": {
22+
Type: schema.TypeSet,
23+
Required: true,
24+
ForceNew: true,
25+
Description: "Asset ID collection. Assets must be bound to bastion host instances that support IOA functionality. Maximum 200 assets can be synchronized at a time.",
26+
Elem: &schema.Schema{
27+
Type: schema.TypeInt,
28+
},
29+
},
30+
},
31+
}
32+
}
33+
34+
func resourceTencentCloudBhSyncDevicesToIoaOperationCreate(d *schema.ResourceData, meta interface{}) error {
35+
defer tccommon.LogElapsed("resource.tencentcloud_bh_sync_devices_to_ioa_operation.create")()
36+
defer tccommon.InconsistentCheck(d, meta)()
37+
38+
var (
39+
logId = tccommon.GetLogId(tccommon.ContextNil)
40+
ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
41+
request = bhv20230418.NewSyncDevicesToIOARequest()
42+
deviceIds []string
43+
)
44+
45+
if v, ok := d.GetOk("device_id_set"); ok {
46+
deviceIdSetSet := v.(*schema.Set).List()
47+
for i := range deviceIdSetSet {
48+
deviceIdSet := deviceIdSetSet[i].(int)
49+
request.DeviceIdSet = append(request.DeviceIdSet, helper.IntUint64(deviceIdSet))
50+
deviceIds = append(deviceIds, helper.IntToStr(deviceIdSet))
51+
}
52+
}
53+
54+
reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
55+
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseBhV20230418Client().SyncDevicesToIOAWithContext(ctx, request)
56+
if e != nil {
57+
return tccommon.RetryError(e)
58+
} else {
59+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
60+
}
61+
62+
return nil
63+
})
64+
65+
if reqErr != nil {
66+
log.Printf("[CRITAL]%s create bh sync devices to ioa operation failed, reason:%+v", logId, reqErr)
67+
return reqErr
68+
}
69+
70+
d.SetId(helper.HashStrings(deviceIds))
71+
return resourceTencentCloudBhSyncDevicesToIoaOperationRead(d, meta)
72+
}
73+
74+
func resourceTencentCloudBhSyncDevicesToIoaOperationRead(d *schema.ResourceData, meta interface{}) error {
75+
defer tccommon.LogElapsed("resource.tencentcloud_bh_sync_devices_to_ioa_operation.read")()
76+
defer tccommon.InconsistentCheck(d, meta)()
77+
78+
return nil
79+
}
80+
81+
func resourceTencentCloudBhSyncDevicesToIoaOperationDelete(d *schema.ResourceData, meta interface{}) error {
82+
defer tccommon.LogElapsed("resource.tencentcloud_bh_sync_devices_to_ioa_operation.delete")()
83+
defer tccommon.InconsistentCheck(d, meta)()
84+
85+
return nil
86+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Provides a resource to create a BH sync devices to ioa operation
2+
3+
Example Usage
4+
5+
```hcl
6+
resource "tencentcloud_bh_sync_devices_to_ioa_operation" "example" {
7+
device_id_set = [
8+
1934,
9+
1964,
10+
1895,
11+
]
12+
}
13+
```
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package bh_test
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
8+
tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
9+
)
10+
11+
func TestAccTencentCloudBhSyncDevicesToIoaOperationResource_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+
Config: testAccBhSyncDevicesToIoaOperation,
20+
Check: resource.ComposeTestCheckFunc(
21+
resource.TestCheckResourceAttrSet("tencentcloud_bh_sync_devices_to_ioa_operation.example", "id"),
22+
),
23+
}},
24+
})
25+
}
26+
27+
const testAccBhSyncDevicesToIoaOperation = `
28+
resource "tencentcloud_bh_sync_devices_to_ioa_operation" "example" {
29+
device_id_set = [
30+
1934,
31+
1964,
32+
1895,
33+
]
34+
}
35+
`

0 commit comments

Comments
 (0)