Extend LogMe instance parameters (#438)

* Extend LogMe instance parameters

* Update acc test

* Add more field descriptions

* Improve code and tests

* Add more fields to acc test

* Fix linter

* Add float parameter
This commit is contained in:
João Palet 2024-07-01 12:09:26 +01:00 committed by GitHub
parent e553628b5e
commit a08dbd8926
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 868 additions and 200 deletions

View file

@ -18,16 +18,49 @@ import (
// Instance resource data
var instanceResource = map[string]string{
"project_id": testutil.ProjectId,
"name": testutil.ResourceNameWithDateTime("logme"),
"plan_id": "201d743c-0f06-4af2-8f20-649baf4819ae",
"plan_name": "stackit-logme2-1.2.50-replica",
"version": "2",
"sgw_acl-1": "192.168.0.0/16",
"sgw_acl-2": "192.168.0.0/24",
"project_id": testutil.ProjectId,
"name": testutil.ResourceNameWithDateTime("logme"),
"plan_id": "201d743c-0f06-4af2-8f20-649baf4819ae",
"plan_name": "stackit-logme2-1.2.50-replica",
"version": "2",
"sgw_acl-1": "192.168.0.0/16",
"sgw_acl-2": "192.168.0.0/24",
"fluent_tcp": "4",
"max_disk_threshold": "80",
"enable_monitoring": "false",
"syslog-0": "syslog.example.com:514",
"ism_jitter": "0.6",
}
func resourceConfig(acls string) string {
func parametersConfig(params map[string]string) string {
nonStringParams := []string{
"enable_monitoring",
"fluentd_tcp",
"fluentd_tls",
"fluentd_udp",
"ism_jitter",
"ism_job_interval",
"java_heapspace",
"java_maxmetaspace",
"max_disk_threshold",
"metrics_frequency",
"opensearch_tls_ciphers",
"opensearch_tls_protocols",
"syslog",
}
parameters := "parameters = {"
for k, v := range params {
if utils.Contains(nonStringParams, k) {
parameters += fmt.Sprintf("%s = %s\n", k, v)
} else {
parameters += fmt.Sprintf("%s = %q\n", k, v)
}
}
parameters += "\n}"
return parameters
}
func resourceConfig(params map[string]string) string {
return fmt.Sprintf(`
%s
@ -36,9 +69,7 @@ func resourceConfig(acls string) string {
name = "%s"
plan_name = "%s"
version = "%s"
parameters = {
sgw_acl = "%s"
}
%s
}
resource "stackit_logme_credential" "credential" {
@ -51,7 +82,7 @@ func resourceConfig(acls string) string {
instanceResource["name"],
instanceResource["plan_name"],
instanceResource["version"],
acls,
parametersConfig(params),
)
}
func TestAccLogMeResource(t *testing.T) {
@ -62,7 +93,15 @@ func TestAccLogMeResource(t *testing.T) {
// Creation
{
Config: resourceConfig(instanceResource["sgw_acl-1"]),
Config: resourceConfig(
map[string]string{
"sgw_acl": instanceResource["sgw_acl-1"],
"fluentd_tcp": instanceResource["fluent_tcp"],
"max_disk_threshold": instanceResource["max_disk_threshold"],
"enable_monitoring": instanceResource["enable_monitoring"],
"syslog": fmt.Sprintf(`[%q]`, instanceResource["syslog-0"]),
"ism_jitter": instanceResource["ism_jitter"],
}),
Check: resource.ComposeAggregateTestCheckFunc(
// Instance data
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "project_id", instanceResource["project_id"]),
@ -72,6 +111,12 @@ func TestAccLogMeResource(t *testing.T) {
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "version", instanceResource["version"]),
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "name", instanceResource["name"]),
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "parameters.sgw_acl", instanceResource["sgw_acl-1"]),
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "parameters.fluentd_tcp", instanceResource["fluent_tcp"]),
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "parameters.max_disk_threshold", instanceResource["max_disk_threshold"]),
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "parameters.enable_monitoring", instanceResource["enable_monitoring"]),
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "parameters.syslog.#", "1"),
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "parameters.syslog.0", instanceResource["syslog-0"]),
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "parameters.ism_jitter", instanceResource["ism_jitter"]),
// Credential data
resource.TestCheckResourceAttrPair(
@ -101,7 +146,14 @@ func TestAccLogMeResource(t *testing.T) {
instance_id = stackit_logme_credential.credential.instance_id
credential_id = stackit_logme_credential.credential.credential_id
}`,
resourceConfig(instanceResource["sgw_acl-1"]),
resourceConfig(map[string]string{
"sgw_acl": instanceResource["sgw_acl-1"],
"fluentd_tcp": instanceResource["fluent_tcp"],
"max_disk_threshold": instanceResource["max_disk_threshold"],
"enable_monitoring": instanceResource["enable_monitoring"],
"syslog": fmt.Sprintf(`[%q]`, instanceResource["syslog-0"]),
"ism_jitter": instanceResource["ism_jitter"],
}),
),
Check: resource.ComposeAggregateTestCheckFunc(
// Instance data
@ -114,6 +166,12 @@ func TestAccLogMeResource(t *testing.T) {
resource.TestCheckResourceAttr("data.stackit_logme_instance.instance", "plan_id", instanceResource["plan_id"]),
resource.TestCheckResourceAttr("data.stackit_logme_instance.instance", "name", instanceResource["name"]),
resource.TestCheckResourceAttr("data.stackit_logme_instance.instance", "parameters.sgw_acl", instanceResource["sgw_acl-1"]),
resource.TestCheckResourceAttr("data.stackit_logme_instance.instance", "parameters.fluentd_tcp", instanceResource["fluent_tcp"]),
resource.TestCheckResourceAttr("data.stackit_logme_instance.instance", "parameters.max_disk_threshold", instanceResource["max_disk_threshold"]),
resource.TestCheckResourceAttr("data.stackit_logme_instance.instance", "parameters.enable_monitoring", instanceResource["enable_monitoring"]),
resource.TestCheckResourceAttr("data.stackit_logme_instance.instance", "parameters.syslog.#", "1"),
resource.TestCheckResourceAttr("data.stackit_logme_instance.instance", "parameters.syslog.0", instanceResource["syslog-0"]),
resource.TestCheckResourceAttr("data.stackit_logme_instance.instance", "parameters.ism_jitter", instanceResource["ism_jitter"]),
// Credential data
resource.TestCheckResourceAttr("data.stackit_logme_credential.credential", "project_id", instanceResource["project_id"]),
@ -162,7 +220,14 @@ func TestAccLogMeResource(t *testing.T) {
},
// Update
{
Config: resourceConfig(instanceResource["sgw_acl-2"]),
Config: resourceConfig(map[string]string{
"sgw_acl": instanceResource["sgw_acl-2"],
"fluentd_tcp": instanceResource["fluent_tcp"],
"max_disk_threshold": instanceResource["max_disk_threshold"],
"enable_monitoring": instanceResource["enable_monitoring"],
"syslog": fmt.Sprintf(`[%q]`, instanceResource["syslog-0"]),
"ism_jitter": instanceResource["ism_jitter"],
}),
Check: resource.ComposeAggregateTestCheckFunc(
// Instance data
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "project_id", instanceResource["project_id"]),
@ -172,6 +237,12 @@ func TestAccLogMeResource(t *testing.T) {
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "version", instanceResource["version"]),
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "name", instanceResource["name"]),
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "parameters.sgw_acl", instanceResource["sgw_acl-2"]),
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "parameters.fluentd_tcp", instanceResource["fluent_tcp"]),
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "parameters.max_disk_threshold", instanceResource["max_disk_threshold"]),
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "parameters.enable_monitoring", instanceResource["enable_monitoring"]),
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "parameters.syslog.#", "1"),
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "parameters.syslog.0", instanceResource["syslog-0"]),
resource.TestCheckResourceAttr("stackit_logme_instance.instance", "parameters.ism_jitter", instanceResource["ism_jitter"]),
),
},
// Deletion is done by the framework implicitly