freeipa/ipatests
Thomas Woerner 77803587d6 DNSResolver: Fix use of nameservers with ports
IPA DNS zone and forwardzone commands allow to use nameservers with ports
as "SERVER_IP port PORT_NUMBER". bind is supporting this syntax, but the
Resolver in dnspython that is used to verify the list of forwarders
(nameservers) is only allowing to have IP addresses in this list. With
dnspython version 2.20 there is a new validator in dns.resolver.BaseResolver
that ensures this.

Refs:
- https://bind9.readthedocs.io/en/v9_18_4/reference.html#zone-statement-grammar
- https://github.com/rthalley/dnspython/blob/master/dns/resolver.py#L1094

ipapython/dnsutil.DNSResolver derives from dns.resolver.Resolver. The setter
for nameservers has been overloaded in the DNSResolver class to split out
the port numbers into the nameserver_ports dict { SERVER_IP: PORT_NUMBER }.
After the setter for nameservers succeeded, nameserver_ports is set.
nameserver_ports is used in the resolve() method of dns.resolver.Resolver.

Additional tests have been added to verify that nameservers and also
nameserver_ports are properly set and also valid.

Fixes: https://pagure.io/freeipa/issue/9158

Signed-off-by: Thomas Woerner <twoerner@redhat.com>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
2022-08-16 13:49:40 +02:00
..
azure azure tests: disable TestInstallDNSSECFirst 2022-08-08 09:53:25 +02:00
man Simplify ipa-run-tests script 2019-07-16 13:23:21 +03:00
prci_definitions ipatests: fix the topology for rawhide/test_subids 2022-08-08 09:53:25 +02:00
pytest_ipa ipatests: xfail for test_ipahealthcheck_hidden_replica to respect pki version 2022-06-15 10:03:00 +02:00
test_cmdline Make the schema cache TTL user-configurable 2021-11-03 10:59:10 +01:00
test_custodia pylint: Fix useless-suppression 2022-03-11 13:37:08 -05:00
test_install Unify access to FQDN 2020-10-26 17:11:19 +11:00
test_integration Additional tests for RSN v3 2022-08-04 13:26:00 -04:00
test_ipaclient Remove support for csrgen 2021-01-21 13:51:45 +01:00
test_ipalib Add a new parameter type, SerialNumber, as a subclass of Str 2022-06-09 08:35:15 +02:00
test_ipaplatform ipatests/test_ipaplatform: Skip test_ipa_version on Debian 2021-11-25 21:02:56 -05:00
test_ipapython DNSResolver: Fix use of nameservers with ports 2022-08-16 13:49:40 +02:00
test_ipaserver Fix test_secure_ajp_connector.py failing with Python 3.6.8 2022-06-23 17:46:57 -04:00
test_ipatests_plugins ipatests: Don't turn Pytest IPA deprecation warnings into errors 2020-07-29 15:10:00 -04:00
test_webui ipatests: WebUI: do not allow subid range deletion 2022-08-03 09:33:42 +02:00
test_xmlrpc ipatests: Fix expected object classes 2022-08-16 13:07:03 +02:00
__init__.py Make an ipa-tests package 2013-06-17 19:22:50 +02:00
conftest.py pylint: Fix useless-suppression 2022-03-11 13:37:08 -05:00
create_external_ca.py Test external CA with DNS name constraints 2019-08-06 12:39:46 +02:00
data.py Fix more bytes/unicode issues 2015-10-22 18:34:46 +02:00
i18n.py pylint: Fix useless-suppression 2022-03-11 13:37:08 -05:00
ipa-run-tests ipatests: Specify shell implementation 2020-04-21 13:24:50 +02:00
ipa-test-config Rename pytest_plugins to ipatests.pytest_ipa 2018-08-02 17:07:43 +02:00
ipa-test-task ipatests: Fetch sudo rules without time offset 2021-06-03 09:21:45 +03:00
Makefile.am Build: fix distribution of static files for web UI 2016-11-09 13:08:32 +01:00
setup.cfg Port all setup.py to setuptools 2016-10-20 18:43:37 +02:00
setup.py Add Custodia tests 2021-06-16 10:28:17 -04:00
test_util.py pylint: Skip unused-private-member for property case 2022-03-11 13:37:08 -05:00
util.py pylint: Drop no longer used __home 2022-03-11 13:37:08 -05:00