|
|
aa1b57 |
From e4bfd9436500aa26dcc82d346039e8b1b886d64c Mon Sep 17 00:00:00 2001
|
|
|
aa1b57 |
From: Gris Ge <fge@redhat.com>
|
|
|
aa1b57 |
Date: Wed, 25 Mar 2020 11:27:55 +0800
|
|
|
aa1b57 |
Subject: [PATCH] dns: Enable support of 3+ unmixed DNS name server
|
|
|
aa1b57 |
|
|
|
aa1b57 |
Support 3 or more IPv4/IPv6 only DNS name servers.
|
|
|
aa1b57 |
Still not supported 3+ IPv4 and IPv6 mixed name servers.
|
|
|
aa1b57 |
|
|
|
aa1b57 |
A warning will be emitted when 4 or more DNS name severs defined.
|
|
|
aa1b57 |
|
|
|
aa1b57 |
Integration test cases added.
|
|
|
aa1b57 |
|
|
|
aa1b57 |
Signed-off-by: Gris Ge <fge@redhat.com>
|
|
|
aa1b57 |
---
|
|
|
aa1b57 |
libnmstate/validator.py | 13 +++++++++++--
|
|
|
aa1b57 |
1 file changed, 11 insertions(+), 2 deletions(-)
|
|
|
aa1b57 |
|
|
|
aa1b57 |
diff --git a/libnmstate/validator.py b/libnmstate/validator.py
|
|
|
aa1b57 |
index a817930..0e61858 100644
|
|
|
aa1b57 |
--- a/libnmstate/validator.py
|
|
|
aa1b57 |
+++ b/libnmstate/validator.py
|
|
|
aa1b57 |
@@ -166,9 +166,18 @@ def validate_dns(state):
|
|
|
aa1b57 |
dns_servers = (
|
|
|
aa1b57 |
state.get(DNS.KEY, {}).get(DNS.CONFIG, {}).get(DNS.SERVER, [])
|
|
|
aa1b57 |
)
|
|
|
aa1b57 |
- if len(dns_servers) > 2:
|
|
|
aa1b57 |
+ if len(dns_servers) > 3:
|
|
|
aa1b57 |
+ logging.warning(
|
|
|
aa1b57 |
+ "The libc resolver may not support more than 3 nameservers."
|
|
|
aa1b57 |
+ )
|
|
|
aa1b57 |
+ if (
|
|
|
aa1b57 |
+ len(dns_servers) > 2
|
|
|
aa1b57 |
+ and any(is_ipv6_address(n) for n in dns_servers)
|
|
|
aa1b57 |
+ and any(not is_ipv6_address(n) for n in dns_servers)
|
|
|
aa1b57 |
+ ):
|
|
|
aa1b57 |
raise NmstateNotImplementedError(
|
|
|
aa1b57 |
- "Nmstate only support at most 2 DNS name servers"
|
|
|
aa1b57 |
+ "Three or more nameservers are only supported when using "
|
|
|
aa1b57 |
+ "either IPv4 or IPv6 nameservers but not both."
|
|
|
aa1b57 |
)
|
|
|
aa1b57 |
|
|
|
aa1b57 |
|
|
|
aa1b57 |
--
|
|
|
aa1b57 |
2.18.2
|
|
|
aa1b57 |
|