Skip to content

Commit c32072c

Browse files
committed
DNS: allow wildcards for record names
1 parent 67a49ad commit c32072c

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

genesis_core/user_api/dns/dm/models.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ class SOARecordDeleteRestricted(exceptions.RestAlchemyException):
3939
message = "SOA record cannot be deleted without domain deletion."
4040

4141

42+
class RecordNameWithWildcard(types_network.RecordName):
43+
# Difference - allow wildcard at the beginning of domain name.
44+
pattern = re.compile(r"^(\*\.){0,1}([a-zA-Z0-9-_]{1,61}\.{0,1}){0,30}$")
45+
46+
4247
class CommonModel(
4348
models.ModelWithTimestamp,
4449
models.ModelWithUUID,
@@ -121,7 +126,7 @@ class ARecord(AbstractRecord):
121126
KIND = "A"
122127

123128
name = properties.property(
124-
types_network.RecordName(),
129+
RecordNameWithWildcard(),
125130
required=True,
126131
)
127132
address = properties.property(
@@ -137,7 +142,7 @@ class SOARecord(AbstractRecord):
137142
KIND = "SOA"
138143

139144
name = properties.property(
140-
types_network.RecordName(),
145+
RecordNameWithWildcard(),
141146
required=True,
142147
)
143148
primary_dns = properties.property(
@@ -158,7 +163,7 @@ class TXTRecord(AbstractRecord):
158163
KIND = "TXT"
159164

160165
name = properties.property(
161-
types_network.RecordName(),
166+
RecordNameWithWildcard(),
162167
required=True,
163168
)
164169
content = properties.property(
@@ -172,7 +177,7 @@ class NSRecord(AbstractRecord):
172177
KIND = "NS"
173178

174179
name = properties.property(
175-
types_network.RecordName(),
180+
RecordNameWithWildcard(),
176181
required=True,
177182
)
178183
content = properties.property(

0 commit comments

Comments
 (0)