knotd: fix TTL
This commit is contained in:
parent
c7baba441f
commit
8e8bf490b9
1 changed files with 15 additions and 0 deletions
|
@ -53,6 +53,7 @@ class MultiRecords:
|
||||||
class A:
|
class A:
|
||||||
address: str
|
address: str
|
||||||
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
||||||
|
ttl: int = 0
|
||||||
|
|
||||||
def rdata(self) -> dns.rdata.Rdata:
|
def rdata(self) -> dns.rdata.Rdata:
|
||||||
return dns.rdtypes.IN.A.A(
|
return dns.rdtypes.IN.A.A(
|
||||||
|
@ -64,6 +65,7 @@ class A:
|
||||||
class AAAA:
|
class AAAA:
|
||||||
address: str
|
address: str
|
||||||
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
||||||
|
ttl: int = 0
|
||||||
|
|
||||||
def rdata(self) -> dns.rdata.Rdata:
|
def rdata(self) -> dns.rdata.Rdata:
|
||||||
return dns.rdtypes.IN.AAAA.AAAA(
|
return dns.rdtypes.IN.AAAA.AAAA(
|
||||||
|
@ -75,6 +77,7 @@ class AAAA:
|
||||||
class PTR:
|
class PTR:
|
||||||
target: dns.name.Name
|
target: dns.name.Name
|
||||||
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
||||||
|
ttl: int = 0
|
||||||
|
|
||||||
def rdata(self) -> dns.rdata.Rdata:
|
def rdata(self) -> dns.rdata.Rdata:
|
||||||
return dns.rdtypes.ANY.PTR.PTR(
|
return dns.rdtypes.ANY.PTR.PTR(
|
||||||
|
@ -86,6 +89,7 @@ class PTR:
|
||||||
class CNAME:
|
class CNAME:
|
||||||
target: dns.name.Name
|
target: dns.name.Name
|
||||||
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
||||||
|
ttl: int = 0
|
||||||
|
|
||||||
def rdata(self) -> dns.rdata.Rdata:
|
def rdata(self) -> dns.rdata.Rdata:
|
||||||
return dns.rdtypes.ANY.CNAME.CNAME(
|
return dns.rdtypes.ANY.CNAME.CNAME(
|
||||||
|
@ -98,6 +102,7 @@ class MX:
|
||||||
exchange: Annotated[dns.name.Name, MultiRecords]
|
exchange: Annotated[dns.name.Name, MultiRecords]
|
||||||
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
||||||
preference: int = 10
|
preference: int = 10
|
||||||
|
ttl: int = 0
|
||||||
|
|
||||||
def rdata(self) -> dns.rdata.Rdata:
|
def rdata(self) -> dns.rdata.Rdata:
|
||||||
return dns.rdtypes.ANY.MX.MX(
|
return dns.rdtypes.ANY.MX.MX(
|
||||||
|
@ -112,6 +117,7 @@ class MX:
|
||||||
class NS:
|
class NS:
|
||||||
target: Annotated[dns.name.Name, MultiRecords]
|
target: Annotated[dns.name.Name, MultiRecords]
|
||||||
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
||||||
|
ttl: int = 0
|
||||||
|
|
||||||
def rdata(self) -> dns.rdata.Rdata:
|
def rdata(self) -> dns.rdata.Rdata:
|
||||||
return dns.rdtypes.ANY.NS.NS(
|
return dns.rdtypes.ANY.NS.NS(
|
||||||
|
@ -123,6 +129,7 @@ class NS:
|
||||||
class SPF:
|
class SPF:
|
||||||
data: str
|
data: str
|
||||||
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
||||||
|
ttl: int = 0
|
||||||
|
|
||||||
def rdata(self) -> dns.rdata.Rdata:
|
def rdata(self) -> dns.rdata.Rdata:
|
||||||
return dns.rdtypes.ANY.SPF.SPF(
|
return dns.rdtypes.ANY.SPF.SPF(
|
||||||
|
@ -134,6 +141,7 @@ class SPF:
|
||||||
class TXT:
|
class TXT:
|
||||||
data: str
|
data: str
|
||||||
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
||||||
|
ttl: int = 0
|
||||||
|
|
||||||
def rdata(self) -> dns.rdata.Rdata:
|
def rdata(self) -> dns.rdata.Rdata:
|
||||||
return dns.rdtypes.ANY.TXT.TXT(
|
return dns.rdtypes.ANY.TXT.TXT(
|
||||||
|
@ -148,6 +156,7 @@ class SRV:
|
||||||
port: int
|
port: int
|
||||||
priority: int = 10
|
priority: int = 10
|
||||||
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
||||||
|
ttl: int = 0
|
||||||
|
|
||||||
def rdata(self) -> dns.rdata.Rdata:
|
def rdata(self) -> dns.rdata.Rdata:
|
||||||
return dns.rdtypes.IN.SRV.SRV(
|
return dns.rdtypes.IN.SRV.SRV(
|
||||||
|
@ -170,6 +179,7 @@ class SOA:
|
||||||
minimum: int
|
minimum: int
|
||||||
serial: int = 1
|
serial: int = 1
|
||||||
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
name: Annotated[dns.name.Name, MultiRecords] = dns.name.empty
|
||||||
|
ttl: int = 0
|
||||||
|
|
||||||
def rdata(self) -> dns.rdata.Rdata:
|
def rdata(self) -> dns.rdata.Rdata:
|
||||||
return dns.rdtypes.ANY.SOA.SOA(
|
return dns.rdtypes.ANY.SOA.SOA(
|
||||||
|
@ -364,6 +374,10 @@ def main() -> int:
|
||||||
"required": True,
|
"required": True,
|
||||||
"options": spec_options_of_type(SOA),
|
"options": spec_options_of_type(SOA),
|
||||||
},
|
},
|
||||||
|
"default_ttl": {
|
||||||
|
"type": "int",
|
||||||
|
"default": 3600,
|
||||||
|
},
|
||||||
"hosts": {"type": "dict", "default": {}},
|
"hosts": {"type": "dict", "default": {}},
|
||||||
"reverse_hosts": {"type": "dict", "default": {}},
|
"reverse_hosts": {"type": "dict", "default": {}},
|
||||||
}
|
}
|
||||||
|
@ -403,6 +417,7 @@ def main() -> int:
|
||||||
node = zone.get_node(record.name, create=True)
|
node = zone.get_node(record.name, create=True)
|
||||||
rdata = record.rdata()
|
rdata = record.rdata()
|
||||||
dataset = node.get_rdataset(rdata.rdclass, rdata.rdtype, create=True)
|
dataset = node.get_rdataset(rdata.rdclass, rdata.rdtype, create=True)
|
||||||
|
dataset.ttl = record.ttl if record.ttl > 0 else module.params["default_ttl"]
|
||||||
dataset.add(rdata)
|
dataset.add(rdata)
|
||||||
|
|
||||||
zone_text = zone.to_text(relativize=False, sorted=True)
|
zone_text = zone.to_text(relativize=False, sorted=True)
|
||||||
|
|
Loading…
Reference in a new issue