Skip to content

Commit

Permalink
Add support for NS records in the Linode provider
Browse files Browse the repository at this point in the history
  • Loading branch information
julsemaan committed Oct 13, 2023
1 parent d7cec32 commit 30bf0d9
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 4 deletions.
15 changes: 11 additions & 4 deletions provider/linode/linode.go
Original file line number Diff line number Diff line change
Expand Up @@ -241,8 +241,13 @@ func (p *LinodeProvider) submitChanges(ctx context.Context, changes LinodeChange
return nil
}

func getWeight() *int {
func getWeight(recordType linodego.DomainRecordType) *int {
weight := 1

// NS records do not support having weight
if recordType == linodego.RecordTypeNS {
weight = 0
}
return &weight
}

Expand Down Expand Up @@ -331,7 +336,7 @@ func (p *LinodeProvider) ApplyChanges(ctx context.Context, changes *plan.Changes
Target: target,
Name: getStrippedRecordName(zone, ep),
Type: recordType,
Weight: getWeight(),
Weight: getWeight(recordType),
Port: getPort(),
Priority: getPriority(),
TTLSec: int(ep.RecordTTL),
Expand Down Expand Up @@ -395,7 +400,7 @@ func (p *LinodeProvider) ApplyChanges(ctx context.Context, changes *plan.Changes
Target: target,
Name: getStrippedRecordName(zone, ep),
Type: recordType,
Weight: getWeight(),
Weight: getWeight(recordType),
Port: getPort(),
Priority: getPriority(),
TTLSec: int(ep.RecordTTL),
Expand All @@ -419,7 +424,7 @@ func (p *LinodeProvider) ApplyChanges(ctx context.Context, changes *plan.Changes
Target: target,
Name: getStrippedRecordName(zone, ep),
Type: recordType,
Weight: getWeight(),
Weight: getWeight(recordType),
Port: getPort(),
Priority: getPriority(),
TTLSec: int(ep.RecordTTL),
Expand Down Expand Up @@ -515,6 +520,8 @@ func convertRecordType(recordType string) (linodego.DomainRecordType, error) {
return linodego.RecordTypeTXT, nil
case "SRV":
return linodego.RecordTypeSRV, nil
case "NS":
return linodego.RecordTypeNS, nil
default:
return "", fmt.Errorf("invalid Record Type: %s", recordType)
}
Expand Down
4 changes: 4 additions & 0 deletions provider/linode/linode_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,10 @@ func TestLinodeConvertRecordType(t *testing.T) {
require.NoError(t, err)
assert.Equal(t, linodego.RecordTypeSRV, record)

record, err = convertRecordType("NS")
require.NoError(t, err)
assert.Equal(t, linodego.RecordTypeNS, record)

_, err = convertRecordType("INVALID")
require.Error(t, err)
}
Expand Down

0 comments on commit 30bf0d9

Please sign in to comment.