Skip to content

Commit 6cb21b3

Browse files
committed
fix linter errors
1 parent d1082e9 commit 6cb21b3

File tree

9 files changed

+404
-754
lines changed

9 files changed

+404
-754
lines changed

.golangci.yaml

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

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
GOLANGCI_VERSION = 1.64.8
1+
GOLANGCI_VERSION = 2.8.0
22
LICENCES_IGNORE_LIST = $(shell cat licenses/licenses-ignore-list.txt)
33

44
VERSION ?= 0.0.1

cmd/webhook/cmd/root.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ var rootCmd = &cobra.Command{
5353
stackitProvider, err := stackitprovider.NewStackitDNSProvider(
5454
logger.With(zap.String("component", "stackitprovider")),
5555
// ExternalDNS provider config
56-
stackitprovider.Config{
56+
&stackitprovider.Config{
5757
ProjectId: projectID,
5858
DomainFilter: endpointDomainFilter,
5959
DryRun: dryRun,

internal/stackitprovider/apply_changes.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,17 @@ import (
1313

1414
// ApplyChanges applies a given set of changes in a given zone.
1515
func (d *StackitDNSProvider) ApplyChanges(ctx context.Context, changes *plan.Changes) error {
16-
var tasks []changeTask
16+
// Preallocate to avoid repeated growth (prealloc)
17+
totalTasks := len(changes.Create) + len(changes.UpdateNew) + len(changes.Delete)
18+
tasks := make([]changeTask, 0, totalTasks)
19+
1720
// create rr set. POST /v1/projects/{projectId}/zones/{zoneId}/rrsets
1821
tasks = append(tasks, d.buildRRSetTasks(changes.Create, CREATE)...)
1922
// update rr set. PATCH /v1/projects/{projectId}/zones/{zoneId}/rrsets/{rrSetId}
2023
tasks = append(tasks, d.buildRRSetTasks(changes.UpdateNew, UPDATE)...)
24+
2125
d.logger.Info("records to delete", zap.String("records", fmt.Sprintf("%v", changes.Delete)))
26+
2227
// delete rr set. DELETE /v1/projects/{projectId}/zones/{zoneId}/rrsets/{rrSetId}
2328
tasks = append(tasks, d.buildRRSetTasks(changes.Delete, DELETE)...)
2429

internal/stackitprovider/apply_changes_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ func testApplyChanges(t *testing.T, changeType ChangeType) {
4848
// Test cases
4949
tests := getApplyChangesBasicTestCases(validZoneResponse, validRRSetResponse, invalidZoneResponse)
5050

51-
for _, tt := range tests {
51+
for _, tt := range tests { //nolint: gocritic // we dont want to use pointers here to keep the test simple
5252
tt := tt
5353
t.Run(tt.name, func(t *testing.T) {
5454
t.Parallel()

internal/stackitprovider/helper.go

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,29 +16,38 @@ func findBestMatchingZone(
1616
zones []stackitdnsclient.Zone,
1717
) (*stackitdnsclient.Zone, bool) {
1818
count := 0
19-
var domainZone stackitdnsclient.Zone
20-
for _, zone := range zones {
21-
if len(*zone.DnsName) > count && strings.Contains(rrSetName, *zone.DnsName) {
22-
count = len(*zone.DnsName)
19+
var domainZone *stackitdnsclient.Zone
20+
21+
for i := range zones {
22+
zone := &zones[i]
23+
if zone.DnsName == nil {
24+
continue
25+
}
26+
if l := len(*zone.DnsName); l > count && strings.Contains(rrSetName, *zone.DnsName) {
27+
count = l
2328
domainZone = zone
2429
}
2530
}
2631

27-
if count == 0 {
32+
if domainZone == nil {
2833
return nil, false
2934
}
3035

31-
return &domainZone, true
36+
return domainZone, true
3237
}
3338

3439
// findRRSet finds a record set by name and type in a list of record sets.
3540
func findRRSet(
3641
rrSetName, recordType string,
3742
rrSets []stackitdnsclient.RecordSet,
3843
) (*stackitdnsclient.RecordSet, bool) {
39-
for _, rrSet := range rrSets {
44+
for i := range rrSets {
45+
rrSet := &rrSets[i]
46+
if rrSet.Name == nil || rrSet.Type == nil {
47+
continue
48+
}
4049
if *rrSet.Name == rrSetName && string(*rrSet.Type) == recordType {
41-
return &rrSet, true
50+
return rrSet, true
4251
}
4352
}
4453

internal/stackitprovider/records.go

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@ func (d *StackitDNSProvider) Records(ctx context.Context) ([]*endpoint.Endpoint,
2323
go d.fetchRecordsWorker(ctx, zoneIdsChannel, endpointsErrorChannel)
2424
}
2525

26-
for _, zone := range zones {
26+
for i := range zones {
27+
zone := &zones[i]
28+
if zone.Id == nil {
29+
continue
30+
}
2731
zoneIdsChannel <- *zone.Id
2832
}
2933

@@ -84,21 +88,39 @@ func (d *StackitDNSProvider) collectEndPoints(
8488
rrSets []stackitdnsclient.RecordSet,
8589
) []*endpoint.Endpoint {
8690
var endpoints []*endpoint.Endpoint
87-
for _, r := range rrSets {
88-
recordType := string(*r.Type)
89-
if provider.SupportedRecordType(recordType) {
90-
for _, _r := range *r.Records {
91-
endpoints = append(
92-
endpoints,
93-
endpoint.NewEndpointWithTTL(
94-
*r.Name,
95-
recordType,
96-
endpoint.TTL(*r.Ttl),
97-
*_r.Content,
98-
),
99-
)
100-
}
91+
92+
for i := range rrSets {
93+
r := &rrSets[i]
94+
95+
name, recordType, ttl, records, ok := recordSetCoreFields(r)
96+
if !ok || !provider.SupportedRecordType(recordType) {
97+
continue
98+
}
99+
100+
endpoints = append(endpoints, endpointsFromRecords(name, recordType, ttl, records)...)
101+
}
102+
103+
return endpoints
104+
}
105+
106+
func recordSetCoreFields(r *stackitdnsclient.RecordSet) (name string, recordType string, ttl endpoint.TTL, records []stackitdnsclient.Record, ok bool) {
107+
if r == nil || r.Type == nil || r.Name == nil || r.Ttl == nil || r.Records == nil {
108+
return "", "", 0, nil, false
109+
}
110+
111+
return *r.Name, string(*r.Type), endpoint.TTL(*r.Ttl), *r.Records, true
112+
}
113+
114+
func endpointsFromRecords(name, recordType string, ttl endpoint.TTL, records []stackitdnsclient.Record) []*endpoint.Endpoint {
115+
endpoints := make([]*endpoint.Endpoint, 0, len(records))
116+
117+
for i := range records {
118+
rec := &records[i]
119+
if rec.Content == nil {
120+
continue
101121
}
122+
123+
endpoints = append(endpoints, endpoint.NewEndpointWithTTL(name, recordType, ttl, *rec.Content))
102124
}
103125

104126
return endpoints

internal/stackitprovider/records_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ func TestZoneEndpoint403Records(t *testing.T) {
169169

170170
stackitDnsProvider, err := NewStackitDNSProvider(
171171
zap.NewNop(),
172-
Config{
172+
&Config{
173173
ProjectId: "1234",
174174
DomainFilter: endpoint.DomainFilter{},
175175
DryRun: false,
@@ -189,7 +189,7 @@ func TestZoneEndpoint403Records(t *testing.T) {
189189
func getDefaultTestProvider(server *httptest.Server) (*StackitDNSProvider, error) {
190190
stackitDnsProvider, err := NewStackitDNSProvider(
191191
zap.NewNop(),
192-
Config{
192+
&Config{
193193
ProjectId: "1234",
194194
DomainFilter: endpoint.DomainFilter{},
195195
DryRun: false,
@@ -330,7 +330,8 @@ func getRrsetsResponseRecordsNonPaged(t *testing.T, w http.ResponseWriter, domai
330330

331331
var rrSets stackitdnsclient.ListRecordSetsResponse
332332

333-
if domain == "1234" {
333+
switch domain {
334+
case "1234":
334335
rrSets = stackitdnsclient.ListRecordSetsResponse{
335336
ItemsPerPage: pointerTo(int64(20)),
336337
Message: pointerTo("success"),
@@ -348,7 +349,7 @@ func getRrsetsResponseRecordsNonPaged(t *testing.T, w http.ResponseWriter, domai
348349
TotalItems: pointerTo(int64(2)),
349350
TotalPages: pointerTo(int64(1)),
350351
}
351-
} else if domain == "5678" {
352+
case "5678":
352353
rrSets = stackitdnsclient.ListRecordSetsResponse{
353354
ItemsPerPage: pointerTo(int64(20)),
354355
Message: pointerTo("success"),

internal/stackitprovider/stackit.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ type StackitDNSProvider struct {
2424
// NewStackitDNSProvider creates a new STACKIT DNS stackitprovider.
2525
func NewStackitDNSProvider(
2626
logger *zap.Logger,
27-
providerConfig Config,
27+
providerConfig *Config,
2828
stackitConfig ...stackitconfig.ConfigurationOption,
2929
) (*StackitDNSProvider, error) {
3030
apiClient, err := stackitdnsclient.NewAPIClient(stackitConfig...)

0 commit comments

Comments
 (0)