Skip to content

Commit eb077fd

Browse files
authored
Fix setting ID for Fleet outputs and servers (#666)
* Fix setting ID for Fleet outputs and servers * Update CHANGELOG
1 parent d4ae38f commit eb077fd

File tree

5 files changed

+25
-4
lines changed

5 files changed

+25
-4
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
## [Unreleased]
22

3+
- Fix setting `id` for Fleet outputs and servers ([#666](https://github.com/elastic/terraform-provider-elasticstack/pull/666))
4+
35
## [0.11.4] - 2024-06-13
46

57
### Breaking changes

internal/fleet/fleet_server_host_resource.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,15 @@ func resourceFleetServerHostCreate(ctx context.Context, d *schema.ResourceData,
6060
return diags
6161
}
6262

63-
if id := d.Get("host_id").(string); id != "" {
64-
d.SetId(id)
65-
}
66-
6763
req := fleetapi.PostFleetServerHostsJSONRequestBody{
6864
Name: d.Get("name").(string),
6965
}
7066

67+
if id := d.Get("host_id").(string); id != "" {
68+
d.SetId(id)
69+
req.Id = &id
70+
}
71+
7172
if value := d.Get("hosts").([]interface{}); len(value) > 0 {
7273
for _, v := range value {
7374
if vStr, ok := v.(string); ok && vStr != "" {

internal/fleet/fleet_server_host_resource_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ func TestAccResourceFleetServerHost(t *testing.T) {
3030
Config: testAccResourceFleetServerHostCreate(policyName),
3131
Check: resource.ComposeTestCheckFunc(
3232
resource.TestCheckResourceAttr("elasticstack_fleet_server_host.test_host", "name", fmt.Sprintf("FleetServerHost %s", policyName)),
33+
resource.TestCheckResourceAttr("elasticstack_fleet_server_host.test_host", "id", "fleet-server-host-id"),
3334
resource.TestCheckResourceAttr("elasticstack_fleet_server_host.test_host", "default", "false"),
3435
resource.TestCheckResourceAttr("elasticstack_fleet_server_host.test_host", "hosts.0", "https://fleet-server:8220"),
3536
),
@@ -39,6 +40,7 @@ func TestAccResourceFleetServerHost(t *testing.T) {
3940
Config: testAccResourceFleetServerHostUpdate(policyName),
4041
Check: resource.ComposeTestCheckFunc(
4142
resource.TestCheckResourceAttr("elasticstack_fleet_server_host.test_host", "name", fmt.Sprintf("Updated FleetServerHost %s", policyName)),
43+
resource.TestCheckResourceAttr("elasticstack_fleet_server_host.test_host", "id", "fleet-server-host-id"),
4244
resource.TestCheckResourceAttr("elasticstack_fleet_server_host.test_host", "default", "false"),
4345
resource.TestCheckResourceAttr("elasticstack_fleet_server_host.test_host", "hosts.0", "https://fleet-server:8220"),
4446
),
@@ -56,6 +58,7 @@ provider "elasticstack" {
5658
5759
resource "elasticstack_fleet_server_host" "test_host" {
5860
name = "%s"
61+
host_id = "fleet-server-host-id"
5962
default = false
6063
hosts = [
6164
"https://fleet-server:8220"
@@ -73,6 +76,7 @@ provider "elasticstack" {
7376
7477
resource "elasticstack_fleet_server_host" "test_host" {
7578
name = "%s"
79+
host_id = "fleet-server-host-id"
7680
default = false
7781
hosts = [
7882
"https://fleet-server:8220"

internal/fleet/output_resource.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,9 @@ func resourceOutputCreateElasticsearch(ctx context.Context, d *schema.ResourceDa
133133
if hosts != nil {
134134
reqData.Hosts = &hosts
135135
}
136+
if value, ok := d.Get("output_id").(string); ok && value != "" {
137+
reqData.Id = &value
138+
}
136139
if value := d.Get("default_integrations").(bool); value {
137140
reqData.IsDefault = &value
138141
}
@@ -192,6 +195,9 @@ func resourceOutputCreateLogstash(ctx context.Context, d *schema.ResourceData, m
192195
}
193196
}
194197
reqData.Hosts = hosts
198+
if value, ok := d.Get("output_id").(string); ok && value != "" {
199+
reqData.Id = &value
200+
}
195201
if value := d.Get("default_integrations").(bool); value {
196202
reqData.IsDefault = &value
197203
}

internal/fleet/output_resource_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ func TestAccResourceOutputElasticsearch(t *testing.T) {
3030
Config: testAccResourceOutputCreateElasticsearch(policyName),
3131
Check: resource.ComposeTestCheckFunc(
3232
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "name", fmt.Sprintf("Elasticsearch Output %s", policyName)),
33+
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "id", "elasticsearch-output"),
3334
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "type", "elasticsearch"),
3435
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "config_yaml", "\"ssl.verification_mode\": \"none\"\n"),
3536
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "default_integrations", "false"),
@@ -42,6 +43,7 @@ func TestAccResourceOutputElasticsearch(t *testing.T) {
4243
Config: testAccResourceOutputUpdateElasticsearch(policyName),
4344
Check: resource.ComposeTestCheckFunc(
4445
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "name", fmt.Sprintf("Updated Elasticsearch Output %s", policyName)),
46+
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "id", "elasticsearch-output"),
4547
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "type", "elasticsearch"),
4648
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "config_yaml", "\"ssl.verification_mode\": \"none\"\n"),
4749
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "default_integrations", "false"),
@@ -72,6 +74,7 @@ func TestAccResourceOutputLogstash(t *testing.T) {
7274
Config: testAccResourceOutputCreateLogstash(policyName),
7375
Check: resource.ComposeTestCheckFunc(
7476
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "name", fmt.Sprintf("Logstash Output %s", policyName)),
77+
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "id", "logstash-output"),
7578
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "type", "logstash"),
7679
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "config_yaml", "\"ssl.verification_mode\": \"none\"\n"),
7780
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "default_integrations", "false"),
@@ -87,6 +90,7 @@ func TestAccResourceOutputLogstash(t *testing.T) {
8790
Config: testAccResourceOutputLogstashUpdate(policyName),
8891
Check: resource.ComposeTestCheckFunc(
8992
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "name", fmt.Sprintf("Updated Logstash Output %s", policyName)),
93+
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "id", "logstash-output"),
9094
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "type", "logstash"),
9195
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "config_yaml", "\"ssl.verification_mode\": \"none\"\n"),
9296
resource.TestCheckResourceAttr("elasticstack_fleet_output.test_output", "default_integrations", "false"),
@@ -110,6 +114,7 @@ provider "elasticstack" {
110114
111115
resource "elasticstack_fleet_output" "test_output" {
112116
name = "%s"
117+
output_id = "elasticsearch-output"
113118
type = "elasticsearch"
114119
config_yaml = yamlencode({
115120
"ssl.verification_mode" : "none"
@@ -132,6 +137,7 @@ provider "elasticstack" {
132137
133138
resource "elasticstack_fleet_output" "test_output" {
134139
name = "%s"
140+
output_id = "elasticsearch-output"
135141
type = "elasticsearch"
136142
config_yaml = yamlencode({
137143
"ssl.verification_mode" : "none"
@@ -156,6 +162,7 @@ provider "elasticstack" {
156162
resource "elasticstack_fleet_output" "test_output" {
157163
name = "%s"
158164
type = "logstash"
165+
output_id = "logstash-output"
159166
config_yaml = yamlencode({
160167
"ssl.verification_mode" : "none"
161168
})
@@ -183,6 +190,7 @@ provider "elasticstack" {
183190
resource "elasticstack_fleet_output" "test_output" {
184191
name = "%s"
185192
type = "logstash"
193+
output_id = "logstash-output"
186194
config_yaml = yamlencode({
187195
"ssl.verification_mode" : "none"
188196
})

0 commit comments

Comments
 (0)