Skip to content

Commit 1cbb046

Browse files
committed
fix lint:
1 parent 4fd6475 commit 1cbb046

9 files changed

+383
-4013
lines changed

internal/services/domain/helpers.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,19 @@ func getRecordFromTypeAndData(dnsType domain.RecordType, data string, records []
4040
if currentRecord != nil {
4141
return nil, errors.New("multiple records found with same type and data")
4242
}
43+
4344
currentRecord = r
45+
4446
break
4547
}
4648
} else {
4749
if strings.HasPrefix(flattedData, flattenCurrentData) && r.Type == dnsType {
4850
if currentRecord != nil {
4951
return nil, errors.New("multiple records found with same type and data")
5052
}
53+
5154
currentRecord = r
55+
5256
break
5357
}
5458
}

internal/services/domain/record.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ func resourceRecordCreate(ctx context.Context, d *schema.ResourceData, m any) di
296296
return diag.FromErr(err)
297297
}
298298

299-
currentRecord, err := getRecordFromTypeAndData(recordType, recordData, dnsZoneData.Records)
299+
currentRecord, err := getRecordFromTypeAndData(recordType, flattenDomainData(recordData, recordType).(string), dnsZoneData.Records)
300300
if err != nil {
301301
return diag.FromErr(err)
302302
}

internal/services/domain/record_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -701,7 +701,7 @@ func TestAccDomainRecord_SRVWithDomainDuplication(t *testing.T) {
701701

702702
name := "_test_srv_bug"
703703
recordType := "SRV"
704-
data := "0 0 1234 foo.example.com"
704+
data := "0 0 1234 foo.example.com."
705705
ttl := 60
706706
priority := 0
707707

@@ -726,7 +726,7 @@ func TestAccDomainRecord_SRVWithDomainDuplication(t *testing.T) {
726726
resource.TestCheckResourceAttr("scaleway_domain_record.srv_test", "dns_zone", testDNSZone),
727727
resource.TestCheckResourceAttr("scaleway_domain_record.srv_test", "name", name),
728728
resource.TestCheckResourceAttr("scaleway_domain_record.srv_test", "type", recordType),
729-
resource.TestCheckResourceAttr("scaleway_domain_record.srv_test", "data", "0 0 1234 foo.example.com"),
729+
resource.TestCheckResourceAttr("scaleway_domain_record.srv_test", "data", "0 0 1234 foo.example.com."),
730730
resource.TestCheckResourceAttr("scaleway_domain_record.srv_test", "ttl", strconv.Itoa(ttl)),
731731
resource.TestCheckResourceAttr("scaleway_domain_record.srv_test", "priority", strconv.Itoa(priority)),
732732
acctest.CheckResourceAttrUUID("scaleway_domain_record.srv_test", "id"),
@@ -738,7 +738,7 @@ func TestAccDomainRecord_SRVWithDomainDuplication(t *testing.T) {
738738
dns_zone = "%[1]s"
739739
name = "%[2]s"
740740
type = "%[3]s"
741-
data = "10 0 5678 bar.example.com"
741+
data = "10 0 5678 bar.example.com."
742742
priority = 10
743743
ttl = 300
744744
}
@@ -748,7 +748,7 @@ func TestAccDomainRecord_SRVWithDomainDuplication(t *testing.T) {
748748
resource.TestCheckResourceAttr("scaleway_domain_record.srv_test", "dns_zone", testDNSZone),
749749
resource.TestCheckResourceAttr("scaleway_domain_record.srv_test", "name", name),
750750
resource.TestCheckResourceAttr("scaleway_domain_record.srv_test", "type", recordType),
751-
resource.TestCheckResourceAttr("scaleway_domain_record.srv_test", "data", "10 0 5678 bar.example.com"),
751+
resource.TestCheckResourceAttr("scaleway_domain_record.srv_test", "data", "10 0 5678 bar.example.com."),
752752
resource.TestCheckResourceAttr("scaleway_domain_record.srv_test", "ttl", "300"),
753753
resource.TestCheckResourceAttr("scaleway_domain_record.srv_test", "priority", "10"),
754754
acctest.CheckResourceAttrUUID("scaleway_domain_record.srv_test", "id"),

internal/services/domain/testdata/domain-record-srv-with-domain-duplication.cassette.yaml

Lines changed: 128 additions & 128 deletions
Large diffs are not rendered by default.

internal/services/domain/testdata/domain-record-srv-zone.cassette.yaml

Lines changed: 70 additions & 364 deletions
Large diffs are not rendered by default.

internal/services/domain/testdata/domain-registration-technical-contact-update-task-id.cassette.yaml

Lines changed: 0 additions & 3290 deletions
This file was deleted.

internal/services/domain/testdata/domain-zone-versioning.cassette.yaml

Lines changed: 0 additions & 199 deletions
This file was deleted.

internal/services/domain/types.go

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,6 @@ import (
88
"github.com/scaleway/terraform-provider-scaleway/v2/internal/types"
99
)
1010

11-
// getStringSafely safely extracts a string value from an interface
12-
func getStringSafely(v any) string {
13-
if s, ok := v.(string); ok {
14-
return s
15-
}
16-
return ""
17-
}
18-
1911
func flattenDomainData(data string, recordType domain.RecordType) any {
2012
switch recordType {
2113
case domain.RecordTypeMX: // API return this format: "{priority} {data}"
@@ -39,11 +31,13 @@ func normalizeSRVData(data string) string {
3931
if len(parts) >= 4 {
4032
priority, weight, port, target := parts[0], parts[1], parts[2], parts[3]
4133
target = removeZoneDomainSuffix(target)
34+
4235
return strings.Join([]string{priority, weight, port, target}, " ")
4336
}
4437

4538
if len(parts) == 3 {
4639
priority, port, target := parts[0], parts[1], parts[2]
40+
4741
return strings.Join([]string{priority, "0", port, target}, " ")
4842
}
4943

@@ -56,16 +50,26 @@ func removeZoneDomainSuffix(target string) string {
5650
return target
5751
}
5852

53+
// Check if the original target had a trailing dot
54+
hadTrailingDot := strings.HasSuffix(target, ".")
55+
5956
targetParts := strings.Split(strings.TrimSuffix(target, "."), ".")
6057

6158
switch {
6259
case len(targetParts) > 4:
63-
return strings.Join(targetParts[:len(targetParts)-3], ".")
60+
target = strings.Join(targetParts[:len(targetParts)-3], ".")
6461
case len(targetParts) > 3:
65-
return strings.Join(targetParts[:len(targetParts)-2], ".")
62+
target = strings.Join(targetParts[:len(targetParts)-2], ".")
6663
default:
67-
return strings.TrimSuffix(target, ".")
64+
target = strings.TrimSuffix(target, ".")
65+
}
66+
67+
// Restore trailing dot only if it was present in the original
68+
if hadTrailingDot {
69+
target += "."
6870
}
71+
72+
return target
6973
}
7074

7175
func flattenDomainGeoIP(config *domain.RecordGeoIPConfig) any {
@@ -181,34 +185,22 @@ func expandDomainHTTPService(i any, ok bool) *domain.RecordHTTPServiceConfig {
181185
return nil
182186
}
183187

184-
lst, ok := i.([]any)
185-
if !ok || len(lst) == 0 {
186-
return nil
187-
}
188-
189-
rawMap, ok := lst[0].(map[string]any)
190-
if !ok {
191-
return nil
192-
}
188+
rawMap := i.([]any)[0].(map[string]any)
193189

194190
ips := []net.IP{}
195191

196192
rawIPs, ok := rawMap["ips"].([]any)
197193
if ok {
198194
for _, rawIP := range rawIPs {
199-
if s, ok := rawIP.(string); ok {
200-
if ip := net.ParseIP(s); ip != nil {
201-
ips = append(ips, ip)
202-
}
203-
}
195+
ips = append(ips, net.ParseIP(rawIP.(string)))
204196
}
205197
}
206198

207199
return &domain.RecordHTTPServiceConfig{
208200
MustContain: types.ExpandStringPtr(rawMap["must_contain"]),
209-
URL: getStringSafely(rawMap["url"]),
201+
URL: rawMap["url"].(string),
210202
UserAgent: types.ExpandStringPtr(rawMap["user_agent"]),
211-
Strategy: domain.RecordHTTPServiceConfigStrategy(getStringSafely(rawMap["strategy"])),
203+
Strategy: domain.RecordHTTPServiceConfigStrategy(rawMap["strategy"].(string)),
212204
IPs: ips,
213205
}
214206
}

0 commit comments

Comments
 (0)