-
Notifications
You must be signed in to change notification settings - Fork 53
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(CSS): import CSS resource, unit test and document.
- Loading branch information
1 parent
7f7a32f
commit 0a3a90f
Showing
3 changed files
with
353 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
--- | ||
subcategory: "Cloud Search Service (CSS)" | ||
--- | ||
|
||
# flexibleengine_css_flavors_v1 | ||
|
||
Use this data source to get available flavors of FlexibleEngine CSS node instance. | ||
|
||
## Example Usage | ||
|
||
```hcl | ||
data "flexibleengine_css_flavors" "test" { | ||
type = "ess" | ||
version = "7.9.3" | ||
vcpus = 4 | ||
memory = 32 | ||
} | ||
``` | ||
|
||
## Argument Reference | ||
|
||
* `region` - (Optional, String) Specifies the region in which to obtain the CSS flavors. If omitted, the | ||
provider-level region will be used. | ||
|
||
* `type` - (Optional, String) Specifies the node instance type. The options are `ess`, `ess-cold`, `ess-master` | ||
and `ess-client`. | ||
|
||
* `version` - (Optional, String) Specifies the engine version. The options are `6.5.4`, `7.1.1`, `7.6.2`, `7.9.3` | ||
and `7.10.2`. | ||
|
||
* `name` - (Optional, String) Specifies the name of the CSS flavor. | ||
|
||
* `vcpus` - (Optional, Int) Specifies the number of vCPUs in the CSS flavor. | ||
|
||
* `memory` - (Optional, Int) Specifies the memory size(GB) in the CSS flavor. | ||
|
||
## Attribute Reference | ||
|
||
In addition to all arguments above, the following attributes are exported: | ||
|
||
* `id` - Indicates a data source ID in UUID format. | ||
|
||
* `flavors` - Indicates the flavor information. The [flavors](#css_flavors) object structure is documented below. | ||
|
||
<a name="css_flavors"></a> | ||
The `flavors` block supports: | ||
|
||
* `name` - The name of the CSS flavor. It is referenced by `node_config.flavor` in `flexibleengine_css_cluster`. | ||
|
||
* `id` - The ID of CSS flavor. | ||
|
||
* `region` - The region where the node resides. | ||
|
||
* `type` - The node instance type. | ||
|
||
* `version` - The engine version. | ||
|
||
* `vcpus` - The number of vCPUs. | ||
|
||
* `memory` - The memory size in GB. | ||
|
||
* `disk_range` - The disk capacity range of an instance, in GB. |
288 changes: 288 additions & 0 deletions
288
flexibleengine/acceptance/data_source_flexibleengine_css_flavors_test.go
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,288 @@ | ||
package acceptance | ||
|
||
import ( | ||
"testing" | ||
|
||
"github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud/services/acceptance" | ||
|
||
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" | ||
) | ||
|
||
func TestAccCssFlavorsDataSource_basic(t *testing.T) { | ||
var ( | ||
typeFilter = acceptance.InitDataSourceCheck("data.flexibleengine_css_flavors.type_filter") | ||
typeFilterCold = acceptance.InitDataSourceCheck("data.flexibleengine_css_flavors.type_filter_cold") | ||
typeFilterMaster = acceptance.InitDataSourceCheck("data.flexibleengine_css_flavors.type_filter_master") | ||
typeFilterClient = acceptance.InitDataSourceCheck("data.flexibleengine_css_flavors.type_filter_client") | ||
versionFilter654 = acceptance.InitDataSourceCheck("data.flexibleengine_css_flavors.version_filter_654") | ||
versionFilter711 = acceptance.InitDataSourceCheck("data.flexibleengine_css_flavors.version_filter_711") | ||
versionFilter762 = acceptance.InitDataSourceCheck("data.flexibleengine_css_flavors.version_filter_762") | ||
versionFilter793 = acceptance.InitDataSourceCheck("data.flexibleengine_css_flavors.version_filter_793") | ||
versionFilter7102 = acceptance.InitDataSourceCheck("data.flexibleengine_css_flavors.version_filter_7102") | ||
vcpusFilter = acceptance.InitDataSourceCheck("data.flexibleengine_css_flavors.vcpus_filter") | ||
memoryFilter = acceptance.InitDataSourceCheck("data.flexibleengine_css_flavors.memory_filter") | ||
) | ||
|
||
resource.ParallelTest(t, resource.TestCase{ | ||
PreCheck: func() { testAccPreCheck(t) }, | ||
ProviderFactories: TestAccProviderFactories, | ||
Steps: []resource.TestStep{ | ||
{ | ||
Config: testAccDataSourceCssFlavors_basic, | ||
Check: resource.ComposeTestCheckFunc( | ||
typeFilter.CheckResourceExists(), | ||
resource.TestCheckOutput("is_type_filter_useful", "true"), | ||
typeFilterCold.CheckResourceExists(), | ||
resource.TestCheckOutput("is_type_filter_cold_useful", "true"), | ||
typeFilterMaster.CheckResourceExists(), | ||
resource.TestCheckOutput("is_type_filter_master_useful", "true"), | ||
typeFilterClient.CheckResourceExists(), | ||
resource.TestCheckOutput("is_type_filter_client_useful", "true"), | ||
versionFilter654.CheckResourceExists(), | ||
resource.TestCheckOutput("is_version_filter_654_useful", "true"), | ||
versionFilter711.CheckResourceExists(), | ||
resource.TestCheckOutput("is_version_filter_711_useful", "true"), | ||
versionFilter762.CheckResourceExists(), | ||
resource.TestCheckOutput("is_version_filter_762_useful", "true"), | ||
versionFilter793.CheckResourceExists(), | ||
resource.TestCheckOutput("is_version_filter_793_useful", "true"), | ||
versionFilter7102.CheckResourceExists(), | ||
resource.TestCheckOutput("is_version_filter_7102_useful", "true"), | ||
vcpusFilter.CheckResourceExists(), | ||
resource.TestCheckOutput("is_vcpus_filter_useful", "true"), | ||
memoryFilter.CheckResourceExists(), | ||
resource.TestCheckOutput("is_memory_filter_useful", "true"), | ||
), | ||
}, | ||
}, | ||
}) | ||
} | ||
|
||
const testAccDataSourceCssFlavors_basic = ` | ||
data "flexibleengine_css_flavors" "type_filter" { | ||
type = "ess" | ||
} | ||
output "is_type_filter_useful" { | ||
value = !contains([for v in data.flexibleengine_css_flavors.type_filter.flavors[*].type : v == "ess"], "false") | ||
} | ||
data "flexibleengine_css_flavors" "type_filter_cold" { | ||
type = "ess-cold" | ||
} | ||
output "is_type_filter_cold_useful" { | ||
value = !contains([for v in data.flexibleengine_css_flavors.type_filter_cold.flavors[*].type : v == "ess-cold"], "false") | ||
} | ||
data "flexibleengine_css_flavors" "type_filter_master" { | ||
type = "ess-master" | ||
} | ||
output "is_type_filter_master_useful" { | ||
value = !contains([for v in data.flexibleengine_css_flavors.type_filter_master.flavors[*].type : v == "ess-master"], "false") | ||
} | ||
data "flexibleengine_css_flavors" "type_filter_client" { | ||
type = "ess-client" | ||
} | ||
output "is_type_filter_client_useful" { | ||
value = !contains([for v in data.flexibleengine_css_flavors.type_filter_client.flavors[*].type : v == "ess-client"], "false") | ||
} | ||
data "flexibleengine_css_flavors" "version_filter_654" { | ||
version = "6.5.4" | ||
} | ||
output "is_version_filter_654_useful" { | ||
value = !contains([for v in data.flexibleengine_css_flavors.version_filter_654.flavors[*].version : v == "6.5.4"], "false") | ||
} | ||
data "flexibleengine_css_flavors" "version_filter_711" { | ||
version = "7.1.1" | ||
} | ||
output "is_version_filter_711_useful" { | ||
value = !contains([for v in data.flexibleengine_css_flavors.version_filter_711.flavors[*].version : v == "7.1.1"], "false") | ||
} | ||
data "flexibleengine_css_flavors" "version_filter_762" { | ||
version = "7.6.2" | ||
} | ||
output "is_version_filter_762_useful" { | ||
value = !contains([for v in data.flexibleengine_css_flavors.version_filter_762.flavors[*].version : v == "7.6.2"], "false") | ||
} | ||
data "flexibleengine_css_flavors" "version_filter_793" { | ||
version = "7.9.3" | ||
} | ||
output "is_version_filter_793_useful" { | ||
value = !contains([for v in data.flexibleengine_css_flavors.version_filter_793.flavors[*].version : v == "7.9.3"], "false") | ||
} | ||
data "flexibleengine_css_flavors" "version_filter_7102" { | ||
version = "7.10.2" | ||
} | ||
output "is_version_filter_7102_useful" { | ||
value = !contains([for v in data.flexibleengine_css_flavors.version_filter_7102.flavors[*].version : v == "7.10.2"], "false") | ||
} | ||
data "flexibleengine_css_flavors" "vcpus_filter" { | ||
vcpus = 32 | ||
} | ||
output "is_vcpus_filter_useful" { | ||
value = !contains([for v in data.flexibleengine_css_flavors.vcpus_filter.flavors[*].vcpus : v == 32], "false") | ||
} | ||
data "flexibleengine_css_flavors" "memory_filter" { | ||
memory = 256 | ||
} | ||
output "is_memory_filter_useful" { | ||
value = !contains([for v in data.flexibleengine_css_flavors.memory_filter.flavors[*].memory : v == 256], "false") | ||
} | ||
` | ||
|
||
func TestAccCssFlavorsDataSource_all(t *testing.T) { | ||
dataSourceName := "data.flexibleengine_css_flavors.test" | ||
|
||
dc := acceptance.InitDataSourceCheck(dataSourceName) | ||
|
||
resource.ParallelTest(t, resource.TestCase{ | ||
PreCheck: func() { testAccPreCheck(t) }, | ||
ProviderFactories: TestAccProviderFactories, | ||
Steps: []resource.TestStep{ | ||
{ | ||
Config: testAccDataSourceCssFlavors_version_654, | ||
Check: resource.ComposeTestCheckFunc( | ||
dc.CheckResourceExists(), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.type", "ess"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.version", "6.5.4"), | ||
resource.TestCheckResourceAttrSet(dataSourceName, "flavors.0.id"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.region", "eu-west-0"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.name", "ess.spec-4u8g"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.memory", "8"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.vcpus", "4"), | ||
resource.TestCheckResourceAttrSet(dataSourceName, "flavors.0.disk_range"), | ||
), | ||
}, | ||
{ | ||
Config: testAccDataSourceCssFlavors_version_711, | ||
Check: resource.ComposeTestCheckFunc( | ||
dc.CheckResourceExists(), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.type", "ess-cold"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.version", "7.1.1"), | ||
resource.TestCheckResourceAttrSet(dataSourceName, "flavors.0.id"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.region", "eu-west-0"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.name", "ess.spec-4u8g"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.memory", "8"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.vcpus", "4"), | ||
resource.TestCheckResourceAttrSet(dataSourceName, "flavors.0.disk_range"), | ||
), | ||
}, | ||
{ | ||
Config: testAccDataSourceCssFlavors_version_762, | ||
Check: resource.ComposeTestCheckFunc( | ||
dc.CheckResourceExists(), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.type", "ess-master"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.version", "7.6.2"), | ||
resource.TestCheckResourceAttrSet(dataSourceName, "flavors.0.id"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.region", "eu-west-0"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.name", "ess.spec-4u8g"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.memory", "8"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.vcpus", "4"), | ||
resource.TestCheckResourceAttrSet(dataSourceName, "flavors.0.disk_range"), | ||
), | ||
}, | ||
{ | ||
Config: testAccDataSourceCssFlavors_version_793, | ||
Check: resource.ComposeTestCheckFunc( | ||
dc.CheckResourceExists(), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.type", "ess-client"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.version", "7.9.3"), | ||
resource.TestCheckResourceAttrSet(dataSourceName, "flavors.0.id"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.region", "eu-west-0"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.name", "ess.spec-4u8g"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.memory", "8"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.vcpus", "4"), | ||
resource.TestCheckResourceAttrSet(dataSourceName, "flavors.0.disk_range"), | ||
), | ||
}, | ||
{ | ||
Config: testAccDataSourceCssFlavors_version_7102, | ||
Check: resource.ComposeTestCheckFunc( | ||
dc.CheckResourceExists(), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.type", "ess"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.version", "7.10.2"), | ||
resource.TestCheckResourceAttrSet(dataSourceName, "flavors.0.id"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.region", "eu-west-0"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.name", "ess.spec-4u8g"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.memory", "8"), | ||
resource.TestCheckResourceAttr(dataSourceName, "flavors.0.vcpus", "4"), | ||
resource.TestCheckResourceAttrSet(dataSourceName, "flavors.0.disk_range"), | ||
), | ||
}, | ||
}, | ||
}) | ||
} | ||
|
||
const testAccDataSourceCssFlavors_version_654 = ` | ||
data "flexibleengine_css_flavors" "test" { | ||
type = "ess" | ||
version = "6.5.4" | ||
vcpus = 4 | ||
memory = 8 | ||
region = "eu-west-0" | ||
name = "ess.spec-4u8g" | ||
} | ||
` | ||
|
||
const testAccDataSourceCssFlavors_version_711 = ` | ||
data "flexibleengine_css_flavors" "test" { | ||
type = "ess-cold" | ||
version = "7.1.1" | ||
vcpus = 4 | ||
memory = 8 | ||
region = "eu-west-0" | ||
name = "ess.spec-4u8g" | ||
} | ||
` | ||
|
||
const testAccDataSourceCssFlavors_version_762 = ` | ||
data "flexibleengine_css_flavors" "test" { | ||
type = "ess-master" | ||
version = "7.6.2" | ||
vcpus = 4 | ||
memory = 8 | ||
region = "eu-west-0" | ||
name = "ess.spec-4u8g" | ||
} | ||
` | ||
|
||
const testAccDataSourceCssFlavors_version_793 = ` | ||
data "flexibleengine_css_flavors" "test" { | ||
type = "ess-client" | ||
version = "7.9.3" | ||
vcpus = 4 | ||
memory = 8 | ||
region = "eu-west-0" | ||
name = "ess.spec-4u8g" | ||
} | ||
` | ||
|
||
const testAccDataSourceCssFlavors_version_7102 = ` | ||
data "flexibleengine_css_flavors" "test" { | ||
type = "ess" | ||
version = "7.10.2" | ||
vcpus = 4 | ||
memory = 8 | ||
region = "eu-west-0" | ||
name = "ess.spec-4u8g" | ||
} | ||
` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters