diff --git a/CHANGELOG.md b/CHANGELOG.md index 07cf09fe6..7950cf6f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Testing - Fix template test - Remove cpu_family from server test +- Fix server and vcpu server tests with multiple firewall rules ## 6.6.3 ### Documentation diff --git a/ionoscloud/resource_cube_server.go b/ionoscloud/resource_cube_server.go index 17b20c185..528ed9139 100644 --- a/ionoscloud/resource_cube_server.go +++ b/ionoscloud/resource_cube_server.go @@ -1028,7 +1028,7 @@ func resourceCubeServerUpdate(ctx context.Context, d *schema.ResourceData, meta } if errState := cloudapi.WaitForStateChange(ctx, meta, d, apiResponse, schema.TimeoutCreate); errState != nil { - return diag.FromErr(fmt.Errorf("an error occurred while waiting for state change dcId: %s server_id: %s nic_id %s ID: %s Response: %w", dcId, *server.Id, *nic.Id, firewallId, errState)) + return diag.FromErr(fmt.Errorf("on cube update an error occurred while waiting for state change dcId: %s server_id: %s nic_id %s ID: %s Response: %w", dcId, *server.Id, *nic.Id, firewallId, errState)) } if firewallId == "" && firewall.Id != nil { diff --git a/ionoscloud/resource_server_test.go b/ionoscloud/resource_server_test.go index 8ff5095b1..341fd3bf6 100644 --- a/ionoscloud/resource_server_test.go +++ b/ionoscloud/resource_server_test.go @@ -573,14 +573,14 @@ func TestAccServerResolveImageNameAdd5FwRulesOnUpdate(t *testing.T) { resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.4.name", "test_server5"), resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.0.icmp_code", "5"), resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.0.icmp_type", "6"), - resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.1.port_range_start", "24"), - resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.1.port_range_end", "24"), - resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.2.port_range_start", "25"), - resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.2.port_range_end", "25"), - resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.3.port_range_start", "26"), - resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.3.port_range_end", "26"), - resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.4.port_range_start", "27"), - resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.4.port_range_end", "27"), + resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.1.port_range_start", "204"), + resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.1.port_range_end", "204"), + resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.2.port_range_start", "205"), + resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.2.port_range_end", "205"), + resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.3.port_range_start", "206"), + resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.3.port_range_end", "206"), + resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.4.port_range_start", "207"), + resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.4.port_range_end", "207"), resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.0.type", "INGRESS"), resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.1.type", "INGRESS"), resource.TestCheckResourceAttr(constant.ServerResource+"."+constant.ServerTestResource, "nic.0.firewall.2.type", "INGRESS"), @@ -1458,29 +1458,29 @@ resource ` + constant.ServerResource + ` ` + constant.ServerTestResource + ` { protocol = "TCP" name = "` + constant.ServerTestResource + `2" type = "INGRESS" - port_range_start = 24 - port_range_end = 24 + port_range_start = 204 + port_range_end = 204 } firewall { protocol = "TCP" name = "` + constant.ServerTestResource + `3" type = "INGRESS" - port_range_start = 25 - port_range_end = 25 + port_range_start = 205 + port_range_end = 205 } firewall { protocol = "TCP" name = "` + constant.ServerTestResource + `4" type = "INGRESS" - port_range_start = 26 - port_range_end = 26 + port_range_start = 206 + port_range_end = 206 } firewall { protocol = "TCP" name = "` + constant.ServerTestResource + `5" type = "EGRESS" - port_range_start = 27 - port_range_end = 27 + port_range_start = 207 + port_range_end = 207 } } } diff --git a/ionoscloud/resource_vcpu_server_test.go b/ionoscloud/resource_vcpu_server_test.go index 2121836b6..4fb066865 100644 --- a/ionoscloud/resource_vcpu_server_test.go +++ b/ionoscloud/resource_vcpu_server_test.go @@ -554,14 +554,14 @@ func TestAccServerVCPUResolveImageNameAdd5FwRulesOnUpdate(t *testing.T) { resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.4.name", "test_server5"), resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.0.icmp_code", "5"), resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.0.icmp_type", "6"), - resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.1.port_range_start", "24"), - resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.1.port_range_end", "24"), - resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.2.port_range_start", "25"), - resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.2.port_range_end", "25"), - resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.3.port_range_start", "26"), - resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.3.port_range_end", "26"), - resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.4.port_range_start", "27"), - resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.4.port_range_end", "27"), + resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.1.port_range_start", "204"), + resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.1.port_range_end", "204"), + resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.2.port_range_start", "205"), + resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.2.port_range_end", "205"), + resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.3.port_range_start", "206"), + resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.3.port_range_end", "206"), + resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.4.port_range_start", "207"), + resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.4.port_range_end", "207"), resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.0.type", "INGRESS"), resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.1.type", "INGRESS"), resource.TestCheckResourceAttr(constant.ServerVCPUResource+"."+constant.ServerTestResource, "nic.0.firewall.2.type", "INGRESS"), @@ -1348,29 +1348,29 @@ resource ` + constant.ServerVCPUResource + ` ` + constant.ServerTestResource + ` protocol = "TCP" name = "` + constant.ServerTestResource + `2" type = "INGRESS" - port_range_start = 24 - port_range_end = 24 + port_range_start = 204 + port_range_end = 204 } firewall { protocol = "TCP" name = "` + constant.ServerTestResource + `3" type = "INGRESS" - port_range_start = 25 - port_range_end = 25 + port_range_start = 205 + port_range_end = 205 } firewall { protocol = "TCP" name = "` + constant.ServerTestResource + `4" type = "INGRESS" - port_range_start = 26 - port_range_end = 26 + port_range_start = 206 + port_range_end = 206 } firewall { protocol = "TCP" name = "` + constant.ServerTestResource + `5" type = "EGRESS" - port_range_start = 27 - port_range_end = 27 + port_range_start = 207 + port_range_end = 207 } } } diff --git a/services/cloudapi/cloudapifirewall/firewall.go b/services/cloudapi/cloudapifirewall/firewall.go index 4db674777..714b41e2c 100644 --- a/services/cloudapi/cloudapifirewall/firewall.go +++ b/services/cloudapi/cloudapifirewall/firewall.go @@ -68,7 +68,7 @@ func (fs *Service) Create(ctx context.Context, datacenterId, serverId, nicId str return nil, apiResponse, fmt.Errorf("an error occurred while creating firewall rule for dcId: %s, server_id: %s, nic_id: %s, Response: (%w)", datacenterId, serverId, nicId, err) } if errState := cloudapi.WaitForStateChange(ctx, fs.Meta, fs.D, apiResponse, schema.TimeoutCreate); errState != nil { - return nil, apiResponse, fmt.Errorf("an error occurred while waiting for state change dcId: %s, server_id: %s, nic_id: %s, Response: (%w)", datacenterId, serverId, nicId, errState) + return nil, apiResponse, fmt.Errorf("on create an error occurred while waiting for state change dcId: %s, server_id: %s, nic_id: %s, Response: (%w)", datacenterId, serverId, nicId, errState) } return &firewall, apiResponse, nil } @@ -80,7 +80,7 @@ func (fs *Service) Update(ctx context.Context, datacenterId, serverId, nicId, id return nil, apiResponse, fmt.Errorf("an error occurred while updating firewall rule for dcId: %s, server_id: %s, nic_id: %s, id %s, Response: (%w)", datacenterId, serverId, nicId, id, err) } if errState := cloudapi.WaitForStateChange(ctx, fs.Meta, fs.D, apiResponse, schema.TimeoutUpdate); errState != nil { - return nil, apiResponse, fmt.Errorf("an error occurred while waiting for state change dcId: %s, server_id: %s, nic_id: %s, Response: (%w)", datacenterId, serverId, nicId, errState) + return nil, apiResponse, fmt.Errorf("on update an error occurred while waiting for state change dcId: %s, server_id: %s, nic_id: %s, Response: (%w)", datacenterId, serverId, nicId, errState) } return &firewall, apiResponse, nil }