Skip to content

Commit a923112

Browse files
tongyimingmikatong
and
mikatong
authored
feat(tmp): [117601240]datasource tencentcloud_monitor_tmp_instances (#2731)
* datasource tencentcloud_monitor_tmp_instances * add changelog --------- Co-authored-by: mikatong <[email protected]>
1 parent 5a83d4e commit a923112

9 files changed

+901
-0
lines changed

.changelog/2731.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:new-data-source
2+
tencentcloud_monitor_tmp_instances
3+
```

tencentcloud/provider.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,7 @@ func Provider() *schema.Provider {
555555
"tencentcloud_monitor_alarm_monitor_type": monitor.DataSourceTencentCloudMonitorAlarmMonitorType(),
556556
"tencentcloud_monitor_statistic_data": monitor.DataSourceTencentCloudMonitorStatisticData(),
557557
"tencentcloud_monitor_tmp_regions": tmp.DataSourceTencentCloudMonitorTmpRegions(),
558+
"tencentcloud_monitor_tmp_instances": tmp.DataSourceTencentCloudMonitorTmpInstances(),
558559
"tencentcloud_postgresql_instances": postgresql.DataSourceTencentCloudPostgresqlInstances(),
559560
"tencentcloud_postgresql_specinfos": postgresql.DataSourceTencentCloudPostgresqlSpecinfos(),
560561
"tencentcloud_postgresql_xlogs": postgresql.DataSourceTencentCloudPostgresqlXlogs(),

tencentcloud/provider.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -810,6 +810,7 @@ Cloud Monitor(Monitor)
810810
Managed Service for Prometheus(TMP)
811811
Data Source
812812
tencentcloud_monitor_tmp_regions
813+
tencentcloud_monitor_tmp_instances
813814

814815
Resource
815816
tencentcloud_monitor_tmp_instance

tencentcloud/services/monitor/service_tencentcloud_monitor.go

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2541,3 +2541,69 @@ func (me *MonitorService) DeleteMonitorTmpAlertGroupById(ctx context.Context, in
25412541

25422542
return
25432543
}
2544+
2545+
func (me *MonitorService) DescribeMonitorTmpInstancesByFilter(ctx context.Context, param map[string]interface{}) (tmpInstances []*monitor.PrometheusInstancesItem, errRet error) {
2546+
var (
2547+
logId = tccommon.GetLogId(ctx)
2548+
request = monitor.NewDescribePrometheusInstancesRequest()
2549+
)
2550+
2551+
defer func() {
2552+
if errRet != nil {
2553+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error())
2554+
}
2555+
}()
2556+
2557+
for k, v := range param {
2558+
if k == "InstanceIds" {
2559+
request.InstanceIds = v.([]*string)
2560+
}
2561+
if k == "InstanceStatus" {
2562+
request.InstanceStatus = v.([]*int64)
2563+
}
2564+
if k == "InstanceName" {
2565+
request.InstanceName = v.(*string)
2566+
}
2567+
if k == "Zones" {
2568+
request.Zones = v.([]*string)
2569+
}
2570+
if k == "TagFilters" {
2571+
request.TagFilters = v.([]*monitor.PrometheusTag)
2572+
}
2573+
if k == "IPv4Address" {
2574+
request.IPv4Address = v.([]*string)
2575+
}
2576+
if k == "InstanceChargeType" {
2577+
request.InstanceChargeType = v.(*int64)
2578+
}
2579+
}
2580+
2581+
ratelimit.Check(request.GetAction())
2582+
2583+
var (
2584+
offset int64 = 0
2585+
limit int64 = 20
2586+
)
2587+
for {
2588+
request.Offset = &offset
2589+
request.Limit = &limit
2590+
response, err := me.client.UseMonitorClient().DescribePrometheusInstances(request)
2591+
if err != nil {
2592+
errRet = err
2593+
return
2594+
}
2595+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
2596+
2597+
if response == nil || len(response.Response.InstanceSet) < 1 {
2598+
break
2599+
}
2600+
tmpInstances = append(tmpInstances, response.Response.InstanceSet...)
2601+
if len(response.Response.InstanceSet) < int(limit) {
2602+
break
2603+
}
2604+
2605+
offset += limit
2606+
}
2607+
2608+
return
2609+
}

0 commit comments

Comments
 (0)