From 2993cb6f2c95ab0edbc22ff7daa1d53579ad0468 Mon Sep 17 00:00:00 2001 From: hellertang Date: Wed, 8 Jun 2022 13:06:55 +0800 Subject: [PATCH] fix monitor testcases --- .../resource_tc_monitor_alarm_policy_test.go | 104 ++++++++++++ ...resource_tc_monitor_binding_object_test.go | 152 ------------------ 2 files changed, 104 insertions(+), 152 deletions(-) create mode 100644 tencentcloud/resource_tc_monitor_alarm_policy_test.go delete mode 100644 tencentcloud/resource_tc_monitor_binding_object_test.go diff --git a/tencentcloud/resource_tc_monitor_alarm_policy_test.go b/tencentcloud/resource_tc_monitor_alarm_policy_test.go new file mode 100644 index 0000000000..fbc153cb1a --- /dev/null +++ b/tencentcloud/resource_tc_monitor_alarm_policy_test.go @@ -0,0 +1,104 @@ +package tencentcloud + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/helper/resource" +) + +func TestAccTencentCloudMonitorAlarmPolicyResource(t *testing.T) { + t.Parallel() + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccMonitorAlarmPolicy, + Check: resource.ComposeTestCheckFunc( + //resource.TestCheckResourceAttrSet("tencentcloud_monitor_alarm_policy.policy", "create_time"), + resource.TestCheckResourceAttr("tencentcloud_monitor_alarm_policy.policy", "policy_name", "terraform"), + ), + }, + }, + }) +} + +const testAccMonitorAlarmPolicy string = ` +resource "tencentcloud_monitor_alarm_policy" "policy" { + enable = 1 + monitor_type = "MT_QCE" + namespace = "cvm_device" + notice_ids = [ + "notice-f2svbu3w", + ] + policy_name = "terraform" + project_id = 0 + + conditions { + is_union_rule = 0 + + rules { + continue_period = 5 + description = "CPUUtilization" + is_power_notice = 0 + metric_name = "CpuUsage" + notice_frequency = 7200 + operator = "gt" + period = 60 + rule_type = "STATIC" + unit = "%" + value = "95" + } + rules { + continue_period = 5 + description = "PublicBandwidthUtilization" + is_power_notice = 0 + metric_name = "Outratio" + notice_frequency = 7200 + operator = "gt" + period = 60 + rule_type = "STATIC" + unit = "%" + value = "95" + } + rules { + continue_period = 5 + description = "MemoryUtilization" + is_power_notice = 0 + metric_name = "MemUsage" + notice_frequency = 7200 + operator = "gt" + period = 60 + rule_type = "STATIC" + unit = "%" + value = "95" + } + rules { + continue_period = 5 + description = "DiskUtilization" + is_power_notice = 0 + metric_name = "CvmDiskUsage" + notice_frequency = 7200 + operator = "gt" + period = 60 + rule_type = "STATIC" + unit = "%" + value = "95" + } + } + + event_conditions { + continue_period = 0 + description = "DiskReadonly" + is_power_notice = 0 + metric_name = "disk_readonly" + notice_frequency = 0 + period = 0 + } + + policy_tag { + key = "test-tag" + value = "unit-test" + } +} +` diff --git a/tencentcloud/resource_tc_monitor_binding_object_test.go b/tencentcloud/resource_tc_monitor_binding_object_test.go deleted file mode 100644 index d326a97cf4..0000000000 --- a/tencentcloud/resource_tc_monitor_binding_object_test.go +++ /dev/null @@ -1,152 +0,0 @@ -package tencentcloud - -import ( - "context" - "fmt" - "log" - "strconv" - "testing" - - "github.com/hashicorp/terraform-plugin-sdk/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/terraform" -) - -func TestAccTencentCloudMonitorBindingObjectResource(t *testing.T) { - t.Parallel() - resource.Test(t, resource.TestCase{ - PreCheck: func() { testAccPreCheck(t) }, - Providers: testAccProviders, - CheckDestroy: testAccCheckMonitorBindingObjectDestroy, - Steps: []resource.TestStep{ - { - Config: testAccMonitorBindingObjectInstance, - Check: resource.ComposeTestCheckFunc( - testAccCheckMonitorBindingObjectExists("tencentcloud_monitor_binding_object.binding"), - resource.TestCheckResourceAttrSet("tencentcloud_monitor_binding_object.binding", "group_id"), - resource.TestCheckResourceAttr("tencentcloud_monitor_binding_object.binding", "dimensions.#", "1"), - ), - }, - }, - }) -} - -func testAccCheckMonitorBindingObjectDestroy(s *terraform.State) error { - - for _, rs := range s.RootModule().Resources { - if rs.Type != "tencentcloud_monitor_binding_object" { - continue - } - groupIdStr := rs.Primary.Attributes["group_id"] - - if groupIdStr == "" { - return fmt.Errorf("miss group_id[%v] ", groupIdStr) - } - groupId, err := strconv.ParseInt(groupIdStr, 10, 64) - if err != nil { - return fmt.Errorf("id [%d] is broken", groupId) - } - - logId := getLogId(contextNil) - ctx := context.WithValue(context.TODO(), logIdKey, logId) - - service := MonitorService{client: testAccProvider.Meta().(*TencentCloudClient).apiV3Conn} - - info, err := service.DescribePolicyGroup(ctx, groupId) - if err != nil { - err = resource.Retry(readRetryTimeout, func() *resource.RetryError { - info, err = service.DescribePolicyGroup(ctx, groupId) - if err != nil { - return retryError(err) - } - return nil - }) - } - if err != nil { - return err - } - - if info != nil { - return fmt.Errorf("group %d found in DescribePolicyGroup", groupId) - } - log.Printf("[DEBUG]group and receivers %d delete ok", groupId) - - } - return nil -} - -func testAccCheckMonitorBindingObjectExists(n string) resource.TestCheckFunc { - return func(s *terraform.State) error { - rs, ok := s.RootModule().Resources[n] - - if !ok { - return fmt.Errorf("resource %s not found", n) - } - groupIdStr := rs.Primary.Attributes["group_id"] - - if groupIdStr == "" { - return fmt.Errorf("miss group_id[%v] ", groupIdStr) - } - groupId, err := strconv.ParseInt(groupIdStr, 10, 64) - if err != nil { - return fmt.Errorf("id [%d] is broken", groupId) - } - logId := getLogId(contextNil) - ctx := context.WithValue(context.TODO(), logIdKey, logId) - - service := MonitorService{client: testAccProvider.Meta().(*TencentCloudClient).apiV3Conn} - - info, err := service.DescribePolicyGroup(ctx, groupId) - if err != nil { - err = resource.Retry(readRetryTimeout, func() *resource.RetryError { - info, err = service.DescribePolicyGroup(ctx, groupId) - if err != nil { - return retryError(err) - } - return nil - }) - } - if err != nil { - return err - } - if info == nil { - return fmt.Errorf("group %d not found in DescribePolicyGroup", groupId) - } - - objects, err := service.DescribeBindingPolicyObjectList(ctx, groupId) - - if err != nil { - return err - } - if len(objects) < 1 { - return fmt.Errorf("group %d binding object fail", groupId) - } - return nil - } -} - -const testAccMonitorBindingObjectInstance string = ` -data "tencentcloud_instances" "instances" { -} -resource "tencentcloud_monitor_policy_group" "group" { - group_name = "terraform_test" - policy_view_name = "cvm_device" - remark = "this is a test policy group" - is_union_rule = 1 - conditions { - metric_id = 33 - alarm_notify_type = 1 - alarm_notify_period = 600 - calc_type = 1 - calc_value = 3 - calc_period = 300 - continue_period = 2 - } -} - -resource "tencentcloud_monitor_binding_object" "binding" { - group_id = tencentcloud_monitor_policy_group.group.id - dimensions { - dimensions_json = "{\"unInstanceId\":\"${data.tencentcloud_instances.instances.instance_list[0].instance_id}\"}" - } -} -`