Skip to content

Commit da1102f

Browse files
authored
Feat/modify tmp resource (#1181)
* optimize tmp instance * update tmp
1 parent b861e89 commit da1102f

22 files changed

+1592
-132
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ require (
3333
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.283
3434
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.199
3535
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.412
36-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.438
36+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.443
3737
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.385
3838
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.359
3939
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dayu v1.0.335
@@ -46,7 +46,7 @@ require (
4646
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.199
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/lighthouse v1.0.413
4848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.199
49-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.438
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.443
5050
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.391
5151
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.290
5252
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.199

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -496,6 +496,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.430 h1:mGlG
496496
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.430/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
497497
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.438 h1:tz7YTepMgtehsPI7nTXEZ6W9eOaXR0rvLMtqwHDzhZ8=
498498
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.438/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
499+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.443 h1:5kS48/GyzW49t4eB8dkNAoDGMeVLEadfTrB1Wpr07qw=
500+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.443/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
499501
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.385 h1:8bwloRxRwSADSK48KxaUeO9JHmmgniNGJbA7Or/HUEk=
500502
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.385/go.mod h1:PMxA0L4o8Fbx/6+ju1cAMAU7x2bV4C6e/LTqVe745yM=
501503
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.359 h1:cNKqelPgUxrJkLY0Azd2QHr/UMYOPPnmqs88clt2akk=
@@ -527,6 +529,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.430 h1:cnB
527529
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.430/go.mod h1:Iw2Q3oExnpSR7pGnC/2nKfUaUS2GAniG1HKSfWU5Pgg=
528530
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.438 h1:zf+NkKb0fgurjgCdpApnLjip7bxU7fxejI8HW5pTHl8=
529531
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.438/go.mod h1:VgHc7QaLfYqdurDBb+HwXaDRuFbpsnZIKkjSPl748JA=
532+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.443 h1:5uPNOJb4uC9oZuXzSv0GtQOGGBEWA9JA1Yhoyh+9mfk=
533+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.443/go.mod h1:QGyCdlNx2tu94GMlJDQAwz5eVFa2Gfq3JD0WZ65QqGE=
530534
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.391 h1:1yZh5MrlFqawVGhLdd38hi5HoaKc4LgB+8cEgLT2Qo4=
531535
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.391/go.mod h1:BZSQiBjNQ+6/gL1fFXBr/0BOuPTdHmSYoIg4/AkmZB4=
532536
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.290 h1:osYZxh9ApEc8UpvIMwjAUfdl7ytRcWUpcnnqLIpiJ/U=

tencentcloud/provider.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,9 +426,12 @@ Monitor
426426
tencentcloud_monitor_alarm_policy
427427
tencentcloud_monitor_tmp_instance
428428
tencentcloud_monitor_tmp_cvm_agent
429+
tencentcloud_monitor_tmp_scrape_job
430+
tencentcloud_monitor_tmp_exporter_integration
429431
tencentcloud_monitor_tmp_alert_rule
430432
tencentcloud_monitor_tmp_recording_rule
431433
tencentcloud_monitor_tmp_tke_template
434+
tencentcloud_monitor_tmp_tke_alert_policy
432435
433436
PostgreSQL
434437
Data Source
@@ -1073,9 +1076,12 @@ func Provider() terraform.ResourceProvider {
10731076
"tencentcloud_monitor_alarm_policy": resourceTencentCloudMonitorAlarmPolicy(),
10741077
"tencentcloud_monitor_tmp_instance": resourceTencentCloudMonitorTmpInstance(),
10751078
"tencentcloud_monitor_tmp_cvm_agent": resourceTencentCloudMonitorTmpCvmAgent(),
1079+
"tencentcloud_monitor_tmp_scrape_job": resourceTencentCloudMonitorTmpScrapeJob(),
1080+
"tencentcloud_monitor_tmp_exporter_integration": resourceTencentCloudMonitorTmpExporterIntegration(),
10761081
"tencentcloud_monitor_tmp_alert_rule": resourceTencentCloudMonitorTmpAlertRule(),
10771082
"tencentcloud_monitor_tmp_recording_rule": resourceTencentCloudMonitorTmpRecordingRule(),
10781083
"tencentcloud_monitor_tmp_tke_template": resourceTencentCloudMonitorTmpTkeTemplate(),
1084+
"tencentcloud_monitor_tmp_tke_alert_policy": resourceTencentCloudMonitorTmpTkeAlertPolicy(),
10791085
"tencentcloud_mongodb_standby_instance": resourceTencentCloudMongodbStandbyInstance(),
10801086
"tencentcloud_elasticsearch_instance": resourceTencentCloudElasticsearchInstance(),
10811087
"tencentcloud_postgresql_instance": resourceTencentCloudPostgresqlInstance(),

tencentcloud/resource_tc_cls_index.go

Lines changed: 54 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ func resourceTencentCloudClsIndex() *schema.Resource {
9595
Type: schema.TypeList,
9696
MaxItems: 1,
9797
Optional: true,
98+
Computed: true,
9899
Description: "Index rule.",
99100
Elem: &schema.Resource{
100101
Schema: map[string]*schema.Schema{
@@ -438,38 +439,54 @@ func resourceTencentCloudClsIndexRead(d *schema.ResourceData, meta interface{})
438439
ruleMap := map[string]interface{}{}
439440

440441
if res.Rule.FullText != nil {
441-
fullTextMap := map[string]interface{}{
442-
"case_sensitive": res.Rule.FullText.CaseSensitive,
443-
"tokenizer": res.Rule.FullText.Tokenizer,
444-
"contain_z_h": res.Rule.FullText.ContainZH,
442+
FullTextMap := map[string]interface{}{}
443+
if res.Rule.FullText.CaseSensitive != nil {
444+
FullTextMap["case_sensitive"] = res.Rule.FullText.CaseSensitive
445+
}
446+
if res.Rule.FullText.Tokenizer != nil {
447+
FullTextMap["tokenizer"] = res.Rule.FullText.Tokenizer
448+
}
449+
if res.Rule.FullText.ContainZH != nil {
450+
FullTextMap["contain_z_h"] = res.Rule.FullText.ContainZH
445451
}
446-
ruleMap["full_text"] = []interface{}{fullTextMap}
452+
453+
ruleMap["full_text"] = []interface{}{FullTextMap}
447454
}
448455

449456
if res.Rule.KeyValue != nil {
450-
ruleKeyValueMap := map[string]interface{}{
451-
"case_sensitive": res.Rule.KeyValue.CaseSensitive,
457+
RuleKeyValueMap := map[string]interface{}{}
458+
if res.Rule.KeyValue.CaseSensitive != nil {
459+
RuleKeyValueMap["case_sensitive"] = res.Rule.KeyValue.CaseSensitive
452460
}
461+
453462
if res.Rule.KeyValue.KeyValues != nil {
454463
keyValuesList := []interface{}{}
455464
for _, keyValueInfo := range res.Rule.KeyValue.KeyValues {
456-
keyValueInfoMap := map[string]interface{}{
457-
"key": keyValueInfo.Key,
465+
keyValueInfoMap := map[string]interface{}{}
466+
if keyValueInfo.Key != nil {
467+
keyValueInfoMap["key"] = keyValueInfo.Key
458468
}
459469
if keyValueInfo.Value != nil {
460-
valueInfoMap := map[string]interface{}{
461-
"type": keyValueInfo.Value.Type,
462-
"tokenizer": keyValueInfo.Value.Tokenizer,
463-
"sql_flag": keyValueInfo.Value.SqlFlag,
464-
"contain_z_h": keyValueInfo.Value.ContainZH,
470+
valueInfoMap := map[string]interface{}{}
471+
if keyValueInfo.Value.Type != nil {
472+
valueInfoMap["type"] = keyValueInfo.Value.Type
473+
}
474+
if keyValueInfo.Value.Tokenizer != nil {
475+
valueInfoMap["tokenizer"] = keyValueInfo.Value.Tokenizer
476+
}
477+
if keyValueInfo.Value.SqlFlag != nil {
478+
valueInfoMap["sql_flag"] = keyValueInfo.Value.SqlFlag
479+
}
480+
if keyValueInfo.Value.ContainZH != nil {
481+
valueInfoMap["contain_z_h"] = keyValueInfo.Value.ContainZH
465482
}
466483
keyValueInfoMap["value"] = []interface{}{valueInfoMap}
467484
}
468485
keyValuesList = append(keyValuesList, keyValueInfoMap)
469486
}
470-
ruleKeyValueMap["key_values"] = keyValuesList
487+
RuleKeyValueMap["key_values"] = keyValuesList
471488
}
472-
ruleMap["key_value"] = []interface{}{ruleKeyValueMap}
489+
ruleMap["key_value"] = []interface{}{RuleKeyValueMap}
473490
}
474491

475492
if res.Rule.Tag != nil {
@@ -529,7 +546,7 @@ func resourceTencentCloudClsIndexUpdate(d *schema.ResourceData, meta interface{}
529546

530547
request.TopicId = &id
531548

532-
if d.HasChange("rule") || d.HasChange("status") || d.HasChange("include_internal_fields") || d.HasChange("metadata_flag") {
549+
if d.HasChange("rule") {
533550
if dMap, ok := helper.InterfacesHeadMap(d, "rule"); ok {
534551
ruleInfo := cls.RuleInfo{}
535552
if fullTextMap, ok := helper.InterfaceToMap(dMap, "full_text"); ok {
@@ -618,34 +635,38 @@ func resourceTencentCloudClsIndexUpdate(d *schema.ResourceData, meta interface{}
618635
}
619636
request.Rule = &ruleInfo
620637
}
638+
}
621639

640+
if d.HasChange("status") {
622641
if v, ok := d.GetOk("status"); ok {
623642
request.Status = helper.Bool(v.(bool))
624643
}
625-
644+
}
645+
if d.HasChange("include_internal_fields") {
626646
if v, ok := d.GetOk("include_internal_fields"); ok {
627647
request.IncludeInternalFields = helper.Bool(v.(bool))
628648
}
629-
649+
}
650+
if d.HasChange("metadata_flag") {
630651
if v, ok := d.GetOk("metadata_flag"); ok {
631652
request.MetadataFlag = helper.IntUint64(v.(int))
632653
}
633-
634-
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
635-
result, e := meta.(*TencentCloudClient).apiV3Conn.UseClsClient().ModifyIndex(request)
636-
if e != nil {
637-
return retryError(e)
638-
} else {
639-
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
640-
logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
641-
}
642-
return nil
643-
})
644-
645-
if err != nil {
646-
return err
654+
}
655+
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
656+
result, e := meta.(*TencentCloudClient).apiV3Conn.UseClsClient().ModifyIndex(request)
657+
if e != nil {
658+
return retryError(e)
659+
} else {
660+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
661+
logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
647662
}
663+
return nil
664+
})
665+
666+
if err != nil {
667+
return err
648668
}
669+
649670
return resourceTencentCloudClsIndexRead(d, meta)
650671
}
651672

tencentcloud/resource_tc_monitor_tmp_cvm_agent.go

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@ Example Usage
55
66
```hcl
77
resource "tencentcloud_monitor_tmp_cvm_agent" "tmpCvmAgent" {
8-
instance_id = "prom-c89b3b3u"
9-
name = "test"
8+
instance_id = "prom-dko9d0nu"
9+
name = "agent"
1010
}
1111
1212
```
1313
Import
1414
1515
monitor tmpCvmAgent can be imported using the id, e.g.
1616
```
17-
$ terraform import tencentcloud_monitor_tmp_cvm_agent.tmpCvmAgent instanceId#agentName
17+
$ terraform import tencentcloud_monitor_tmp_cvm_agent.tmpCvmAgent tmpCvmAgent_id
1818
```
1919
*/
2020
package tencentcloud
@@ -35,7 +35,7 @@ func resourceTencentCloudMonitorTmpCvmAgent() *schema.Resource {
3535
return &schema.Resource{
3636
Read: resourceTencentCloudMonitorTmpCvmAgentRead,
3737
Create: resourceTencentCloudMonitorTmpCvmAgentCreate,
38-
Update: resourceTencentCloudMonitorTmpCvmAgentUpdate,
38+
//Update: resourceTencentCloudMonitorTmpCvmAgentUpdate,
3939
Delete: resourceTencentCloudMonitorTmpCvmAgentDelete,
4040
Importer: &schema.ResourceImporter{
4141
State: schema.ImportStatePassthrough,
@@ -44,11 +44,14 @@ func resourceTencentCloudMonitorTmpCvmAgent() *schema.Resource {
4444
"instance_id": {
4545
Type: schema.TypeString,
4646
Required: true,
47+
ForceNew: true,
4748
Description: "Instance id.",
4849
},
50+
4951
"name": {
5052
Type: schema.TypeString,
5153
Required: true,
54+
ForceNew: true,
5255
Description: "Agent name.",
5356
},
5457
},
@@ -62,20 +65,19 @@ func resourceTencentCloudMonitorTmpCvmAgentCreate(d *schema.ResourceData, meta i
6265
logId := getLogId(contextNil)
6366

6467
var (
65-
request = monitor.NewCreatePrometheusAgentRequest()
66-
//response *monitor.CreatePrometheusAgentResponse
68+
request = monitor.NewCreatePrometheusAgentRequest()
69+
response *monitor.CreatePrometheusAgentResponse
6770
)
6871

6972
var instanceId string
70-
var agentName string
7173

7274
if v, ok := d.GetOk("instance_id"); ok {
7375
instanceId = v.(string)
7476
request.InstanceId = helper.String(instanceId)
7577
}
78+
7679
if v, ok := d.GetOk("name"); ok {
77-
agentName = v.(string)
78-
request.Name = helper.String(agentName)
80+
request.Name = helper.String(v.(string))
7981
}
8082

8183
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
@@ -86,7 +88,7 @@ func resourceTencentCloudMonitorTmpCvmAgentCreate(d *schema.ResourceData, meta i
8688
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
8789
logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
8890
}
89-
//response = result
91+
response = result
9092
return nil
9193
})
9294

@@ -95,13 +97,14 @@ func resourceTencentCloudMonitorTmpCvmAgentCreate(d *schema.ResourceData, meta i
9597
return err
9698
}
9799

98-
d.SetId(strings.Join([]string{instanceId, agentName}, FILED_SP))
100+
tmpCvmAgentId := *response.Response.AgentId
99101

102+
d.SetId(strings.Join([]string{instanceId, tmpCvmAgentId}, FILED_SP))
100103
return resourceTencentCloudMonitorTmpCvmAgentRead(d, meta)
101104
}
102105

103106
func resourceTencentCloudMonitorTmpCvmAgentRead(d *schema.ResourceData, meta interface{}) error {
104-
defer logElapsed("resource.tencentcloud_monitor_tmp_cvm_agent.read")()
107+
defer logElapsed("resource.tencentcloud_monitor_tmpCvmAgent.read")()
105108
defer inconsistentCheck(d, meta)()
106109

107110
logId := getLogId(contextNil)
@@ -114,20 +117,21 @@ func resourceTencentCloudMonitorTmpCvmAgentRead(d *schema.ResourceData, meta int
114117
return fmt.Errorf("id is broken, id is %s", d.Id())
115118
}
116119

117-
tmpCvmAgent, err := service.DescribeMonitorTmpCvmAgentById(ctx, ids[0], ids[1])
120+
tmpCvmAgent, err := service.DescribeMonitorTmpCvmAgent(ctx, ids[0], ids[1])
118121

119122
if err != nil {
120123
return err
121124
}
122125

123126
if tmpCvmAgent == nil {
124127
d.SetId("")
125-
return fmt.Errorf("resource `tencentcloud_monitor_tmp_cvm_agent` does not exist")
128+
return fmt.Errorf("resource `tmpCvmAgent` %s does not exist", ids[1])
126129
}
127130

128131
if tmpCvmAgent.InstanceId != nil {
129132
_ = d.Set("instance_id", tmpCvmAgent.InstanceId)
130133
}
134+
131135
if tmpCvmAgent.Name != nil {
132136
_ = d.Set("name", tmpCvmAgent.Name)
133137
}
@@ -146,5 +150,5 @@ func resourceTencentCloudMonitorTmpCvmAgentDelete(d *schema.ResourceData, meta i
146150
defer logElapsed("resource.tencentcloud_monitor_tmp_cvm_agent.delete")()
147151
defer inconsistentCheck(d, meta)()
148152

149-
return fmt.Errorf("resource `tencentcloud_monitor_tmp_cvm_agent` does not support delete")
153+
return nil
150154
}

0 commit comments

Comments
 (0)