diff --git a/docs/data-sources/compute_servergroups.md b/docs/data-sources/compute_servergroups.md new file mode 100644 index 00000000..99d610f5 --- /dev/null +++ b/docs/data-sources/compute_servergroups.md @@ -0,0 +1,46 @@ +--- +subcategory: "Elastic Cloud Server (ECS)" +--- + +# flexibleengine_compute_servergroups + +Use this data source to get the list of the compute server groups. + +## Example Usage + +```hcl +variable "name" {} + +data "flexibleengine_compute_servergroups" "test" { + name = var.name +} +``` + +## Argument Reference + +The following arguments are supported: + +* `region` - (Optional, String) Specifies the region in which to obtain the server groups. + If omitted, the provider-level region will be used. + +* `name` - (Optional, String) Specifies the server group name. + +## Attribute Reference + +In addition to all arguments above, the following attributes are exported: + +* `id` - The data source ID. + +* `servergroups` - List of ECS server groups details. The [servergroups](#ecs_servergroups) object structure is + documented below. + + +The `servergroups` block supports: + +* `id` - The server group ID in UUID format. + +* `name` - The server group name. + +* `policies` - The set of policies for the server group. + +* `members` - An array of one or more instance ID attached to the server group. diff --git a/flexibleengine/acceptance/data_source_flexibleengine_compute_servergroups_test.go b/flexibleengine/acceptance/data_source_flexibleengine_compute_servergroups_test.go new file mode 100644 index 00000000..7dc11d4f --- /dev/null +++ b/flexibleengine/acceptance/data_source_flexibleengine_compute_servergroups_test.go @@ -0,0 +1,46 @@ +package acceptance + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + "github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud/services/acceptance" +) + +func TestAccComputeServerGroupsDataSource_basic(t *testing.T) { + rName := acceptance.RandomAccResourceNameWithDash() + dataSourceName := "data.flexibleengine_compute_servergroups.test" + dc := acceptance.InitDataSourceCheck(dataSourceName) + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + ProviderFactories: TestAccProviderFactories, + Steps: []resource.TestStep{ + { + Config: testAccComputeServerGroupsDataSource_basic(rName), + Check: resource.ComposeTestCheckFunc( + dc.CheckResourceExists(), + resource.TestCheckResourceAttr(dataSourceName, "name", rName), + resource.TestCheckResourceAttr(dataSourceName, "servergroups.#", "1"), + resource.TestCheckResourceAttrSet(dataSourceName, "servergroups.0.id"), + resource.TestCheckResourceAttrSet(dataSourceName, "servergroups.0.name"), + ), + }, + }, + }) +} + +func testAccComputeServerGroupsDataSource_basic(rName string) string { + return fmt.Sprintf(` +resource "flexibleengine_compute_servergroup_v2" "test" { + name = "%s" + policies = ["anti-affinity"] +} + +data "flexibleengine_compute_servergroups" "test" { + name = flexibleengine_compute_servergroup_v2.test.name +} +`, rName) +} diff --git a/flexibleengine/provider.go b/flexibleengine/provider.go index 989b7a00..bc108872 100644 --- a/flexibleengine/provider.go +++ b/flexibleengine/provider.go @@ -9,7 +9,6 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud" "github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud/config" "github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud/helper/mutexkv" @@ -26,6 +25,7 @@ import ( "github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud/services/dms" "github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud/services/drs" "github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud/services/dws" + "github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud/services/ecs" "github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud/services/eip" "github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud/services/elb" "github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud/services/eps" @@ -297,7 +297,10 @@ func Provider() *schema.Provider { "flexibleengine_dms_rocketmq_broker": dms.DataSourceDmsRocketMQBroker(), "flexibleengine_dms_rocketmq_instances": dms.DataSourceDmsRocketMQInstances(), - "flexibleengine_dws_flavors": dws.DataSourceDwsFlavors(), + "flexibleengine_dws_flavors": dws.DataSourceDwsFlavors(), + + "flexibleengine_compute_servergroups": ecs.DataSourceComputeServerGroups(), + "flexibleengine_elb_certificate": elb.DataSourceELBCertificateV3(), "flexibleengine_fgs_dependencies": fgs.DataSourceFunctionGraphDependencies(), @@ -496,9 +499,10 @@ func Provider() *schema.Provider { "flexibleengine_dli_table": dli.ResourceDliTable(), "flexibleengine_dli_flinksql_job": dli.ResourceFlinkSqlJob(), "flexibleengine_drs_job": drs.ResourceDrsJob(), - "flexibleengine_fgs_dependency": fgs.ResourceFgsDependency(), - "flexibleengine_fgs_function": fgs.ResourceFgsFunctionV2(), - "flexibleengine_fgs_trigger": fgs.ResourceFunctionGraphTrigger(), + + "flexibleengine_fgs_dependency": fgs.ResourceFgsDependency(), + "flexibleengine_fgs_function": fgs.ResourceFgsFunctionV2(), + "flexibleengine_fgs_trigger": fgs.ResourceFunctionGraphTrigger(), "flexibleengine_gaussdb_cassandra_instance": gaussdb.ResourceGeminiDBInstanceV3(), "flexibleengine_gaussdb_influx_instance": gaussdb.ResourceGaussDBInfluxInstanceV3(),