From cd7ddb521c4f1023b61641f5f400e9c40f09d148 Mon Sep 17 00:00:00 2001 From: Zippo-Wang <852420284@qq.com> Date: Fri, 5 Jan 2024 17:05:06 +0800 Subject: [PATCH] Revert "feat(AOM): import AOM service_discovery_rule resource (#1036)" This reverts commit ce5226076faebe96481c05c51f5c9776915cf283. --- docs/resources/aom_service_discovery_rule.md | 147 ----------- ...eengine_aom_service_discovery_rule_test.go | 228 ------------------ 2 files changed, 375 deletions(-) delete mode 100644 docs/resources/aom_service_discovery_rule.md delete mode 100644 flexibleengine/acceptance/resource_flexibleengine_aom_service_discovery_rule_test.go diff --git a/docs/resources/aom_service_discovery_rule.md b/docs/resources/aom_service_discovery_rule.md deleted file mode 100644 index 0e9d3d932..000000000 --- a/docs/resources/aom_service_discovery_rule.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -subcategory: "Application Operations Management (AOM)" ---- - -# flexibleengine_aom_service_discovery_rule - -Manages an AOM service discovery rule resource within FlexibleEngine. - -## Example Usage - -### Basic example - -```hcl -resource "flexibleengine_aom_service_discovery_rule" "discovery_rule" { - name = "test-rule" - priority = 9999 - detect_log_enabled = "true" - discovery_rule_enabled = "true" - is_default_rule = "false" - log_file_suffix = ["log"] - service_type = "Java" - - discovery_rules { - check_content = ["java"] - check_mode = "contain" - check_type = "cmdLine" - } - - log_path_rules { - name_type = "cmdLineHash" - args = ["java"] - value = ["/tmp/log"] - } - - name_rules { - service_name_rule { - name_type = "str" - args = ["java"] - } - application_name_rule { - name_type = "str" - args = ["java"] - } - } -} -``` - -## Argument Reference - -The following arguments are supported: - -* `region` - (Optional, String, ForceNew) The region in which to create the service discovery rule resource. If omitted, - the provider-level region will be used. Changing this creates a new resource. - -* `name` - (Required, String) Specifies the rule name, which contains 4 to 63 characters. It must start - with a lowercase letter but cannot end with a hyphen (-). Only digits, lowercase letters, and hyphens are allowed. - -* `service_type` - (Required, String) Specifies the service type, which is used only for rule classification and UI display. - You can enter any field. For example, enter Java or Python by technology stack, or enter collector or database by function. - -* `discovery_rules` - (Required, List) Specifies the discovery rule. If the array contains multiple conditions, only the - processes that meet all the conditions will be matched. If the value of `check_type` is **cmdLine**, set the value of - `check_mode` to **contain**. `check_content` is in the format of ["xxx"], indicating that the process must contain - the xxx parameter. If the value of `check_type` is **env**, set the value of `check_mode` to **contain**. - `check_content` is in the format of ["k1","v1"], indicating that the process must contain the environment variable - whose name is k1 and value is v1. If the value of `check_type` is **scope**, set the value of `check_mode` - to **equals**. `check_content` is in the format of ["hostId1","hostId2"], indicating that the rule takes effect only - on specified nodes. If no nodes are specified, the rule applies to all nodes of the project. - + `check_type` - (Required, String) Specifies the match type. The values can be **cmdLine**, **env** and **scope**. - + `check_mode` - (Required, String) Specifies the match condition. The values can be **contain** and **equals**. - + `check_content` - (Required, List) Specifies the matched value. This is a list of strings. - -* `name_rules` - (Required, List) Specifies the naming rules for discovered services and applications. - The [object](#name_rules_object) structure is documented below. - -* `log_file_suffix` - (Required, List) Specifies the log file suffix. This is a list of strings. - The values can be: **log**, **trace**, and **out**. - -* `detect_log_enabled` - (Optional, Bool) Specifies whether to enable log collection. The default value is true. - -* `priority` - (Optional, Int) Specifies the rule priority. Value range: 1 to 9999. The default value is 9999. - -* `discovery_rule_enabled` - (Optional, Bool) Specifies whether the rule is enabled. The default value is true. - -* `is_default_rule` - (Optional, Bool) Specifies whether the rule is the default one. The default value is false. - -* `log_path_rules` - (Optional, List) Specifies the log path configuration rule. If cmdLineHash is a fixed string, - logs in the specified log path or log file are collected. Otherwise, only the files whose names end with - .log or .trace are collected. If the value of `name_type` is **cmdLineHash**, args is in the format of ["00001"] and - value is in the format of ["/xxx/xx.log"], indicating that the log path is /xxx/xx.log when the startup command is 00001. - + `name_type` - (Required, String) Specifies the value type, which can be **cmdLineHash**. - + `args` - (Required, List) Specifies the command. This is a list of strings. - + `value` - (Required, List) Specifies the log path. This is a list of strings. - - -The `name_rules` block supports: - -* `service_name_rule` - (Required, List) Specifies the service name rule. If there are multiple objects in the array, - the character strings extracted from these objects constitute the service name. If the value of `name_type` is - **cmdLine**, `args` is in the format of ["start", "end"], indicating that the characters between start and end - in the command are extracted. If the value of `name_type` is **env**, `args` is in the format of ["aa"], - indicating that the environment variable named aa is extracted. If the value of `name_type` is **str**, `args` is in the - format of ["fix"], indicating that the service name is suffixed with fix. If the value of `name_type` is - **cmdLineHash**, `args` is in the format of ["0001"] and `value` is in the format of ["ser"], indicating that the - service name is ser when the startup command is 0001. The [object](#basic_name_rule_object) structure is - documented below. - -* `application_name_rule` - (Required, List) Specifies the application name rule. If the value of `name_type` is - **cmdLine**, `args` is in the format of ["start", "end"], indicating that the characters between start and end in - the command are extracted. If the value of `name_type` is **env**, `args` is in the format of ["aa"], indicating that - the environment variable named aa is extracted. If the value of `name_type` is **str**, `args` is in the format of - ["fix"], indicating that the application name is suffixed with fix. If the value of `name_type` is **cmdLineHash**, - `args` is in the format of ["0001"] and `value` is in the format of ["ser"], indicating that the application name is - ser when the startup command is 0001. The [object](#basic_name_rule_object) structure is documented below. - - -The `service_name_rule` block and `application_name_rule` block support: - -* `name_type` - (Required, String) Specifies the value type. The value can be **cmdLineHash**, **cmdLine**, **env** -and **str**. -* `args` - (Required, List) Specifies the input value. -* `value` - (Optional, List) Specifies the application name, which is mandatory only when the value of -`name_type` is **cmdLineHash**. - -## Attribute Reference - -In addition to all arguments above, the following attributes are exported: - -* `id` - Indicates the resource ID of the service discovery rule. The value is the rule name. - -* `rule_id` - The rule ID in uuid format. - -## Timeouts - -This resource provides the following timeouts configuration options: - -* `create` - Default is 5 minutes. -* `update` - Default is 5 minutes. -* `delete` - Default is 5 minutes. - -## Import - -AOM service discovery rules can be imported using the `name`, e.g. - -```shell -terraform import flexibleengine_aom_service_discovery_rule.alarm_rule rule_name -``` diff --git a/flexibleengine/acceptance/resource_flexibleengine_aom_service_discovery_rule_test.go b/flexibleengine/acceptance/resource_flexibleengine_aom_service_discovery_rule_test.go deleted file mode 100644 index 435af0f56..000000000 --- a/flexibleengine/acceptance/resource_flexibleengine_aom_service_discovery_rule_test.go +++ /dev/null @@ -1,228 +0,0 @@ -package acceptance - -import ( - "fmt" - "testing" - "time" - - "github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud/services/acceptance" - aomservice "github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud/services/aom" - - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" - "github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud/config" - - aom "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/aom/v2/model" -) - -func getServiceDiscoveryRuleResourceFunc(conf *config.Config, state *terraform.ResourceState) (interface{}, error) { - c, err := conf.HcAomV2Client(OS_REGION_NAME) - if err != nil { - return nil, fmt.Errorf("error creating AOM client: %s", err) - } - - // wait 30 seconds before listing the rule, to avoid error - // lintignore:R018 - time.Sleep(30 * time.Second) - - response, err := c.ListServiceDiscoveryRules(&aom.ListServiceDiscoveryRulesRequest{}) - if err != nil { - return nil, fmt.Errorf("error retrieving AOM service discovery rule: %s", state.Primary.ID) - } - - allRules := *response.AppRules - - return aomservice.FilterRules(allRules, state.Primary.ID) -} - -func TestAccAOMServiceDiscoveryRule_basic(t *testing.T) { - var ar aom.QueryAlarmResult - rName := acceptance.RandomAccResourceNameWithDash() - rNameUpdate := rName + "-update" - resourceName := "flexibleengine_aom_service_discovery_rule.test" - - rc := acceptance.InitResourceCheck( - resourceName, - &ar, - getServiceDiscoveryRuleResourceFunc, - ) - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { testAccPreCheck(t) }, - ProviderFactories: TestAccProviderFactories, - CheckDestroy: rc.CheckResourceDestroy(), - Steps: []resource.TestStep{ - { - Config: testAOMServiceDiscoveryRule_basic(rName), - Check: resource.ComposeTestCheckFunc( - rc.CheckResourceExists(), - resource.TestCheckResourceAttr(resourceName, "name", rName), - resource.TestCheckResourceAttr(resourceName, "priority", "9999"), - resource.TestCheckResourceAttr(resourceName, "detect_log_enabled", "true"), - resource.TestCheckResourceAttr(resourceName, "discovery_rule_enabled", "true"), - resource.TestCheckResourceAttr(resourceName, "is_default_rule", "true"), - resource.TestCheckResourceAttr(resourceName, "log_file_suffix.0", "log"), - resource.TestCheckResourceAttr(resourceName, "service_type", "Python"), - resource.TestCheckResourceAttr(resourceName, "discovery_rules.0.check_content.0", "python"), - resource.TestCheckResourceAttr(resourceName, "log_path_rules.0.args.0", "python"), - resource.TestCheckResourceAttr( - resourceName, "name_rules.0.service_name_rule.0.args.0", "python"), - resource.TestCheckResourceAttr( - resourceName, "name_rules.0.application_name_rule.0.args.0", "python"), - ), - }, - { - ResourceName: resourceName, - ImportState: true, - ImportStateVerify: true, - }, - { - Config: testAOMServiceDiscoveryRule_update(rNameUpdate), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr(resourceName, "name", rNameUpdate), - resource.TestCheckResourceAttr(resourceName, "priority", "9998"), - resource.TestCheckResourceAttr(resourceName, "detect_log_enabled", "false"), - resource.TestCheckResourceAttr(resourceName, "discovery_rule_enabled", "false"), - resource.TestCheckResourceAttr(resourceName, "is_default_rule", "false"), - resource.TestCheckResourceAttr(resourceName, "log_file_suffix.0", "trace"), - resource.TestCheckResourceAttr(resourceName, "service_type", "Java"), - resource.TestCheckResourceAttr(resourceName, "discovery_rules.0.check_content.0", "java"), - resource.TestCheckResourceAttr(resourceName, "log_path_rules.0.args.0", "java"), - resource.TestCheckResourceAttr( - resourceName, "name_rules.0.service_name_rule.0.args.0", "java"), - resource.TestCheckResourceAttr( - resourceName, "name_rules.0.application_name_rule.0.args.0", "java"), - ), - }, - { - Config: testAOMServiceDiscoveryRule_update2(rNameUpdate), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr(resourceName, "name", rNameUpdate), - resource.TestCheckResourceAttr(resourceName, "priority", "9998"), - resource.TestCheckResourceAttr(resourceName, "detect_log_enabled", "false"), - resource.TestCheckResourceAttr(resourceName, "discovery_rule_enabled", "false"), - resource.TestCheckResourceAttr(resourceName, "is_default_rule", "false"), - resource.TestCheckResourceAttr(resourceName, "log_file_suffix.0", "out"), - resource.TestCheckResourceAttr(resourceName, "service_type", "Java"), - resource.TestCheckResourceAttr(resourceName, "discovery_rules.0.check_content.0", "java"), - resource.TestCheckResourceAttr(resourceName, "log_path_rules.0.args.0", "java"), - resource.TestCheckResourceAttr( - resourceName, "name_rules.0.service_name_rule.0.args.0", "java"), - resource.TestCheckResourceAttr( - resourceName, "name_rules.0.application_name_rule.0.args.0", "java"), - ), - }, - }, - }) -} - -func testAOMServiceDiscoveryRule_basic(rName string) string { - return fmt.Sprintf(` -resource "flexibleengine_aom_service_discovery_rule" "test" { - name = "%s" - priority = 9999 - detect_log_enabled = true - discovery_rule_enabled = true - is_default_rule = true - log_file_suffix = ["log"] - service_type = "Python" - - discovery_rules { - check_content = ["python"] - check_mode = "contain" - check_type = "cmdLine" - } - - log_path_rules { - name_type = "cmdLineHash" - args = ["python"] - value = ["/tmp/log"] - } - - name_rules { - service_name_rule { - name_type = "str" - args = ["python"] - } - application_name_rule { - name_type = "str" - args = ["python"] - } - } -} -`, rName) -} - -func testAOMServiceDiscoveryRule_update(rName string) string { - return fmt.Sprintf(` -resource "flexibleengine_aom_service_discovery_rule" "test" { - name = "%s" - priority = 9998 - detect_log_enabled = false - discovery_rule_enabled = false - is_default_rule = false - log_file_suffix = ["trace"] - service_type = "Java" - - discovery_rules { - check_content = ["java"] - check_mode = "contain" - check_type = "cmdLine" - } - - log_path_rules { - name_type = "cmdLineHash" - args = ["java"] - value = ["/tmp/log"] - } - - name_rules { - service_name_rule { - name_type = "str" - args = ["java"] - } - application_name_rule { - name_type = "str" - args = ["java"] - } - } -} -`, rName) -} - -func testAOMServiceDiscoveryRule_update2(rName string) string { - return fmt.Sprintf(` -resource "flexibleengine_aom_service_discovery_rule" "test" { - name = "%s" - priority = 9998 - detect_log_enabled = false - discovery_rule_enabled = false - is_default_rule = false - log_file_suffix = ["out"] - service_type = "Java" - - discovery_rules { - check_content = ["java"] - check_mode = "contain" - check_type = "cmdLine" - } - - log_path_rules { - name_type = "cmdLineHash" - args = ["java"] - value = ["/tmp/log"] - } - - name_rules { - service_name_rule { - name_type = "str" - args = ["java"] - } - application_name_rule { - name_type = "str" - args = ["java"] - } - } -} -`, rName) -}