summaryrefslogtreecommitdiffstats
path: root/ipatests
diff options
context:
space:
mode:
authorMartin Basti <mbasti@redhat.com>2014-12-05 16:12:54 +0100
committerTomas Babej <tbabej@redhat.com>2015-01-13 14:34:47 +0100
commit6a0934f58480bc747046e3784a90ed58a60bb470 (patch)
treef2837ef33407ee2a4d67128bccc541020c90c136 /ipatests
parent2ff8ced5175f8def1b07786d20b64c1450be0567 (diff)
downloadfreeipa-6a0934f58480bc747046e3784a90ed58a60bb470.tar.gz
freeipa-6a0934f58480bc747046e3784a90ed58a60bb470.tar.xz
freeipa-6a0934f58480bc747046e3784a90ed58a60bb470.zip
DNS tests: separate current forward zone tests
Ticket: https://fedorahosted.org/freeipa/ticket/4750 Reviewed-By: Martin Kosek <mkosek@redhat.com>
Diffstat (limited to 'ipatests')
-rw-r--r--ipatests/test_xmlrpc/test_dns_plugin.py764
1 files changed, 438 insertions, 326 deletions
diff --git a/ipatests/test_xmlrpc/test_dns_plugin.py b/ipatests/test_xmlrpc/test_dns_plugin.py
index 6edf691f1..81aa07ea0 100644
--- a/ipatests/test_xmlrpc/test_dns_plugin.py
+++ b/ipatests/test_xmlrpc/test_dns_plugin.py
@@ -290,6 +290,21 @@ zone_findtest_forward_dn = DN(('idnsname', zone_findtest_forward), api.env.conta
zone_fw_wildcard = u'*.wildcardforwardzone.test.'
+zone_root = u'.'
+zone_root_dnsname = DNSName(zone_root)
+zone_root_ip = u'172.16.29.222'
+zone_root_dn = DN(('idnsname', zone_root),
+ api.env.container_dns, api.env.basedn)
+zone_root_ns = u'ns'
+zone_root_ns_dnsname = DNSName(zone_root_ns)
+zone_root_ns_dn = DN(('idnsname', zone_root_ns), zone_root_dn)
+zone_root_rname = u'root.example.com.'
+zone_root_rname_dnsname = DNSName(zone_root_rname)
+zone_root_permission = u'Manage DNS zone %s' % zone_root
+zone_root_permission_dn = DN(('cn', zone_root_permission),
+ api.env.container_permission, api.env.basedn)
+
+
def _get_nameservers_ldap(conn):
base_dn = DN(('cn', 'masters'), ('cn', 'ipa'), ('cn', 'etc'), api.env.basedn)
ldap_filter = '(&(objectClass=ipaConfigObject)(cn=DNS))'
@@ -359,17 +374,13 @@ class test_dns(Declarative):
cleanup_commands = [
('dnszone_del', [zone1, zone2, zone3, zone4, zone5, revzone1, revzone2,
revzone3_classless1, revzone3_classless2,
- idnzone1, revidnzone1, zone_findtest_master],
- {'continue': True}),
- ('dnsforwardzone_del', [fwzone1, zone_findtest_forward,
- zone_fw_wildcard],
+ idnzone1, revidnzone1],
{'continue': True}),
('dnsconfig_mod', [], {'idnsforwarders' : None,
'idnsforwardpolicy' : None,
'idnsallowsyncptr' : None,
}),
('permission_del', [zone1_permission, idnzone1_permission,
- fwzone1_permission,
revzone3_classless2_permission], {'force': True}
),
]
@@ -2841,6 +2852,280 @@ class test_dns(Declarative):
dict(
+ desc='Disable zone %r' % zone1,
+ command=('dnszone_disable', [zone1], {}),
+ expected={
+ 'value': zone1_absolute_dnsname,
+ 'summary': u'Disabled DNS zone "%s"' % zone1_absolute,
+ 'result': True,
+ },
+ ),
+
+
+ dict(
+ desc='Check if zone %r is really disabled' % zone1,
+ command=('dnszone_show', [zone1], {}),
+ expected={
+ 'value': zone1_absolute_dnsname,
+ 'summary': None,
+ 'result': {
+ 'dn': zone1_dn,
+ 'idnsname': [zone1_absolute_dnsname],
+ 'idnszoneactive': [u'FALSE'],
+ 'nsrecord': nameservers,
+ 'idnssoamname': [self_server_ns_dnsname],
+ 'idnssoarname': [zone1_rname_dnsname],
+ 'idnssoaserial': [fuzzy_digits],
+ 'idnssoarefresh': [fuzzy_digits],
+ 'idnssoaretry': [fuzzy_digits],
+ 'idnssoaexpire': [fuzzy_digits],
+ 'idnssoaminimum': [fuzzy_digits],
+ 'idnsallowtransfer': [u'172.16.31.80;'],
+ 'idnsallowquery': [u'!192.0.2.0/24;any;'],
+ 'mxrecord': [u'0 ns1.dnszone.test.'],
+ 'locrecord': [u"49 11 42.400 N 16 36 29.600 E 227.64 10.00 10.00 0.10"],
+ },
+ },
+ ),
+
+
+ dict(
+ desc='Enable zone %r' % zone1,
+ command=('dnszone_enable', [zone1], {}),
+ expected={
+ 'value': zone1_absolute_dnsname,
+ 'summary': u'Enabled DNS zone "%s"' % zone1_absolute,
+ 'result': True,
+ },
+ ),
+
+
+ dict(
+ desc='Check if zone %r is really enabled' % zone1,
+ command=('dnszone_show', [zone1_absolute], {}),
+ expected={
+ 'value': zone1_absolute_dnsname,
+ 'summary': None,
+ 'result': {
+ 'dn': zone1_dn,
+ 'idnsname': [zone1_absolute_dnsname],
+ 'idnszoneactive': [u'TRUE'],
+ 'nsrecord': nameservers,
+ 'idnssoamname': [self_server_ns_dnsname],
+ 'idnssoarname': [zone1_rname_dnsname],
+ 'idnssoaserial': [fuzzy_digits],
+ 'idnssoarefresh': [fuzzy_digits],
+ 'idnssoaretry': [fuzzy_digits],
+ 'idnssoaexpire': [fuzzy_digits],
+ 'idnssoaminimum': [fuzzy_digits],
+ 'idnsallowtransfer': [u'172.16.31.80;'],
+ 'idnsallowquery': [u'!192.0.2.0/24;any;'],
+ 'mxrecord': [u'0 ns1.dnszone.test.'],
+ 'locrecord': [u"49 11 42.400 N 16 36 29.600 E 227.64 10.00 10.00 0.10"],
+ },
+ },
+ ),
+
+ dict(
+ desc='Disable zone %r' % idnzone1,
+ command=('dnszone_disable', [idnzone1], {}),
+ expected={
+ 'value': idnzone1_dnsname,
+ 'summary': u'Disabled DNS zone "%s"' % idnzone1,
+ 'result': True,
+ },
+ ),
+
+
+ dict(
+ desc='Check if zone %r is really disabled' % idnzone1,
+ command=('dnszone_show', [idnzone1], {}),
+ expected={
+ 'value': idnzone1_dnsname,
+ 'summary': None,
+ 'result': {
+ 'dn': idnzone1_dn,
+ 'idnsname': [idnzone1_dnsname],
+ 'idnszoneactive': [u'FALSE'],
+ 'nsrecord': nameservers,
+ 'idnssoamname': [self_server_ns_dnsname],
+ 'idnssoarname': [idnzone1_rname_dnsname],
+ 'idnssoaserial': [fuzzy_digits],
+ 'idnssoarefresh': [fuzzy_digits],
+ 'idnssoaretry': [fuzzy_digits],
+ 'idnssoaexpire': [fuzzy_digits],
+ 'idnssoaminimum': [fuzzy_digits],
+ 'idnsallowtransfer': [u'none;'],
+ 'idnsallowquery': [u'any;'],
+ 'mxrecord': [u"0 %s" % idnzone1_mname],
+ 'kxrecord': [u"0 %s" % idnzone1_mname],
+ },
+ },
+ ),
+
+
+ dict(
+ desc='Enable zone %r' % idnzone1,
+ command=('dnszone_enable', [idnzone1], {}),
+ expected={
+ 'value': idnzone1_dnsname,
+ 'summary': u'Enabled DNS zone "%s"' % idnzone1,
+ 'result': True,
+ },
+ ),
+
+
+ dict(
+ desc='Check if zone %r is really enabled' % idnzone1,
+ command=('dnszone_show', [idnzone1], {}),
+ expected={
+ 'value': idnzone1_dnsname,
+ 'summary': None,
+ 'result': {
+ 'dn': idnzone1_dn,
+ 'idnsname': [idnzone1_dnsname],
+ 'idnszoneactive': [u'TRUE'],
+ 'nsrecord': nameservers,
+ 'idnssoamname': [self_server_ns_dnsname],
+ 'idnssoarname': [idnzone1_rname_dnsname],
+ 'idnssoaserial': [fuzzy_digits],
+ 'idnssoarefresh': [fuzzy_digits],
+ 'idnssoaretry': [fuzzy_digits],
+ 'idnssoaexpire': [fuzzy_digits],
+ 'idnssoaminimum': [fuzzy_digits],
+ 'idnsallowtransfer': [u'none;'],
+ 'idnsallowquery': [u'any;'],
+ 'mxrecord': [u"0 %s" % idnzone1_mname],
+ 'kxrecord': [u"0 %s" % idnzone1_mname],
+ },
+ },
+ ),
+
+
+ dict(
+ desc='Delete zone %r' % zone1,
+ command=('dnszone_del', [zone1], {}),
+ expected={
+ 'value': [zone1_absolute_dnsname],
+ 'summary': u'Deleted DNS zone "%s"' % zone1_absolute,
+ 'result': {'failed': []},
+ },
+ ),
+
+ ]
+
+
+class test_root_zone(Declarative):
+
+ @classmethod
+ def setup_class(cls):
+ super(test_root_zone, cls).setup_class()
+
+ if not api.Backend.rpcclient.isconnected():
+ api.Backend.rpcclient.connect(fallback=False)
+
+ if not have_ldap2:
+ raise nose.SkipTest('server plugin not available')
+
+ if get_nameservers_error is not None:
+ raise nose.SkipTest('unable to get list of nameservers (%s)' % get_nameservers_error)
+
+ try:
+ api.Command['dnszone_add'](zone1, idnssoarname=zone1_rname,)
+ api.Command['dnszone_del'](zone1)
+ except errors.NotFound:
+ raise nose.SkipTest('DNS is not configured')
+ except errors.DuplicateEntry:
+ pass
+
+ cleanup_commands = [
+ ('dnszone_del', [zone_root, ],
+ {'continue': True}),
+ ('permission_del', [zone_root_permission, ], {'force': True}),
+ ]
+
+ tests = [
+
+ dict(
+ desc='Create zone %r' % zone_root,
+ command=(
+ 'dnszone_add', [zone_root], {
+ 'idnssoarname': zone_root_rname,
+ }
+ ),
+ expected={
+ 'value': zone_root_dnsname,
+ 'summary': None,
+ 'result': {
+ 'dn': zone_root_dn,
+ 'idnsname': [zone_root_dnsname],
+ 'idnszoneactive': [u'TRUE'],
+ 'idnssoamname': [self_server_ns_dnsname],
+ 'nsrecord': nameservers,
+ 'idnssoarname': [zone_root_rname_dnsname],
+ 'idnssoaserial': [fuzzy_digits],
+ 'idnssoarefresh': [fuzzy_digits],
+ 'idnssoaretry': [fuzzy_digits],
+ 'idnssoaexpire': [fuzzy_digits],
+ 'idnssoaminimum': [fuzzy_digits],
+ 'idnsallowdynupdate': [u'FALSE'],
+ 'idnsupdatepolicy': [u'grant %(realm)s krb5-self * A; '
+ u'grant %(realm)s krb5-self * AAAA; '
+ u'grant %(realm)s krb5-self * SSHFP;'
+ % dict(realm=api.env.realm)],
+ 'idnsallowtransfer': [u'none;'],
+ 'idnsallowquery': [u'any;'],
+ 'objectclass': objectclasses.dnszone,
+ },
+ },
+ ),
+
+ dict(
+ desc='Add per-zone permission for zone %r' % zone_root,
+ command=(
+ 'dnszone_add_permission', [zone_root], {}
+ ),
+ expected=dict(
+ result=True,
+ value=zone_root_permission,
+ summary=u'Added system permission "%s"' % zone_root_permission,
+ ),
+ ),
+
+ ]
+
+
+class test_forward_zones(Declarative):
+ # https://fedorahosted.org/freeipa/ticket/4750
+
+ @classmethod
+ def setup_class(cls):
+ super(test_forward_zones, cls).setup_class()
+
+ if not api.Backend.rpcclient.isconnected():
+ api.Backend.rpcclient.connect(fallback=False)
+
+ if not have_ldap2:
+ raise nose.SkipTest('server plugin not available')
+
+ try:
+ api.Command['dnszone_add'](zone1, idnssoarname=zone1_rname,)
+ api.Command['dnszone_del'](zone1)
+ except errors.NotFound:
+ raise nose.SkipTest('DNS is not configured')
+ except errors.DuplicateEntry:
+ pass
+
+
+ cleanup_commands = [
+ ('dnsforwardzone_del', [zone_fw_wildcard, fwzone1],
+ {'continue': True}),
+ ('permission_del', [fwzone1_permission, ], {'force': True}),
+ ]
+
+ tests = [
+
+ dict(
desc='Try to create forward zone %r with wildcard domain name' % zone_fw_wildcard,
command=(
'dnsforwardzone_add', [zone_fw_wildcard], {'idnsforwardpolicy': u'none'}
@@ -3196,6 +3481,147 @@ class test_dns(Declarative):
),
+
+
+ dict(
+ desc='Disable forward zone %r' % fwzone1,
+ command=('dnsforwardzone_disable', [fwzone1], {}),
+ expected={
+ 'value': fwzone1_dnsname,
+ 'summary': u'Disabled DNS forward zone "%s"' % fwzone1,
+ 'result': True,
+ },
+ ),
+
+
+ dict(
+ desc='Check if forward zone %r is really disabled' % fwzone1,
+ command=('dnsforwardzone_show', [fwzone1], {}),
+ expected={
+ 'value': fwzone1_dnsname,
+ 'summary': None,
+ 'result': {
+ 'dn': fwzone1_dn,
+ 'idnsname': [fwzone1_dnsname],
+ 'idnszoneactive': [u'FALSE'],
+ 'idnsforwardpolicy': [u'first'],
+ 'idnsforwarders': [forwarder1, forwarder2],
+ },
+ },
+ ),
+
+
+ dict(
+ desc='Enable forward zone %r' % fwzone1,
+ command=('dnsforwardzone_enable', [fwzone1], {}),
+ expected={
+ 'value': fwzone1_dnsname,
+ 'summary': u'Enabled DNS forward zone "%s"' % fwzone1,
+ 'result': True,
+ },
+ ),
+
+
+ dict(
+ desc='Check if forward zone %r is really enabled' % fwzone1,
+ command=('dnsforwardzone_show', [fwzone1], {}),
+ expected={
+ 'value': fwzone1_dnsname,
+ 'summary': None,
+ 'result': {
+ 'dn': fwzone1_dn,
+ 'idnsname': [fwzone1_dnsname],
+ 'idnszoneactive': [u'TRUE'],
+ 'idnsforwardpolicy': [u'first'],
+ 'idnsforwarders': [forwarder1, forwarder2],
+ },
+ },
+ ),
+
+ ]
+
+
+class test_forward_master_zones_mutual_exlusion(Declarative):
+ # https://fedorahosted.org/freeipa/ticket/4750
+
+ @classmethod
+ def setup_class(cls):
+ super(test_forward_master_zones_mutual_exlusion, cls).setup_class()
+
+ if not api.Backend.rpcclient.isconnected():
+ api.Backend.rpcclient.connect(fallback=False)
+
+ if not have_ldap2:
+ raise nose.SkipTest('server plugin not available')
+
+ try:
+ api.Command['dnszone_add'](zone1, idnssoarname=zone1_rname,)
+ api.Command['dnszone_del'](zone1)
+ except errors.NotFound:
+ raise nose.SkipTest('DNS is not configured')
+ except errors.DuplicateEntry:
+ pass
+
+
+ cleanup_commands = [
+ ('dnszone_del', [zone1, zone_findtest_master], {'continue': True}),
+ ('dnsforwardzone_del', [fwzone1, zone_findtest_forward],
+ {'continue': True}),
+ ('permission_del', [fwzone1_permission, ], {'force': True}),
+ ]
+
+ tests = [
+ dict(
+ desc='Create zone %r' % zone1,
+ command=(
+ 'dnszone_add', [zone1], {
+ 'idnssoarname': zone1_rname,
+ }
+ ),
+ expected={
+ 'value': zone1_absolute_dnsname,
+ 'summary': None,
+ 'result': {
+ 'dn': zone1_dn,
+ 'idnsname': [zone1_absolute_dnsname],
+ 'idnszoneactive': [u'TRUE'],
+ 'idnssoamname': lambda x: True, # don't care in this test
+ 'nsrecord': lambda x: True, # don't care in this test
+ 'idnssoarname': lambda x: True, # don't care in this test
+ 'idnssoaserial': [fuzzy_digits],
+ 'idnssoarefresh': [fuzzy_digits],
+ 'idnssoaretry': [fuzzy_digits],
+ 'idnssoaexpire': [fuzzy_digits],
+ 'idnssoaminimum': [fuzzy_digits],
+ 'idnsallowdynupdate': [u'FALSE'],
+ 'idnsupdatepolicy': lambda x: True, # don't care in this test
+ 'idnsallowtransfer': [u'none;'],
+ 'idnsallowquery': [u'any;'],
+ 'objectclass': objectclasses.dnszone,
+ },
+ },
+ ),
+
+
+ dict(
+ desc='Create forward zone %r without forwarders with "none" policy' % fwzone1,
+ command=(
+ 'dnsforwardzone_add', [fwzone1], {'idnsforwardpolicy': u'none'}
+ ),
+ expected={
+ 'value': fwzone1_dnsname,
+ 'summary': None,
+ 'result': {
+ 'dn': fwzone1_dn,
+ 'idnsname': [fwzone1_dnsname],
+ 'idnszoneactive': [u'TRUE'],
+ 'idnsforwardpolicy': [u'none'],
+ 'objectclass': objectclasses.dnsforwardzone,
+ },
+ },
+ ),
+
+
dict(
desc='Try to create duplicate zone which is already forward zone %r' % fwzone1,
command=(
@@ -3353,19 +3779,16 @@ class test_dns(Declarative):
'dn': zone_findtest_master_dn,
'idnsname': [zone_findtest_master_dnsname],
'idnszoneactive': [u'TRUE'],
- 'idnssoamname': [self_server_ns_dnsname],
- 'nsrecord': nameservers,
- 'idnssoarname': [zone_findtest_master_rname_dnsname],
+ 'idnssoamname': lambda x: True, # don't care in this test
+ 'nsrecord': lambda x: True, # don't care in this test
+ 'idnssoarname': lambda x: True, # don't care in this test
'idnssoaserial': [fuzzy_digits],
'idnssoarefresh': [fuzzy_digits],
'idnssoaretry': [fuzzy_digits],
'idnssoaexpire': [fuzzy_digits],
'idnssoaminimum': [fuzzy_digits],
'idnsallowdynupdate': [u'FALSE'],
- 'idnsupdatepolicy': [u'grant %(realm)s krb5-self * A; '
- u'grant %(realm)s krb5-self * AAAA; '
- u'grant %(realm)s krb5-self * SSHFP;'
- % dict(realm=api.env.realm)],
+ 'idnsupdatepolicy': lambda x: True, # don't care in this test
'idnsallowtransfer': [u'none;'],
'idnsallowquery': [u'any;'],
'objectclass': objectclasses.dnszone,
@@ -3424,9 +3847,9 @@ class test_dns(Declarative):
'dn': zone_findtest_master_dn,
'idnsname': [zone_findtest_master_dnsname],
'idnszoneactive': [u'TRUE'],
- 'nsrecord': nameservers,
- 'idnssoamname': [self_server_ns_dnsname],
- 'idnssoarname': [zone_findtest_master_rname_dnsname],
+ 'nsrecord': lambda x: True, # don't care in this test
+ 'idnssoamname': lambda x: True, # don't care in this test
+ 'idnssoarname': lambda x: True, # don't care in this test
'idnssoaserial': [fuzzy_digits],
'idnssoarefresh': [fuzzy_digits],
'idnssoaretry': [fuzzy_digits],
@@ -3489,315 +3912,4 @@ class test_dns(Declarative):
),
),
-
- dict(
- desc='Disable zone %r' % zone1,
- command=('dnszone_disable', [zone1], {}),
- expected={
- 'value': zone1_absolute_dnsname,
- 'summary': u'Disabled DNS zone "%s"' % zone1_absolute,
- 'result': True,
- },
- ),
-
-
- dict(
- desc='Check if zone %r is really disabled' % zone1,
- command=('dnszone_show', [zone1], {}),
- expected={
- 'value': zone1_absolute_dnsname,
- 'summary': None,
- 'result': {
- 'dn': zone1_dn,
- 'idnsname': [zone1_absolute_dnsname],
- 'idnszoneactive': [u'FALSE'],
- 'nsrecord': nameservers,
- 'idnssoamname': [self_server_ns_dnsname],
- 'idnssoarname': [zone1_rname_dnsname],
- 'idnssoaserial': [fuzzy_digits],
- 'idnssoarefresh': [fuzzy_digits],
- 'idnssoaretry': [fuzzy_digits],
- 'idnssoaexpire': [fuzzy_digits],
- 'idnssoaminimum': [fuzzy_digits],
- 'idnsallowtransfer': [u'172.16.31.80;'],
- 'idnsallowquery': [u'!192.0.2.0/24;any;'],
- 'mxrecord': [u'0 ns1.dnszone.test.'],
- 'locrecord': [u"49 11 42.400 N 16 36 29.600 E 227.64 10.00 10.00 0.10"],
- },
- },
- ),
-
-
- dict(
- desc='Enable zone %r' % zone1,
- command=('dnszone_enable', [zone1], {}),
- expected={
- 'value': zone1_absolute_dnsname,
- 'summary': u'Enabled DNS zone "%s"' % zone1_absolute,
- 'result': True,
- },
- ),
-
-
- dict(
- desc='Check if zone %r is really enabled' % zone1,
- command=('dnszone_show', [zone1_absolute], {}),
- expected={
- 'value': zone1_absolute_dnsname,
- 'summary': None,
- 'result': {
- 'dn': zone1_dn,
- 'idnsname': [zone1_absolute_dnsname],
- 'idnszoneactive': [u'TRUE'],
- 'nsrecord': nameservers,
- 'idnssoamname': [self_server_ns_dnsname],
- 'idnssoarname': [zone1_rname_dnsname],
- 'idnssoaserial': [fuzzy_digits],
- 'idnssoarefresh': [fuzzy_digits],
- 'idnssoaretry': [fuzzy_digits],
- 'idnssoaexpire': [fuzzy_digits],
- 'idnssoaminimum': [fuzzy_digits],
- 'idnsallowtransfer': [u'172.16.31.80;'],
- 'idnsallowquery': [u'!192.0.2.0/24;any;'],
- 'mxrecord': [u'0 ns1.dnszone.test.'],
- 'locrecord': [u"49 11 42.400 N 16 36 29.600 E 227.64 10.00 10.00 0.10"],
- },
- },
- ),
-
- dict(
- desc='Disable zone %r' % idnzone1,
- command=('dnszone_disable', [idnzone1], {}),
- expected={
- 'value': idnzone1_dnsname,
- 'summary': u'Disabled DNS zone "%s"' % idnzone1,
- 'result': True,
- },
- ),
-
-
- dict(
- desc='Check if zone %r is really disabled' % idnzone1,
- command=('dnszone_show', [idnzone1], {}),
- expected={
- 'value': idnzone1_dnsname,
- 'summary': None,
- 'result': {
- 'dn': idnzone1_dn,
- 'idnsname': [idnzone1_dnsname],
- 'idnszoneactive': [u'FALSE'],
- 'nsrecord': nameservers,
- 'idnssoamname': [self_server_ns_dnsname],
- 'idnssoarname': [idnzone1_rname_dnsname],
- 'idnssoaserial': [fuzzy_digits],
- 'idnssoarefresh': [fuzzy_digits],
- 'idnssoaretry': [fuzzy_digits],
- 'idnssoaexpire': [fuzzy_digits],
- 'idnssoaminimum': [fuzzy_digits],
- 'idnsallowtransfer': [u'none;'],
- 'idnsallowquery': [u'any;'],
- 'mxrecord': [u"0 %s" % idnzone1_mname],
- 'kxrecord': [u"0 %s" % idnzone1_mname],
- },
- },
- ),
-
-
- dict(
- desc='Enable zone %r' % idnzone1,
- command=('dnszone_enable', [idnzone1], {}),
- expected={
- 'value': idnzone1_dnsname,
- 'summary': u'Enabled DNS zone "%s"' % idnzone1,
- 'result': True,
- },
- ),
-
-
- dict(
- desc='Check if zone %r is really enabled' % idnzone1,
- command=('dnszone_show', [idnzone1], {}),
- expected={
- 'value': idnzone1_dnsname,
- 'summary': None,
- 'result': {
- 'dn': idnzone1_dn,
- 'idnsname': [idnzone1_dnsname],
- 'idnszoneactive': [u'TRUE'],
- 'nsrecord': nameservers,
- 'idnssoamname': [self_server_ns_dnsname],
- 'idnssoarname': [idnzone1_rname_dnsname],
- 'idnssoaserial': [fuzzy_digits],
- 'idnssoarefresh': [fuzzy_digits],
- 'idnssoaretry': [fuzzy_digits],
- 'idnssoaexpire': [fuzzy_digits],
- 'idnssoaminimum': [fuzzy_digits],
- 'idnsallowtransfer': [u'none;'],
- 'idnsallowquery': [u'any;'],
- 'mxrecord': [u"0 %s" % idnzone1_mname],
- 'kxrecord': [u"0 %s" % idnzone1_mname],
- },
- },
- ),
-
-
- dict(
- desc='Disable forward zone %r' % fwzone1,
- command=('dnsforwardzone_disable', [fwzone1], {}),
- expected={
- 'value': fwzone1_dnsname,
- 'summary': u'Disabled DNS forward zone "%s"' % fwzone1,
- 'result': True,
- },
- ),
-
-
- dict(
- desc='Check if forward zone %r is really disabled' % fwzone1,
- command=('dnsforwardzone_show', [fwzone1], {}),
- expected={
- 'value': fwzone1_dnsname,
- 'summary': None,
- 'result': {
- 'dn': fwzone1_dn,
- 'idnsname': [fwzone1_dnsname],
- 'idnszoneactive': [u'FALSE'],
- 'idnsforwardpolicy': [u'first'],
- 'idnsforwarders': [forwarder1, forwarder2],
- },
- },
- ),
-
- dict(
- desc='Enable forward zone %r' % fwzone1,
- command=('dnsforwardzone_enable', [fwzone1], {}),
- expected={
- 'value': fwzone1_dnsname,
- 'summary': u'Enabled DNS forward zone "%s"' % fwzone1,
- 'result': True,
- },
- ),
-
-
- dict(
- desc='Check if forward zone %r is really enabled' % fwzone1,
- command=('dnsforwardzone_show', [fwzone1], {}),
- expected={
- 'value': fwzone1_dnsname,
- 'summary': None,
- 'result': {
- 'dn': fwzone1_dn,
- 'idnsname': [fwzone1_dnsname],
- 'idnszoneactive': [u'TRUE'],
- 'idnsforwardpolicy': [u'first'],
- 'idnsforwarders': [forwarder1, forwarder2],
- },
- },
- ),
-
- dict(
- desc='Delete zone %r' % zone1,
- command=('dnszone_del', [zone1], {}),
- expected={
- 'value': [zone1_absolute_dnsname],
- 'summary': u'Deleted DNS zone "%s"' % zone1_absolute,
- 'result': {'failed': []},
- },
- ),
-
- ]
-
-
-zone_root = u'.'
-zone_root_dnsname = DNSName(zone_root)
-zone_root_ip = u'172.16.29.222'
-zone_root_dn = DN(('idnsname', zone_root),
- api.env.container_dns, api.env.basedn)
-zone_root_ns = u'ns'
-zone_root_ns_dnsname = DNSName(zone_root_ns)
-zone_root_ns_dn = DN(('idnsname', zone_root_ns), zone_root_dn)
-zone_root_rname = u'root.example.com.'
-zone_root_rname_dnsname = DNSName(zone_root_rname)
-zone_root_permission = u'Manage DNS zone %s' % zone_root
-zone_root_permission_dn = DN(('cn', zone_root_permission),
- api.env.container_permission, api.env.basedn)
-
-
-class test_root_zone(Declarative):
-
- @classmethod
- def setup_class(cls):
- super(test_root_zone, cls).setup_class()
-
- if not api.Backend.rpcclient.isconnected():
- api.Backend.rpcclient.connect(fallback=False)
-
- if not have_ldap2:
- raise nose.SkipTest('server plugin not available')
-
- if get_nameservers_error is not None:
- raise nose.SkipTest('unable to get list of nameservers (%s)' % get_nameservers_error)
-
- try:
- api.Command['dnszone_add'](zone1, idnssoarname=zone1_rname,)
- api.Command['dnszone_del'](zone1)
- except errors.NotFound:
- raise nose.SkipTest('DNS is not configured')
- except errors.DuplicateEntry:
- pass
-
- cleanup_commands = [
- ('dnszone_del', [zone_root, ],
- {'continue': True}),
- ('permission_del', [zone_root_permission, ], {'force': True}),
- ]
-
- tests = [
-
- dict(
- desc='Create zone %r' % zone_root,
- command=(
- 'dnszone_add', [zone_root], {
- 'idnssoarname': zone_root_rname,
- }
- ),
- expected={
- 'value': zone_root_dnsname,
- 'summary': None,
- 'result': {
- 'dn': zone_root_dn,
- 'idnsname': [zone_root_dnsname],
- 'idnszoneactive': [u'TRUE'],
- 'idnssoamname': [self_server_ns_dnsname],
- 'nsrecord': nameservers,
- 'idnssoarname': [zone_root_rname_dnsname],
- 'idnssoaserial': [fuzzy_digits],
- 'idnssoarefresh': [fuzzy_digits],
- 'idnssoaretry': [fuzzy_digits],
- 'idnssoaexpire': [fuzzy_digits],
- 'idnssoaminimum': [fuzzy_digits],
- 'idnsallowdynupdate': [u'FALSE'],
- 'idnsupdatepolicy': [u'grant %(realm)s krb5-self * A; '
- u'grant %(realm)s krb5-self * AAAA; '
- u'grant %(realm)s krb5-self * SSHFP;'
- % dict(realm=api.env.realm)],
- 'idnsallowtransfer': [u'none;'],
- 'idnsallowquery': [u'any;'],
- 'objectclass': objectclasses.dnszone,
- },
- },
- ),
-
- dict(
- desc='Add per-zone permission for zone %r' % zone_root,
- command=(
- 'dnszone_add_permission', [zone_root], {}
- ),
- expected=dict(
- result=True,
- value=zone_root_permission,
- summary=u'Added system permission "%s"' % zone_root_permission,
- ),
- ),
-
]