Skip to content

Commit 1887ecc

Browse files
tongyimingmikatong
andauthored
mongodb-sharding support import (#1566)
* mongodb-sharding support import * add changelog --------- Co-authored-by: mikatong <mikatong@tencent.com>
1 parent 475c402 commit 1887ecc

File tree

11 files changed

+138
-36
lines changed

11 files changed

+138
-36
lines changed

.changelog/1566.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_mongodb_sharding_instance: support import.
3+
```

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ require (
5454
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/lighthouse v1.0.413
5555
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.0.535
5656
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mariadb v1.0.532
57-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.588
57+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.600
5858
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.518
5959
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.584
6060
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.540

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -568,6 +568,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mariadb v1.0.532 h1:3PC
568568
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mariadb v1.0.532/go.mod h1:lb1pdGQn9dzyXmq6+NkpN4avTVRvG+ziqFtOeL5D7y4=
569569
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.588 h1:VfIklzFS9JFl4PrrR9Dk3jcEkgoaAkMrq/BUMk60M6c=
570570
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.588/go.mod h1:bAyanoZH6UqaapJOc6hTZACz/hi5AWJw2sa6oCQ5u0Y=
571+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.600 h1:lcKfsxsVw2PnU8CzCAOrrteEVC5dPwzGUCxSTYdC5ys=
572+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.600/go.mod h1:xdx+BE6goMwlA9R0S4xCGT4R9C5uIJ1qRPhmc1xVnt8=
571573
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.518 h1:XClo3Xa5F9pko91olHT85aZXXcRkQiOYBCMqm8+tHG8=
572574
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.518/go.mod h1:WDTvvrrc90KE+90iizkoSQRsoSSQ3881eBC6NeypmTI=
573575
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.584 h1:FJxYOAolkBhXjQMWoiTek9Ag0bslcKFHyrM7w2Jsxos=

tencentcloud/basic_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -725,7 +725,7 @@ locals {
725725
// End of TKE Service
726726

727727
// MongoDB
728-
728+
const defaultMongoDBSecurityGroupId = "sg-if748odn"
729729
const DefaultMongoDBSpec = `
730730
data "tencentcloud_mongodb_zone_config" "zone_config" {
731731
available_zone = "ap-guangzhou-6"
@@ -738,6 +738,9 @@ variable "engine_versions" {
738738
"4.2": "MONGO_42_WT"
739739
}
740740
}
741+
variable "sg_id" {
742+
default = "` + defaultMongoDBSecurityGroupId + `"
743+
}
741744
742745
locals {
743746
filtered_spec = [for i in data.tencentcloud_mongodb_zone_config.zone_config.list: i if lookup(i, "machine_type") == "HIO10G" && lookup(i, "engine_version") != "3.2"]

tencentcloud/resource_tc_mongodb_sharding_instance.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,13 @@ resource "tencentcloud_mongodb_sharding_instance" "mongodb" {
2323
}
2424
```
2525
26+
Import
27+
28+
Mongodb sharding instance can be imported using the id, e.g.
29+
30+
```
31+
$ terraform import tencentcloud_mongodb_sharding_instance.mongodb cmgo-41s6jwy4
32+
```
2633
*/
2734
package tencentcloud
2835

@@ -68,6 +75,9 @@ func resourceTencentCloudMongodbShardingInstance() *schema.Resource {
6875
Read: resourceMongodbShardingInstanceRead,
6976
Update: resourceMongodbShardingInstanceUpdate,
7077
Delete: resourceMongodbShardingInstanceDelete,
78+
Importer: &schema.ResourceImporter{
79+
State: schema.ImportStatePassthrough,
80+
},
7181

7282
Schema: mongodbShardingInstanceInfo,
7383
}
@@ -360,6 +370,20 @@ func resourceMongodbShardingInstanceRead(d *schema.ResourceData, meta interface{
360370
_ = d.Set("vip", instance.Vip)
361371
_ = d.Set("vport", instance.Vport)
362372
_ = d.Set("create_time", instance.CreateTime)
373+
_ = d.Set("mongos_cpu", instance.MongosCpuNum)
374+
_ = d.Set("mongos_memory", instance.MongosMemory)
375+
_ = d.Set("mongos_node_num", instance.MongosNodeNum)
376+
_ = d.Set("auto_renew_flag", instance.AutoRenewFlag)
377+
378+
groups, err := mongodbService.DescribeSecurityGroup(ctx, instanceId)
379+
if err != nil {
380+
return err
381+
}
382+
groupIds := make([]string, 0)
383+
for _, group := range groups {
384+
groupIds = append(groupIds, *group.SecurityGroupId)
385+
}
386+
_ = d.Set("security_groups", groupIds)
363387

364388
tags := make(map[string]string, len(instance.Tags))
365389
for _, tag := range instance.Tags {

tencentcloud/resource_tc_mongodb_sharding_instance_test.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ func TestAccTencentCloudMongodbShardingInstanceResource_postpaid(t *testing.T) {
3636
resource.TestCheckResourceAttr("tencentcloud_mongodb_sharding_instance.mongodb", "tags.test", "test"),
3737
resource.TestCheckResourceAttr("tencentcloud_mongodb_sharding_instance.mongodb", "charge_type", MONGODB_CHARGE_TYPE_POSTPAID),
3838
resource.TestCheckNoResourceAttr("tencentcloud_mongodb_sharding_instance.mongodb", "prepaid_period"),
39+
resource.TestCheckNoResourceAttr("tencentcloud_mongodb_sharding_instance.mongodb", "security_groups"),
3940
),
4041
},
4142
{
@@ -47,6 +48,12 @@ func TestAccTencentCloudMongodbShardingInstanceResource_postpaid(t *testing.T) {
4748
resource.TestCheckResourceAttr("tencentcloud_mongodb_sharding_instance.mongodb", "tags.abc", "abc"),
4849
),
4950
},
51+
{
52+
ResourceName: "tencentcloud_mongodb_sharding_instance.mongodb",
53+
ImportState: true,
54+
ImportStateVerify: true,
55+
ImportStateVerifyIgnore: []string{"password"},
56+
},
5057
},
5158
})
5259
}
@@ -132,6 +139,7 @@ resource "tencentcloud_mongodb_sharding_instance" "mongodb" {
132139
tags = {
133140
test = "test"
134141
}
142+
security_groups = [var.sg_id]
135143
}
136144
`
137145

@@ -154,6 +162,7 @@ resource "tencentcloud_mongodb_sharding_instance" "mongodb" {
154162
tags = {
155163
abc = "abc"
156164
}
165+
security_groups = [var.sg_id]
157166
}
158167
`
159168

tencentcloud/service_tencentcloud_mongodb.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,3 +394,22 @@ func (me *MongodbService) OfflineIsolatedDBInstance(ctx context.Context, instanc
394394
}
395395
return nil
396396
}
397+
398+
func (me *MongodbService) DescribeSecurityGroup(ctx context.Context, instanceId string) (groups []*mongodb.SecurityGroup, errRet error) {
399+
logId := getLogId(ctx)
400+
request := mongodb.NewDescribeSecurityGroupRequest()
401+
request.InstanceId = helper.String(instanceId)
402+
ratelimit.Check(request.GetAction())
403+
response, err := me.client.UseMongodbClient().DescribeSecurityGroup(request)
404+
if err != nil {
405+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]",
406+
logId, request.GetAction(), request.ToJsonString(), err.Error())
407+
errRet = err
408+
return
409+
}
410+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]",
411+
logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
412+
413+
groups = response.Response.Groups
414+
return
415+
}

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb/v20190725/client.go

Lines changed: 2 additions & 0 deletions
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/mongodb/v20190725/models.go

Lines changed: 65 additions & 33 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/modules.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/lighthouse/v20200324
601601
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live/v20180801
602602
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mariadb v1.0.532
603603
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mariadb/v20170312
604-
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.588
604+
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.600
605605
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb/v20190725
606606
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.518
607607
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor/v20180724

0 commit comments

Comments
 (0)