Skip to content

Commit 0d0c616

Browse files
query zones once to apply changes
1 parent 0274e83 commit 0d0c616

File tree

1 file changed

+11
-18
lines changed

1 file changed

+11
-18
lines changed

internal/stackitprovider/apply_changes.go

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,25 @@ import (
1212

1313
// ApplyChanges applies a given set of changes in a given zone.
1414
func (d *StackitDNSProvider) ApplyChanges(ctx context.Context, changes *plan.Changes) error {
15+
zones, err := d.zoneFetcherClient.zones(ctx)
16+
if err != nil {
17+
return err
18+
}
19+
1520
// create rr set. POST /v1/projects/{projectId}/zones/{zoneId}/rrsets
16-
err := d.createRRSets(ctx, changes.Create)
21+
err = d.createRRSets(ctx, zones, changes.Create)
1722
if err != nil {
1823
return err
1924
}
2025

2126
// update rr set. PATCH /v1/projects/{projectId}/zones/{zoneId}/rrsets/{rrSetId}
22-
err = d.updateRRSets(ctx, changes.UpdateNew)
27+
err = d.updateRRSets(ctx, zones, changes.UpdateNew)
2328
if err != nil {
2429
return err
2530
}
2631

2732
// delete rr set. DELETE /v1/projects/{projectId}/zones/{zoneId}/rrsets/{rrSetId}
28-
err = d.deleteRRSets(ctx, changes.Delete)
33+
err = d.deleteRRSets(ctx, zones, changes.Delete)
2934
if err != nil {
3035
return err
3136
}
@@ -37,42 +42,35 @@ func (d *StackitDNSProvider) ApplyChanges(ctx context.Context, changes *plan.Cha
3742
// creation field.
3843
func (d *StackitDNSProvider) createRRSets(
3944
ctx context.Context,
45+
zones []stackitdnsclient.Zone,
4046
endpoints []*endpoint.Endpoint,
4147
) error {
4248
if len(endpoints) == 0 {
4349
return nil
4450
}
4551

46-
zones, err := d.zoneFetcherClient.zones(ctx)
47-
if err != nil {
48-
return err
49-
}
50-
5152
return d.handleRRSetWithWorkers(ctx, endpoints, zones, CREATE)
5253
}
5354

5455
// updateRRSets patches (overrides) contents in the record sets in the stackitprovider for the given
5556
// endpoints that are in the update new field.
5657
func (d *StackitDNSProvider) updateRRSets(
5758
ctx context.Context,
59+
zones []stackitdnsclient.Zone,
5860
endpoints []*endpoint.Endpoint,
5961
) error {
6062
if len(endpoints) == 0 {
6163
return nil
6264
}
6365

64-
zones, err := d.zoneFetcherClient.zones(ctx)
65-
if err != nil {
66-
return err
67-
}
68-
6966
return d.handleRRSetWithWorkers(ctx, endpoints, zones, UPDATE)
7067
}
7168

7269
// deleteRRSets deletes record sets in the stackitprovider for the given endpoints that are in the
7370
// deletion field.
7471
func (d *StackitDNSProvider) deleteRRSets(
7572
ctx context.Context,
73+
zones []stackitdnsclient.Zone,
7674
endpoints []*endpoint.Endpoint,
7775
) error {
7876
if len(endpoints) == 0 {
@@ -83,11 +81,6 @@ func (d *StackitDNSProvider) deleteRRSets(
8381

8482
d.logger.Info("records to delete", zap.String("records", fmt.Sprintf("%v", endpoints)))
8583

86-
zones, err := d.zoneFetcherClient.zones(ctx)
87-
if err != nil {
88-
return err
89-
}
90-
9184
return d.handleRRSetWithWorkers(ctx, endpoints, zones, DELETE)
9285
}
9386

0 commit comments

Comments
 (0)