Skip to content

Commit 55f6884

Browse files
authored
fix(tdmq): [116841777] suport ip_rules params (#2659)
* add * add * add * add * add * add * add * add * add * add * add * add * add
1 parent 3e77bac commit 55f6884

File tree

12 files changed

+3449
-2503
lines changed

12 files changed

+3449
-2503
lines changed

.changelog/2659.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_tdmq_rocketmq_vip_instance: support `ip_rules` params
3+
```

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.860
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544
4848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.860
49-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.920
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.932
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
@@ -88,7 +88,7 @@ require (
8888
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcm v1.0.547
8989
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcr v1.0.696
9090
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533
91-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.825
91+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.932
9292
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578
9393
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.912
9494
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.916
@@ -111,6 +111,7 @@ require (
111111
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860
112112
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb v1.0.798
113113
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.831
114+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/region v1.0.920
114115
github.com/wI2L/jsondiff v0.3.0
115116
k8s.io/apimachinery v0.22.4
116117
)
@@ -304,7 +305,6 @@ require (
304305
github.com/subosito/gotenv v1.4.1 // indirect
305306
github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect
306307
github.com/tdakkota/asciicheck v0.2.0 // indirect
307-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/region v1.0.920 // indirect
308308
github.com/tetafro/godot v1.4.11 // indirect
309309
github.com/tidwall/gjson v1.17.0 // indirect
310310
github.com/tidwall/match v1.1.1 // indirect

go.sum

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -922,15 +922,17 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.860/go.mod
922922
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.873/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
923923
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.888 h1:FqVcZ+POUhckq6ZRlwOR819fsXp49YyizpmWZJYAAGg=
924924
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.888/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
925-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.910/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
926925
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.910 h1:u+rAnHhLixQaNYy8vtnuClj4kYWs77VAHEbi9jl8k/4=
927926
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.910/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
927+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.910/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
928928
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.912 h1:BDqRmR+2vLLHqKWYdgfUl0CDr9+augDBOEOEScLyQ80=
929929
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.912/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
930930
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.916 h1:30u2fFUGxaPB0VFpVtomiziXATxm/MjG53HCobM8KGI=
931931
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.916/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
932932
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.920 h1:Kmm4rJrdI7D29IMOTT2oNp70h0TGsZ3obaekS8hvYkU=
933933
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.920/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
934+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.932 h1:MB1+Ll6JxWTpZw/v0dMRvMEJhlcDKxK/JMQ8O5owRVc=
935+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.932/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
934936
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
935937
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860/go.mod h1:NZo1WplQcC314kMlCRUoy8NQju2BnolIJj7NAWgsuhY=
936938
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
@@ -1025,6 +1027,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533 h1:r6HQh
10251027
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533/go.mod h1:5sIIchyV9sXIVAqsD3UWts+qQJ0qoc55sL2WuiY8Ugs=
10261028
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.825 h1:jIAqpu+EeiKK1U0Sb7l1I6hMATYyXtv7IU8ZWNHPrgM=
10271029
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.825/go.mod h1:aaOidZKQTtM6vVgs5pnHryaLj9f+egPBpdQEylQxka4=
1030+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.932 h1:qBMRApryLiQOJ91xEybn3fb6zkWfa9sp8Tdult5Y1vY=
1031+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.932/go.mod h1:k2QG6A7u458viC4nZGM0Z0FNzKqQSJKgfqtxeqkqBDQ=
10281032
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578 h1:vBpQhUroO+FAslUmsDWGi8nvczsqZBWVgQwlnyT0Aj8=
10291033
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578/go.mod h1:UlojGQh/9wb7/uXPNi7PvMral1CNAskVDNgqJEV83l0=
10301034
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.758 h1:PRxMkSm3MX0vuWQSRO7pY0bwT8M2PEZW2BnKpZdjzK0=

tencentcloud/services/trocket/resource_tc_tdmq_rocketmq_vip_instance.go

Lines changed: 111 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package trocket
22

33
import (
4+
sdkErrors "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
45
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
56
svctdmq "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/tdmq"
67

@@ -32,7 +33,7 @@ func ResourceTencentCloudTdmqRocketmqVipInstance() *schema.Resource {
3233
"spec": {
3334
Required: true,
3435
Type: schema.TypeString,
35-
Description: "Instance specification: Basic type: `rocket-vip-basic-1`, Standard type: `rocket-vip-basic-2`, Advanced Type I: `rocket-vip-basic-3`, Advanced Type II: `rocket-vip-basic-4`.",
36+
Description: "Instance specification: Universal type, rocket-vip-basic-0, Basic type: `rocket-vip-basic-1`, Standard type: `rocket-vip-basic-2`, Advanced Type I: `rocket-vip-basic-3`, Advanced Type II: `rocket-vip-basic-4`.",
3637
},
3738
"node_count": {
3839
Required: true,
@@ -77,6 +78,30 @@ func ResourceTencentCloudTdmqRocketmqVipInstance() *schema.Resource {
7778
Type: schema.TypeInt,
7879
Description: "Purchase period, in months.",
7980
},
81+
"ip_rules": {
82+
Optional: true,
83+
Type: schema.TypeList,
84+
Description: "Public IP access control rules.",
85+
Elem: &schema.Resource{
86+
Schema: map[string]*schema.Schema{
87+
"ip_rule": {
88+
Type: schema.TypeString,
89+
Required: true,
90+
Description: "IP address block information.",
91+
},
92+
"allow": {
93+
Type: schema.TypeBool,
94+
Required: true,
95+
Description: "Whether to allow or deny.",
96+
},
97+
"remark": {
98+
Type: schema.TypeString,
99+
Required: true,
100+
Description: "Remark.",
101+
},
102+
},
103+
},
104+
},
80105
},
81106
}
82107
}
@@ -133,6 +158,26 @@ func resourceTencentCloudTdmqRocketmqVipInstanceCreate(d *schema.ResourceData, m
133158
request.TimeSpan = helper.IntInt64(v.(int))
134159
}
135160

161+
if v, ok := d.GetOk("ip_rules"); ok {
162+
for _, item := range v.([]interface{}) {
163+
dMap := item.(map[string]interface{})
164+
ipRule := tdmq.PublicAccessRule{}
165+
if v, ok := dMap["ip_rule"]; ok {
166+
ipRule.IpRule = helper.String(v.(string))
167+
}
168+
169+
if v, ok := dMap["allow"]; ok {
170+
ipRule.Allow = helper.Bool(v.(bool))
171+
}
172+
173+
if v, ok := dMap["remark"]; ok {
174+
ipRule.Remark = helper.String(v.(string))
175+
}
176+
177+
request.IpRules = append(request.IpRules, &ipRule)
178+
}
179+
}
180+
136181
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
137182
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseTdmqClient().CreateRocketMQVipInstance(request)
138183
if e != nil {
@@ -265,7 +310,7 @@ func resourceTencentCloudTdmqRocketmqVipInstanceUpdate(d *schema.ResourceData, m
265310

266311
request.InstanceId = &clusterId
267312

268-
immutableArgs := []string{"zone_ids", "vpc_info", "time_span"}
313+
immutableArgs := []string{"zone_ids", "vpc_info", "time_span", "ip_rules"}
269314

270315
for _, v := range immutableArgs {
271316
if d.HasChange(v) {
@@ -370,9 +415,73 @@ func resourceTencentCloudTdmqRocketmqVipInstanceDelete(d *schema.ResourceData, m
370415
clusterId = d.Id()
371416
)
372417

418+
// delete
373419
if err := service.DeleteTdmqRocketmqVipInstanceById(ctx, clusterId); err != nil {
374420
return err
375421
}
376422

423+
// wait status is 2
424+
deleteFlag := false
425+
request := tdmq.NewDescribeRocketMQVipInstanceDetailRequest()
426+
request.ClusterId = &clusterId
427+
err := resource.Retry(tccommon.WriteRetryTimeout*6, func() *resource.RetryError {
428+
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseTdmqClient().DescribeRocketMQVipInstanceDetail(request)
429+
if e != nil {
430+
if ee, ok := e.(*sdkErrors.TencentCloudSDKError); ok {
431+
if ee.Code == "ResourceNotFound.Instance" {
432+
deleteFlag = true
433+
return nil
434+
}
435+
}
436+
437+
return tccommon.RetryError(e)
438+
} else {
439+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
440+
}
441+
442+
if result.Response.ClusterInfo.InstanceStatus != nil && *result.Response.ClusterInfo.InstanceStatus == 2 {
443+
return nil
444+
}
445+
446+
return resource.RetryableError(fmt.Errorf("tdmq rocketmqVipInstance first deleting"))
447+
})
448+
449+
if err != nil {
450+
log.Printf("[CRITAL]%s delete cluster failed, reason:%+v", logId, err)
451+
return err
452+
}
453+
454+
if deleteFlag {
455+
return nil
456+
}
457+
458+
// delete again
459+
if err = service.DeleteTdmqRocketmqVipInstanceById(ctx, clusterId); err != nil {
460+
return err
461+
}
462+
463+
// wait done
464+
err = resource.Retry(tccommon.WriteRetryTimeout*6, func() *resource.RetryError {
465+
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseTdmqClient().DescribeRocketMQVipInstanceDetail(request)
466+
if e != nil {
467+
if ee, ok := e.(*sdkErrors.TencentCloudSDKError); ok {
468+
if ee.Code == "ResourceNotFound.Instance" {
469+
return nil
470+
}
471+
}
472+
473+
return tccommon.RetryError(e)
474+
} else {
475+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
476+
}
477+
478+
return resource.RetryableError(fmt.Errorf("tdmq rocketmqVipInstance second deleting"))
479+
})
480+
481+
if err != nil {
482+
log.Printf("[CRITAL]%s delete cluster failed, reason:%+v", logId, err)
483+
return err
484+
}
485+
377486
return nil
378487
}

tencentcloud/services/trocket/resource_tc_tdmq_rocketmq_vip_instance.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
11
Provides a resource to create a tdmq rocketmq_vip_instance
22

33
~> **NOTE:** The instance cannot be downgraded, Include parameters `node_count`, `spec`, `storage_size`.
4+
~> **NOTE:** If `spec` is `rocket-vip-basic-2`, configuration changes are not supported.
45

56
Example Usage
67

78
```hcl
9+
# query availability zones
810
data "tencentcloud_availability_zones" "zones" {}
911
12+
# create vpc
1013
resource "tencentcloud_vpc" "vpc" {
1114
name = "vpc-example"
1215
cidr_block = "10.0.0.0/16"
1316
}
1417
18+
# create subnet
1519
resource "tencentcloud_subnet" "subnet" {
1620
availability_zone = data.tencentcloud_availability_zones.zones.zones.1.name
1721
name = "subnet-example"
@@ -20,6 +24,7 @@ resource "tencentcloud_subnet" "subnet" {
2024
is_multicast = false
2125
}
2226
27+
# create rocketmq vip instance
2328
resource "tencentcloud_tdmq_rocketmq_vip_instance" "example" {
2429
name = "tx-example"
2530
spec = "rocket-vip-basic-2"
@@ -33,9 +38,13 @@ resource "tencentcloud_tdmq_rocketmq_vip_instance" "example" {
3338
vpc_info {
3439
vpc_id = tencentcloud_vpc.vpc.id
3540
subnet_id = tencentcloud_subnet.subnet.id
36-
3741
}
3842
3943
time_span = 1
44+
ip_rules {
45+
ip_rule = "0.0.0.0/0"
46+
allow = true
47+
remark = "remark."
48+
}
4049
}
4150
```

tencentcloud/services/trocket/resource_tc_tdmq_rocketmq_vip_instance_test.go

Lines changed: 57 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ import (
1414
sdkErrors "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
1515
)
1616

17-
// go test -i; go test -test.run TestAccTencentCloudTdmqRocketmqVipInstanceResource_basic -v
18-
func TestAccTencentCloudTdmqRocketmqVipInstanceResource_basic(t *testing.T) {
17+
// go test -i; go test -test.run TestAccTencentCloudNeedFixTdmqRocketmqVipInstanceResource_basic -v
18+
func TestAccTencentCloudNeedFixTdmqRocketmqVipInstanceResource_basic(t *testing.T) {
1919
t.Parallel()
2020
resource.Test(t, resource.TestCase{
2121
PreCheck: func() {
22-
tcacctest.AccPreCheckCommon(t, tcacctest.ACCOUNT_TYPE_PREPAY)
22+
tcacctest.AccPreCheck(t)
2323
},
2424
CheckDestroy: testAccCheckTdmqRocketmqVipInstanceDestroy,
2525
Providers: tcacctest.AccProviders,
@@ -29,13 +29,21 @@ func TestAccTencentCloudTdmqRocketmqVipInstanceResource_basic(t *testing.T) {
2929
Check: resource.ComposeTestCheckFunc(
3030
testAccCheckTdmqRocketmqVipInstanceExists("tencentcloud_tdmq_rocketmq_vip_instance.example"),
3131
resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rocketmq_vip_instance.example", "id"),
32+
resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rocketmq_vip_instance.example", "name"),
33+
resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rocketmq_vip_instance.example", "spec"),
34+
resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rocketmq_vip_instance.example", "node_count"),
35+
resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rocketmq_vip_instance.example", "storage_size"),
3236
),
3337
},
3438
{
3539
Config: testAccTdmqRocketmqVipInstanceUpdate,
3640
Check: resource.ComposeTestCheckFunc(
3741
testAccCheckTdmqRocketmqVipInstanceExists("tencentcloud_tdmq_rocketmq_vip_instance.example"),
3842
resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rocketmq_vip_instance.example", "id"),
43+
resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rocketmq_vip_instance.example", "name"),
44+
resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rocketmq_vip_instance.example", "spec"),
45+
resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rocketmq_vip_instance.example", "node_count"),
46+
resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rocketmq_vip_instance.example", "storage_size"),
3947
),
4048
},
4149
},
@@ -95,6 +103,21 @@ func testAccCheckTdmqRocketmqVipInstanceExists(r string) resource.TestCheckFunc
95103
const testAccTdmqRocketmqVipInstance = tcacctest.DefaultVpcSubnets + `
96104
data "tencentcloud_availability_zones" "zones" {}
97105
106+
# create vpc
107+
resource "tencentcloud_vpc" "vpc" {
108+
name = "vpc"
109+
cidr_block = "10.0.0.0/16"
110+
}
111+
112+
# create vpc subnet
113+
resource "tencentcloud_subnet" "subnet" {
114+
name = "subnet"
115+
vpc_id = tencentcloud_vpc.vpc.id
116+
availability_zone = "ap-guangzhou-6"
117+
cidr_block = "10.0.20.0/28"
118+
is_multicast = false
119+
}
120+
98121
resource "tencentcloud_tdmq_rocketmq_vip_instance" "example" {
99122
name = "tx-example"
100123
spec = "rocket-vip-basic-1"
@@ -106,32 +129,57 @@ resource "tencentcloud_tdmq_rocketmq_vip_instance" "example" {
106129
]
107130
108131
vpc_info {
109-
vpc_id = local.vpc_id
110-
subnet_id = local.subnet_id
132+
vpc_id = tencentcloud_vpc.vpc.id
133+
subnet_id = tencentcloud_subnet.subnet.id
111134
}
112135
113136
time_span = 1
137+
ip_rules {
138+
ip_rule = "0.0.0.0/0"
139+
allow = true
140+
remark = "remark."
141+
}
114142
}
115143
`
116144

117145
const testAccTdmqRocketmqVipInstanceUpdate = `
118146
data "tencentcloud_availability_zones" "zones" {}
119147
148+
# create vpc
149+
resource "tencentcloud_vpc" "vpc" {
150+
name = "vpc"
151+
cidr_block = "10.0.0.0/16"
152+
}
153+
154+
# create vpc subnet
155+
resource "tencentcloud_subnet" "subnet" {
156+
name = "subnet"
157+
vpc_id = tencentcloud_vpc.vpc.id
158+
availability_zone = "ap-guangzhou-6"
159+
cidr_block = "10.0.20.0/28"
160+
is_multicast = false
161+
}
162+
120163
resource "tencentcloud_tdmq_rocketmq_vip_instance" "example" {
121164
name = "tx-example-update"
122165
spec = "rocket-vip-basic-2"
123-
node_count = 3
124-
storage_size = 600
166+
node_count = 2
167+
storage_size = 200
125168
zone_ids = [
126169
data.tencentcloud_availability_zones.zones.zones.0.id,
127170
data.tencentcloud_availability_zones.zones.zones.1.id
128171
]
129172
130173
vpc_info {
131-
vpc_id = local.vpc_id
132-
subnet_id = local.subnet_id
174+
vpc_id = tencentcloud_vpc.vpc.id
175+
subnet_id = tencentcloud_subnet.subnet.id
133176
}
134177
135178
time_span = 1
179+
ip_rules {
180+
ip_rule = "0.0.0.0/0"
181+
allow = true
182+
remark = "remark."
183+
}
136184
}
137185
`

0 commit comments

Comments
 (0)