Skip to content

Commit 5225dd7

Browse files
authored
support data source tencentcloud_mps_schedules (#2185)
* support data source tencentcloud_mps_schedules * add doc
1 parent e7c58c5 commit 5225dd7

File tree

8 files changed

+5218
-1
lines changed

8 files changed

+5218
-1
lines changed

.changelog/2185.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_mps_schedules
3+
```

tencentcloud/basic_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1138,3 +1138,11 @@ resource "tencentcloud_eni_attachment" "foo" {
11381138
`
11391139

11401140
//End of Clb
1141+
1142+
// MPS
1143+
const (
1144+
defaultMpsScheduleId = 24685
1145+
defaultMpsScheduleName = "keep_mps_schedule_001"
1146+
)
1147+
1148+
//End of MPS

tencentcloud/data_source_tc_mps_schedules.go

Lines changed: 4604 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package tencentcloud
2+
3+
import (
4+
"fmt"
5+
"testing"
6+
7+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
8+
)
9+
10+
func TestAccTencentCloudMpsSchedulesDataSource_basic(t *testing.T) {
11+
t.Parallel()
12+
resource.Test(t, resource.TestCase{
13+
PreCheck: func() {
14+
testAccPreCheck(t)
15+
},
16+
Providers: testAccProviders,
17+
Steps: []resource.TestStep{
18+
{
19+
Config: testAccMpsSchedulesDataSource_none,
20+
Check: resource.ComposeTestCheckFunc(
21+
testAccCheckTencentCloudDataSourceID("data.tencentcloud_mps_schedules.schedules"),
22+
resource.TestCheckResourceAttrSet("data.tencentcloud_mps_schedules.schedules", "schedule_info_set.#"),
23+
resource.TestCheckResourceAttrSet("data.tencentcloud_mps_schedules.schedules", "schedule_info_set.0.activities.#"),
24+
resource.TestCheckResourceAttrSet("data.tencentcloud_mps_schedules.schedules", "schedule_info_set.0.create_time"),
25+
resource.TestCheckResourceAttrSet("data.tencentcloud_mps_schedules.schedules", "schedule_info_set.0.update_time"),
26+
),
27+
},
28+
{
29+
Config: fmt.Sprintf(testAccMpsSchedulesDataSource_specific_one, defaultMpsScheduleId),
30+
Check: resource.ComposeTestCheckFunc(
31+
testAccCheckTencentCloudDataSourceID("data.tencentcloud_mps_schedules.schedules"),
32+
resource.TestCheckResourceAttrSet("data.tencentcloud_mps_schedules.schedules", "schedule_ids.#"),
33+
resource.TestCheckTypeSetElemAttr("data.tencentcloud_mps_schedules.schedules", "schedule_ids.*", fmt.Sprint(defaultMpsScheduleId)),
34+
resource.TestCheckResourceAttr("data.tencentcloud_mps_schedules.schedules", "trigger_type", "CosFileUpload"),
35+
resource.TestCheckResourceAttr("data.tencentcloud_mps_schedules.schedules", "status", "Disabled"),
36+
resource.TestCheckResourceAttrSet("data.tencentcloud_mps_schedules.schedules", "schedule_info_set.#"),
37+
resource.TestCheckResourceAttr("data.tencentcloud_mps_schedules.schedules", "schedule_info_set.0.schedule_id", fmt.Sprint(defaultMpsScheduleId)),
38+
resource.TestCheckResourceAttr("data.tencentcloud_mps_schedules.schedules", "schedule_info_set.0.schedule_name", defaultMpsScheduleName),
39+
resource.TestCheckResourceAttr("data.tencentcloud_mps_schedules.schedules", "schedule_info_set.0.status", "Disabled"),
40+
resource.TestCheckResourceAttrSet("data.tencentcloud_mps_schedules.schedules", "schedule_info_set.0.trigger.#"),
41+
resource.TestCheckResourceAttrSet("data.tencentcloud_mps_schedules.schedules", "schedule_info_set.0.activities.#"),
42+
resource.TestCheckResourceAttrSet("data.tencentcloud_mps_schedules.schedules", "schedule_info_set.0.output_storage.#"),
43+
resource.TestCheckResourceAttrSet("data.tencentcloud_mps_schedules.schedules", "schedule_info_set.0.output_dir"),
44+
resource.TestCheckResourceAttrSet("data.tencentcloud_mps_schedules.schedules", "schedule_info_set.0.task_notify_config.#"),
45+
resource.TestCheckResourceAttrSet("data.tencentcloud_mps_schedules.schedules", "schedule_info_set.0.create_time"),
46+
resource.TestCheckResourceAttrSet("data.tencentcloud_mps_schedules.schedules", "schedule_info_set.0.update_time"),
47+
),
48+
},
49+
},
50+
})
51+
}
52+
53+
const testAccMpsSchedulesDataSource_none = `
54+
55+
data "tencentcloud_mps_schedules" "schedules" {
56+
}
57+
58+
`
59+
60+
const testAccMpsSchedulesDataSource_specific_one = `
61+
62+
data "tencentcloud_mps_schedules" "schedules" {
63+
schedule_ids = [%d]
64+
trigger_type = "CosFileUpload"
65+
status = "Disabled"
66+
}
67+
68+
`

tencentcloud/provider.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1580,6 +1580,9 @@ Tencent Service Framework(TSF)
15801580
tencentcloud_tsf_unit_namespace
15811581
15821582
Media Processing Service(MPS)
1583+
Data Source
1584+
tencentcloud_mps_schedules
1585+
15831586
Resource
15841587
tencentcloud_mps_workflow
15851588
tencentcloud_mps_enable_workflow_config
@@ -2245,6 +2248,7 @@ func Provider() *schema.Provider {
22452248
"tencentcloud_mariadb_sale_info": dataSourceTencentCloudMariadbSaleInfo(),
22462249
"tencentcloud_mariadb_slow_logs": dataSourceTencentCloudMariadbSlowLogs(),
22472250
"tencentcloud_mariadb_upgrade_price": dataSourceTencentCloudMariadbUpgradePrice(),
2251+
"tencentcloud_mps_schedules": dataSourceTencentCloudMpsSchedules(),
22482252
"tencentcloud_tdcpg_clusters": dataSourceTencentCloudTdcpgClusters(),
22492253
"tencentcloud_tdcpg_instances": dataSourceTencentCloudTdcpgInstances(),
22502254
"tencentcloud_cat_probe_data": dataSourceTencentCloudCatProbeData(),

tencentcloud/service_tencentcloud_mps.go

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -779,3 +779,58 @@ func (me *MpsService) DeleteMpsScheduleById(ctx context.Context, scheduleId stri
779779

780780
return
781781
}
782+
783+
func (me *MpsService) DescribeMpsSchedulesByFilter(ctx context.Context, param map[string]interface{}) (schedules []*mps.SchedulesInfo, errRet error) {
784+
var (
785+
logId = getLogId(ctx)
786+
request = mps.NewDescribeSchedulesRequest()
787+
)
788+
789+
defer func() {
790+
if errRet != nil {
791+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error())
792+
}
793+
}()
794+
795+
for k, v := range param {
796+
if k == "ScheduleIds" {
797+
request.ScheduleIds = helper.InterfacesIntInt64Point(v.([]interface{}))
798+
}
799+
if k == "TriggerType" {
800+
request.TriggerType = v.(*string)
801+
}
802+
if k == "Status" {
803+
request.Status = v.(*string)
804+
}
805+
}
806+
807+
ratelimit.Check(request.GetAction())
808+
809+
var (
810+
offset uint64 = 0
811+
limit uint64 = 20
812+
)
813+
814+
for {
815+
request.Offset = &offset
816+
request.Limit = &limit
817+
response, err := me.client.UseMpsClient().DescribeSchedules(request)
818+
if err != nil {
819+
errRet = err
820+
return
821+
}
822+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
823+
824+
if response == nil || len(response.Response.ScheduleInfoSet) < 1 {
825+
break
826+
}
827+
schedules = append(schedules, response.Response.ScheduleInfoSet...)
828+
if len(response.Response.ScheduleInfoSet) < int(limit) {
829+
break
830+
}
831+
832+
offset += limit
833+
}
834+
835+
return
836+
}

0 commit comments

Comments
 (0)