ipatests: Handle network-isolated mode

Since the dns plugin's tests have no access to wild resolvers
nobody answer such requests but authoritative NS.

Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
This commit is contained in:
Stanislav Levin 2021-05-15 14:53:46 +03:00 committed by Alexander Bokovoy
parent fc0c6b44a8
commit cc72a988d6

View File

@ -83,6 +83,18 @@ zone2_ns_dnsname = DNSName(zone2_ns)
zone2_rname = u'root.%s' % zone2_absolute zone2_rname = u'root.%s' % zone2_absolute
zone2_rname_dnsname = DNSName(zone2_rname) zone2_rname_dnsname = DNSName(zone2_rname)
zone2_sub = "sub.%s" % zone2_absolute
zone2_sub_ns = "ns1.%s" % zone2_sub
zone2_sub_ns_dnsname = DNSName(zone2_sub_ns)
zone2_sub_rname = "root.%s" % zone2_sub
zone2_sub_rname_dnsname = DNSName(zone2_sub_rname)
zone2_sub_dnsname = DNSName(zone2_sub)
zone2_sub_absolute_dnsname = DNSName(zone2_sub)
zone2_sub_dn = DN(
("idnsname", zone2_sub), api.env.container_dns, api.env.basedn
)
zone3 = u'zone3.test' zone3 = u'zone3.test'
zone3_dnsname = DNSName(zone3) zone3_dnsname = DNSName(zone3)
zone3_absolute = u'%s.' % zone3 zone3_absolute = u'%s.' % zone3
@ -97,6 +109,13 @@ zone3_ns2_dnsname = DNSName(zone3_ns2)
zone3_rname = u'root.%s' % zone3_absolute zone3_rname = u'root.%s' % zone3_absolute
zone3_rname_dnsname = DNSName(zone3_rname) zone3_rname_dnsname = DNSName(zone3_rname)
zone3a = "zone3a.test"
zone3a_absolute = "%s." % zone3a
zone3a_rname = "root.%s" % zone3a_absolute
zone3a_sub = "sub.%s" % zone3a_absolute
zone3a_sub_rname = "root.%s" % zone3a_sub
zone3_ns2_arec = u'ns2' zone3_ns2_arec = u'ns2'
zone3_ns2_arec_dnsname = DNSName(zone3_ns2_arec) zone3_ns2_arec_dnsname = DNSName(zone3_ns2_arec)
zone3_ns2_arec_dn = DN(('idnsname',zone3_ns2_arec), zone3_dn) zone3_ns2_arec_dn = DN(('idnsname',zone3_ns2_arec), zone3_dn)
@ -261,8 +280,8 @@ ptr_revzone3_dnsname = DNSName(ptr_revzone3)
ptr_revzone3_dn = DN(('idnsname',cnamerev), revzone3_classless2_dn) ptr_revzone3_dn = DN(('idnsname',cnamerev), revzone3_classless2_dn)
ptr_revzone3_hostname = zone3_ns2 ptr_revzone3_hostname = zone3_ns2
relnxname = u'does-not-exist-test' relnxname = "does-not-exist-test"
absnxname = u'does.not.exist.test.' absnxname = "does.not.exist.test."
arec1 = u'172.16.29.111' arec1 = u'172.16.29.111'
arec2 = u'172.31.254.222' arec2 = u'172.31.254.222'
@ -449,10 +468,26 @@ class test_dns(Declarative):
pass pass
cleanup_commands = [ cleanup_commands = [
('dnszone_del', [zone1, zone2, zone3, zone4, zone5, revzone1, revzone2, (
revzone3_classless1, revzone3_classless2, "dnszone_del",
idnzone1, revidnzone1], [
{'continue': True}), zone1,
zone2,
zone2_sub,
zone3,
zone3a,
zone3a_sub,
zone4,
zone5,
revzone1,
revzone2,
revzone3_classless1,
revzone3_classless2,
idnzone1,
revidnzone1,
],
{'continue': True},
),
('dnsconfig_mod', [], {'idnsforwarders' : None, ('dnsconfig_mod', [], {'idnsforwarders' : None,
'idnsforwardpolicy' : None, 'idnsforwardpolicy' : None,
'idnsallowsyncptr' : None, 'idnsallowsyncptr' : None,
@ -541,35 +576,50 @@ class test_dns(Declarative):
), ),
dict( dict(
desc='Try to create a zone with nonexistent NS entry', desc=f"Parent zone for {zone2} tests",
command=( command=(
'dnszone_add', [zone2], { 'dnszone_add', [zone2], {
'idnssoamname': zone2_ns,
'idnssoarname': zone2_rname, 'idnssoarname': zone2_rname,
} }
), ),
expected=errors.NotFound(reason='Nameserver \'%s\' does not have a corresponding A/AAAA record' % (zone2_ns)), expected=lambda x, y: True,
),
dict(
desc="Try to create a zone with nonexistent NS entry",
command=(
"dnszone_add", [zone2_sub], {
"idnssoamname": zone2_sub_ns,
"idnssoarname": zone2_sub_rname,
}
),
expected=errors.NotFound(
reason=(
"Nameserver '%s' does not have a corresponding A/AAAA "
"record" % zone2_sub_ns
),
),
), ),
dict( dict(
desc='Create a zone with nonexistent NS entry with --force', desc='Create a zone with nonexistent NS entry with --force',
command=( command=(
'dnszone_add', [zone2], { "dnszone_add", [zone2_sub], {
'idnssoamname': zone2_ns, "idnssoamname": zone2_sub_ns,
'idnssoarname': zone2_rname, "idnssoarname": zone2_sub_rname,
'force': True, "force": True,
} }
), ),
expected={ expected={
'value': zone2_absolute_dnsname, 'value': zone2_sub_absolute_dnsname,
'summary': None, 'summary': None,
'result': { 'result': {
'dn': zone2_dn, 'dn': zone2_sub_dn,
'idnsname': [zone2_absolute_dnsname], 'idnsname': [zone2_sub_absolute_dnsname],
'idnszoneactive': [u'TRUE'], 'idnszoneactive': [u'TRUE'],
'idnssoamname': [zone2_ns_dnsname], 'idnssoamname': [zone2_sub_ns_dnsname],
'nsrecord': nameservers, 'nsrecord': nameservers,
'idnssoarname': [zone2_rname_dnsname], 'idnssoarname': [zone2_sub_rname_dnsname],
'idnssoaserial': [fuzzy_digits], 'idnssoaserial': [fuzzy_digits],
'idnssoarefresh': [fuzzy_digits], 'idnssoarefresh': [fuzzy_digits],
'idnssoaretry': [fuzzy_digits], 'idnssoaretry': [fuzzy_digits],
@ -1479,8 +1529,17 @@ class test_dns(Declarative):
dict( dict(
desc='Try to add unresolvable absolute NS record to %r using dnsrecord_add' % (name_ns), desc='Try to add unresolvable absolute NS record to %r using dnsrecord_add' % (name_ns),
command=('dnsrecord_add', [zone1, name_ns], {'nsrecord': absnxname}), command=(
expected=errors.NotFound(reason=u"Nameserver '%s' does not have a corresponding A/AAAA record" % absnxname), "dnsrecord_add",
[zone1, name_ns],
{"nsrecord": "notexisted.%s" % zone1_absolute},
),
expected=errors.NotFound(
reason=(
"Nameserver '%s' does not have a corresponding A/AAAA "
"record" % "notexisted.%s" % zone1_absolute
),
),
), ),
dict( dict(
@ -2140,29 +2199,49 @@ class test_dns(Declarative):
% zone1_permission) % zone1_permission)
), ),
dict( dict(
desc='Try to create zone %r with relative nameserver' % zone3, desc=f"Parent zone for {zone3a} tests",
command=( command=(
'dnszone_add', [zone3], { "dnszone_add", [zone3a], {
'idnssoamname': u'ns', "idnssoarname": zone3a_rname,
'idnssoarname': zone3_rname,
} }
), ),
expected=errors.NotFound(reason=u"Nameserver 'ns.%s' does not have a corresponding A/AAAA record" expected=lambda x, y: True,
% zone3_absolute)
), ),
dict( dict(
desc='Try to create zone %r with nameserver in the zone itself' % zone3, desc="Try to create zone %r with relative nameserver" % zone3a_sub,
command=( command=(
'dnszone_add', [zone3], { "dnszone_add", [zone3a_sub], {
'idnssoamname': zone3_absolute, "idnssoamname": "ns",
'idnssoarname': zone3_rname, "idnssoarname": zone3a_sub_rname,
} }
), ),
expected=errors.NotFound(reason=u"Nameserver '%s' does not have a corresponding A/AAAA record" expected=errors.NotFound(
% zone3_absolute) reason=(
"Nameserver 'ns.%s' does not have a corresponding A/AAAA "
"record" % zone3a_sub
)
),
),
dict(
desc=(
"Try to create zone %r with nameserver in the zone itself"
% zone3a_sub
),
command=(
"dnszone_add", [zone3a_sub], {
"idnssoamname": zone3a_sub,
"idnssoarname": zone3a_sub_rname,
}
),
expected=errors.NotFound(
reason=(
"Nameserver '%s' does not have a corresponding A/AAAA "
"record" % zone3a_sub
)
),
), ),