Skip to content

Commit b8cec05

Browse files
committed
chore: migrate to stackit-sdk-go v1api and update API calls
1 parent b2b2d05 commit b8cec05

File tree

11 files changed

+136
-135
lines changed

11 files changed

+136
-135
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ require (
1111
github.com/spf13/pflag v1.0.10
1212
github.com/spf13/viper v1.21.0
1313
github.com/stackitcloud/stackit-sdk-go/core v0.24.0
14-
github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.6
14+
github.com/stackitcloud/stackit-sdk-go/services/dns v0.19.2
1515
github.com/stretchr/testify v1.11.1
1616
go.uber.org/mock v0.6.0
1717
go.uber.org/zap v1.27.1

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,8 @@ github.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU=
155155
github.com/spf13/viper v1.21.0/go.mod h1:P0lhsswPGWD/1lZJ9ny3fYnVqxiegrlNrEmgLjbTCAY=
156156
github.com/stackitcloud/stackit-sdk-go/core v0.24.0 h1:kHCcezCJ5OGSP7RRuGOxD5rF2wejpkEiRr/OdvNcuPQ=
157157
github.com/stackitcloud/stackit-sdk-go/core v0.24.0/go.mod h1:osMglDby4csGZ5sIfhNyYq1bS1TxIdPY88+skE/kkmI=
158-
github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.6 h1:GBRb49x5Nax/oQQaaf2F3kKwv8DQQOL0TQOC0C/v/Ew=
159-
github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.6/go.mod h1:IX9iL3MigDZUmzwswTJMfYvyi118KAHrFMfjJUy5NYk=
158+
github.com/stackitcloud/stackit-sdk-go/services/dns v0.19.2 h1:PE7TXoR2ZjVym5E4apZFJxEkApAid1/Z4x1Mz2QIcD0=
159+
github.com/stackitcloud/stackit-sdk-go/services/dns v0.19.2/go.mod h1:3NZpITg0qJ+f1y0RUTcXKc4e122tFhHDIVm2mY0wWsw=
160160
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
161161
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
162162
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=

internal/stackitprovider/apply_changes.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"fmt"
66
"sync"
77

8-
stackitdnsclient "github.com/stackitcloud/stackit-sdk-go/services/dns"
8+
stackitdnsclient "github.com/stackitcloud/stackit-sdk-go/services/dns/v1api"
99
"go.uber.org/zap"
1010
"sigs.k8s.io/external-dns/endpoint"
1111
"sigs.k8s.io/external-dns/plan"
@@ -124,7 +124,7 @@ func (d *StackitDNSProvider) createRRSet(
124124
return fmt.Errorf("no matching zone found for %s", change.DNSName)
125125
}
126126

127-
logFields := getLogFields(change, CREATE, *resultZone.Id)
127+
logFields := getLogFields(change, CREATE, resultZone.Id)
128128
d.logger.Info("create record set", logFields...)
129129

130130
if d.dryRun {
@@ -138,7 +138,7 @@ func (d *StackitDNSProvider) createRRSet(
138138
rrSetPayload := getStackitRecordSetPayload(change)
139139

140140
// ignore all errors to just retry on next run
141-
_, err := d.apiClient.CreateRecordSet(ctx, d.projectId, *resultZone.Id).CreateRecordSetPayload(rrSetPayload).Execute()
141+
_, err := d.apiClient.DefaultAPI.CreateRecordSet(ctx, d.projectId, resultZone.Id).CreateRecordSetPayload(rrSetPayload).Execute()
142142
if err != nil {
143143
d.logger.Error("error creating record set", zap.Error(err))
144144

@@ -163,7 +163,7 @@ func (d *StackitDNSProvider) updateRRSet(
163163
return err
164164
}
165165

166-
logFields := getLogFields(change, UPDATE, *resultRRSet.Id)
166+
logFields := getLogFields(change, UPDATE, resultRRSet.Id)
167167
d.logger.Info("update record set", logFields...)
168168

169169
if d.dryRun {
@@ -174,7 +174,7 @@ func (d *StackitDNSProvider) updateRRSet(
174174

175175
rrSet := getStackitPartialUpdateRecordSetPayload(change)
176176

177-
_, err = d.apiClient.PartialUpdateRecordSet(ctx, d.projectId, *resultZone.Id, *resultRRSet.Id).PartialUpdateRecordSetPayload(rrSet).Execute()
177+
_, err = d.apiClient.DefaultAPI.PartialUpdateRecordSet(ctx, d.projectId, resultZone.Id, resultRRSet.Id).PartialUpdateRecordSetPayload(rrSet).Execute()
178178
if err != nil {
179179
d.logger.Error("error updating record set", zap.Error(err))
180180

@@ -199,7 +199,7 @@ func (d *StackitDNSProvider) deleteRRSet(
199199
return err
200200
}
201201

202-
logFields := getLogFields(change, DELETE, *resultRRSet.Id)
202+
logFields := getLogFields(change, DELETE, resultRRSet.Id)
203203
d.logger.Info("delete record set", logFields...)
204204

205205
if d.dryRun {
@@ -208,7 +208,7 @@ func (d *StackitDNSProvider) deleteRRSet(
208208
return nil
209209
}
210210

211-
_, err = d.apiClient.DeleteRecordSet(ctx, d.projectId, *resultZone.Id, *resultRRSet.Id).Execute()
211+
_, err = d.apiClient.DefaultAPI.DeleteRecordSet(ctx, d.projectId, resultZone.Id, resultRRSet.Id).Execute()
212212
if err != nil {
213213
d.logger.Error("error deleting record set", zap.Error(err))
214214

internal/stackitprovider/apply_changes_test.go

Lines changed: 33 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"net/http/httptest"
99
"testing"
1010

11-
stackitdnsclient "github.com/stackitcloud/stackit-sdk-go/services/dns"
11+
stackitdnsclient "github.com/stackitcloud/stackit-sdk-go/services/dns/v1api"
1212
"github.com/stretchr/testify/assert"
1313
"sigs.k8s.io/external-dns/endpoint"
1414
"sigs.k8s.io/external-dns/plan"
@@ -114,8 +114,7 @@ func TestNoRRSetFound(t *testing.T) {
114114
ctx := context.Background()
115115
validZoneResponse := getValidResponseZoneAllBytes(t)
116116
rrSets := getValidResponseRRSetAll()
117-
rrSet := *rrSets.RrSets
118-
*rrSet[0].Name = "notfound.test.com"
117+
rrSets.RrSets[0].Name = "notfound.test.com"
119118
validRRSetResponse, err := json.Marshal(rrSets)
120119
assert.NoError(t, err)
121120

@@ -375,42 +374,56 @@ func getValidResponseZoneAllBytes(t *testing.T) []byte {
375374

376375
func getValidZoneResponseAll() stackitdnsclient.ListZonesResponse {
377376
return stackitdnsclient.ListZonesResponse{
378-
ItemsPerPage: pointerTo(int64(10)),
377+
ItemsPerPage: int32(10),
379378
Message: pointerTo("success"),
380-
TotalItems: pointerTo(int64(2)),
381-
TotalPages: pointerTo(int64(1)),
382-
Zones: &[]stackitdnsclient.Zone{
383-
{Id: pointerTo("1234"), DnsName: pointerTo("test.com")},
384-
{Id: pointerTo("5678"), DnsName: pointerTo("test2.com")},
379+
TotalItems: int32(2),
380+
TotalPages: int32(1),
381+
Zones: []stackitdnsclient.Zone{
382+
{Id: "1234", DnsName: "test.com"},
383+
{Id: "5678", DnsName: "test2.com"},
385384
},
386385
}
387386
}
388387

389388
func getValidResponseRRSetAllBytes(t *testing.T) []byte {
390389
t.Helper()
391390

392-
rrSets := getValidResponseRRSetAll()
393-
validRRSetResponse, err := json.Marshal(rrSets)
391+
rrSetResponse := getValidRecordSetResponse()
392+
validRRSetResponse, err := json.Marshal(rrSetResponse)
394393
assert.NoError(t, err)
395394

396395
return validRRSetResponse
397396
}
398397

398+
func getValidRecordSetResponse() stackitdnsclient.RecordSetResponse {
399+
return stackitdnsclient.RecordSetResponse{
400+
Message: pointerTo("success"),
401+
Rrset: stackitdnsclient.RecordSet{
402+
Name: "test.com",
403+
Type: "A",
404+
Ttl: int32(300),
405+
Records: []stackitdnsclient.Record{
406+
{Content: "1.2.3.4"},
407+
},
408+
},
409+
}
410+
}
411+
399412
func getValidResponseRRSetAll() stackitdnsclient.ListRecordSetsResponse {
400413
return stackitdnsclient.ListRecordSetsResponse{
401-
ItemsPerPage: pointerTo(int64(20)),
414+
ItemsPerPage: int32(20),
402415
Message: pointerTo("success"),
403-
RrSets: &[]stackitdnsclient.RecordSet{
416+
RrSets: []stackitdnsclient.RecordSet{
404417
{
405-
Name: pointerTo("test.com"),
406-
Type: pointerTo(stackitdnsclient.RECORDSETTYPE_A),
407-
Ttl: pointerTo(int64(300)),
408-
Records: &[]stackitdnsclient.Record{
409-
{Content: pointerTo("1.2.3.4")},
418+
Name: "test.com",
419+
Type: "A",
420+
Ttl: int32(300),
421+
Records: []stackitdnsclient.Record{
422+
{Content: "1.2.3.4"},
410423
},
411424
},
412425
},
413-
TotalItems: pointerTo(int64(2)),
414-
TotalPages: pointerTo(int64(1)),
426+
TotalItems: int32(2),
427+
TotalPages: int32(1),
415428
}
416429
}

internal/stackitprovider/helper.go

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package stackitprovider
33
import (
44
"strings"
55

6-
stackitdnsclient "github.com/stackitcloud/stackit-sdk-go/services/dns"
6+
stackitdnsclient "github.com/stackitcloud/stackit-sdk-go/services/dns/v1api"
77
"go.uber.org/zap"
88
"sigs.k8s.io/external-dns/endpoint"
99
)
@@ -20,10 +20,7 @@ func findBestMatchingZone(
2020

2121
for i := range zones {
2222
zone := &zones[i]
23-
if zone.DnsName == nil {
24-
continue
25-
}
26-
if l := len(*zone.DnsName); l > count && strings.Contains(rrSetName, *zone.DnsName) {
23+
if l := len(zone.DnsName); l > count && strings.Contains(rrSetName, zone.DnsName) {
2724
count = l
2825
domainZone = zone
2926
}
@@ -43,10 +40,7 @@ func findRRSet(
4340
) (*stackitdnsclient.RecordSet, bool) {
4441
for i := range rrSets {
4542
rrSet := &rrSets[i]
46-
if rrSet.Name == nil || rrSet.Type == nil {
47-
continue
48-
}
49-
if *rrSet.Name == rrSetName && string(*rrSet.Type) == recordType {
43+
if rrSet.Name == rrSetName && rrSet.Type == recordType {
5044
return rrSet, true
5145
}
5246
}
@@ -77,15 +71,15 @@ func getStackitRecordSetPayload(change *endpoint.Endpoint) stackitdnsclient.Crea
7771
records := make([]stackitdnsclient.RecordPayload, len(change.Targets))
7872
for i := range change.Targets {
7973
records[i] = stackitdnsclient.RecordPayload{
80-
Content: &change.Targets[i],
74+
Content: change.Targets[i],
8175
}
8276
}
8377

8478
return stackitdnsclient.CreateRecordSetPayload{
85-
Name: &change.DNSName,
86-
Records: &records,
87-
Ttl: pointerTo(int64(change.RecordTTL)),
88-
Type: (stackitdnsclient.CreateRecordSetPayloadGetTypeAttributeType)(&change.RecordType),
79+
Name: change.DNSName,
80+
Records: records,
81+
Ttl: pointerTo(int32(change.RecordTTL)),
82+
Type: change.RecordType,
8983
}
9084
}
9185

@@ -94,14 +88,14 @@ func getStackitPartialUpdateRecordSetPayload(change *endpoint.Endpoint) stackitd
9488
records := make([]stackitdnsclient.RecordPayload, len(change.Targets))
9589
for i := range change.Targets {
9690
records[i] = stackitdnsclient.RecordPayload{
97-
Content: &change.Targets[i],
91+
Content: change.Targets[i],
9892
}
9993
}
10094

10195
return stackitdnsclient.PartialUpdateRecordSetPayload{
10296
Name: &change.DNSName,
103-
Records: &records,
104-
Ttl: pointerTo(int64(change.RecordTTL)),
97+
Records: records,
98+
Ttl: pointerTo(int32(change.RecordTTL)),
10599
}
106100
}
107101

internal/stackitprovider/helper_test.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"reflect"
55
"testing"
66

7-
stackitdnsclient "github.com/stackitcloud/stackit-sdk-go/services/dns"
7+
stackitdnsclient "github.com/stackitcloud/stackit-sdk-go/services/dns/v1api"
88
"go.uber.org/zap"
99
"sigs.k8s.io/external-dns/endpoint"
1010
)
@@ -72,15 +72,15 @@ func TestGetStackitRRSetRecordPost(t *testing.T) {
7272
},
7373
}
7474
expected := stackitdnsclient.CreateRecordSetPayload{
75-
Name: pointerTo("test."),
76-
Ttl: pointerTo(int64(300)),
77-
Type: (stackitdnsclient.CreateRecordSetPayloadGetTypeAttributeType)(pointerTo("A")),
78-
Records: &[]stackitdnsclient.RecordPayload{
75+
Name: "test.",
76+
Ttl: pointerTo(int32(300)),
77+
Type: "A",
78+
Records: []stackitdnsclient.RecordPayload{
7979
{
80-
Content: pointerTo("192.0.2.1"),
80+
Content: "192.0.2.1",
8181
},
8282
{
83-
Content: pointerTo("192.0.2.2"),
83+
Content: "192.0.2.2",
8484
},
8585
},
8686
}
@@ -94,9 +94,9 @@ func TestFindBestMatchingZone(t *testing.T) {
9494
t.Parallel()
9595

9696
zones := []stackitdnsclient.Zone{
97-
{DnsName: pointerTo("foo.com")},
98-
{DnsName: pointerTo("bar.com")},
99-
{DnsName: pointerTo("baz.com")},
97+
{DnsName: "foo.com"},
98+
{DnsName: "bar.com"},
99+
{DnsName: "baz.com"},
100100
}
101101

102102
tests := []struct {
@@ -125,9 +125,9 @@ func TestFindRRSet(t *testing.T) {
125125
t.Parallel()
126126

127127
rrSets := []stackitdnsclient.RecordSet{
128-
{Name: pointerTo("www.foo.com"), Type: pointerTo(stackitdnsclient.RECORDSETTYPE_A)},
129-
{Name: pointerTo("www.bar.com"), Type: pointerTo(stackitdnsclient.RECORDSETTYPE_A)},
130-
{Name: pointerTo("www.baz.com"), Type: pointerTo(stackitdnsclient.RECORDSETTYPE_A)},
128+
{Name: "www.foo.com", Type: "A"},
129+
{Name: "www.bar.com", Type: "A"},
130+
{Name: "www.baz.com", Type: "A"},
131131
}
132132

133133
tests := []struct {
@@ -197,13 +197,13 @@ func TestGetStackitRRSetRecordPatch(t *testing.T) {
197197

198198
expected := stackitdnsclient.PartialUpdateRecordSetPayload{
199199
Name: pointerTo("test."),
200-
Ttl: pointerTo(int64(300)),
201-
Records: &[]stackitdnsclient.RecordPayload{
200+
Ttl: pointerTo(int32(300)),
201+
Records: []stackitdnsclient.RecordPayload{
202202
{
203-
Content: pointerTo("192.0.2.1"),
203+
Content: "192.0.2.1",
204204
},
205205
{
206-
Content: pointerTo("192.0.2.2"),
206+
Content: "192.0.2.2",
207207
},
208208
},
209209
}

internal/stackitprovider/records.go

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package stackitprovider
33
import (
44
"context"
55

6-
stackitdnsclient "github.com/stackitcloud/stackit-sdk-go/services/dns"
6+
stackitdnsclient "github.com/stackitcloud/stackit-sdk-go/services/dns/v1api"
77
"sigs.k8s.io/external-dns/endpoint"
88
"sigs.k8s.io/external-dns/provider"
99
)
@@ -25,10 +25,7 @@ func (d *StackitDNSProvider) Records(ctx context.Context) ([]*endpoint.Endpoint,
2525

2626
for i := range zones {
2727
zone := &zones[i]
28-
if zone.Id == nil {
29-
continue
30-
}
31-
zoneIdsChannel <- *zone.Id
28+
zoneIdsChannel <- zone.Id
3229
}
3330

3431
for i := 0; i < len(zones); i++ {
@@ -104,23 +101,20 @@ func (d *StackitDNSProvider) collectEndPoints(
104101
}
105102

106103
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 {
104+
if r == nil || len(r.Records) == 0 {
108105
return "", "", 0, nil, false
109106
}
110107

111-
return *r.Name, string(*r.Type), endpoint.TTL(*r.Ttl), *r.Records, true
108+
return r.Name, r.Type, endpoint.TTL(r.Ttl), r.Records, true
112109
}
113110

114111
func endpointsFromRecords(name, recordType string, ttl endpoint.TTL, records []stackitdnsclient.Record) []*endpoint.Endpoint {
115112
endpoints := make([]*endpoint.Endpoint, 0, len(records))
116113

117114
for i := range records {
118115
rec := &records[i]
119-
if rec.Content == nil {
120-
continue
121-
}
122116

123-
endpoints = append(endpoints, endpoint.NewEndpointWithTTL(name, recordType, ttl, *rec.Content))
117+
endpoints = append(endpoints, endpoint.NewEndpointWithTTL(name, recordType, ttl, rec.Content))
124118
}
125119

126120
return endpoints

0 commit comments

Comments
 (0)