fix!: parse ttl correctly
This commit is contained in:
parent
844961d016
commit
0362928840
|
@ -113,13 +113,12 @@ var DNSValueFlag = &cli.StringFlag{
|
||||||
Destination: &DNSValue,
|
Destination: &DNSValue,
|
||||||
}
|
}
|
||||||
|
|
||||||
var DNSTTL int
|
var DNSTTL string
|
||||||
|
var DNSTTLFlag = &cli.StringFlag{
|
||||||
var DNSTTLFlag = &cli.IntFlag{
|
|
||||||
Name: "ttl",
|
Name: "ttl",
|
||||||
Value: 600,
|
Value: "600s",
|
||||||
Aliases: []string{"T"},
|
Aliases: []string{"T"},
|
||||||
Usage: "Domain name TTL value)",
|
Usage: "Domain name TTL value (seconds)",
|
||||||
Destination: &DNSTTL,
|
Destination: &DNSTTL,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@ package record
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
|
||||||
|
|
||||||
abraFormatter "coopcloud.tech/abra/cli/formatter"
|
abraFormatter "coopcloud.tech/abra/cli/formatter"
|
||||||
"coopcloud.tech/abra/cli/internal"
|
"coopcloud.tech/abra/cli/internal"
|
||||||
|
@ -91,11 +90,16 @@ You may also invoke this command in "wizard" mode and be prompted for input
|
||||||
logrus.Fatal(err)
|
logrus.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ttl, err := dns.GetTTL(internal.DNSTTL)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
record := libdns.Record{
|
record := libdns.Record{
|
||||||
Type: internal.DNSType,
|
Type: internal.DNSType,
|
||||||
Name: internal.DNSName,
|
Name: internal.DNSName,
|
||||||
Value: internal.DNSValue,
|
Value: internal.DNSValue,
|
||||||
TTL: time.Duration(internal.DNSTTL),
|
TTL: ttl,
|
||||||
}
|
}
|
||||||
|
|
||||||
if internal.DNSType == "MX" || internal.DNSType == "SRV" || internal.DNSType == "URI" {
|
if internal.DNSType == "MX" || internal.DNSType == "SRV" || internal.DNSType == "URI" {
|
||||||
|
@ -160,18 +164,23 @@ func autoConfigure(c *cli.Context, provider *gandi.Provider, zone string) error
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ttl, err := dns.GetTTL(internal.DNSTTL)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
atRecord := libdns.Record{
|
atRecord := libdns.Record{
|
||||||
Type: "A",
|
Type: "A",
|
||||||
Name: "@",
|
Name: "@",
|
||||||
Value: ipv4,
|
Value: ipv4,
|
||||||
TTL: time.Duration(internal.DNSTTL),
|
TTL: ttl,
|
||||||
}
|
}
|
||||||
|
|
||||||
wildcardRecord := libdns.Record{
|
wildcardRecord := libdns.Record{
|
||||||
Type: "A",
|
Type: "A",
|
||||||
Name: "*",
|
Name: "*",
|
||||||
Value: ipv4,
|
Value: ipv4,
|
||||||
TTL: time.Duration(internal.DNSTTL),
|
TTL: ttl,
|
||||||
}
|
}
|
||||||
|
|
||||||
records := []libdns.Record{atRecord, wildcardRecord}
|
records := []libdns.Record{atRecord, wildcardRecord}
|
||||||
|
@ -189,7 +198,7 @@ func autoConfigure(c *cli.Context, provider *gandi.Provider, zone string) error
|
||||||
if existingRecord.Type == record.Type &&
|
if existingRecord.Type == record.Type &&
|
||||||
existingRecord.Name == record.Name &&
|
existingRecord.Name == record.Name &&
|
||||||
existingRecord.Value == record.Value {
|
existingRecord.Value == record.Value {
|
||||||
logrus.Warnf("%s record for %s already exists?", record.Type, zone)
|
logrus.Warnf("%v for %s already exists?", record, zone)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,3 +94,12 @@ func EnsureDomainsResolveSameIPv4(domainName, server string) (string, error) {
|
||||||
|
|
||||||
return ipv4, nil
|
return ipv4, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetTTL parses a ttl string into a duration
|
||||||
|
func GetTTL(ttl string) (time.Duration, error) {
|
||||||
|
val, err := time.ParseDuration(ttl)
|
||||||
|
if err != nil {
|
||||||
|
return val, err
|
||||||
|
}
|
||||||
|
return val, nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue