summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ipalib/plugins/dns.py6
-rw-r--r--tests/test_xmlrpc/test_dns_plugin.py18
2 files changed, 24 insertions, 0 deletions
diff --git a/ipalib/plugins/dns.py b/ipalib/plugins/dns.py
index da4934fc..d51c2c30 100644
--- a/ipalib/plugins/dns.py
+++ b/ipalib/plugins/dns.py
@@ -1003,6 +1003,10 @@ class TXTRecord(DNSRecord):
),
)
+ def _get_part_values(self, value):
+ # ignore any space in TXT record
+ return (value,)
+
_dns_records = (
ARecord(),
AAAARecord(),
@@ -1536,6 +1540,8 @@ class dnsrecord(LDAPObject):
u'dnsdata' : dnsvalue
}
values = param._get_part_values(dnsvalue)
+ if values is None:
+ continue
for val_id, val in enumerate(values):
if val is not None:
dnsentry[parts_params[val_id].name] = val
diff --git a/tests/test_xmlrpc/test_dns_plugin.py b/tests/test_xmlrpc/test_dns_plugin.py
index bded2ad4..f65fe563 100644
--- a/tests/test_xmlrpc/test_dns_plugin.py
+++ b/tests/test_xmlrpc/test_dns_plugin.py
@@ -649,6 +649,24 @@ class test_dns(Declarative):
),
dict(
+ desc='Add TXT record to %r using dnsrecord_add' % (dnsres1),
+ command=('dnsrecord_add', [dnszone1, dnsres1], {'txtrecord': u'foo bar' }),
+ expected={
+ 'value': dnsres1,
+ 'summary': None,
+ 'result': {
+ 'objectclass': [u'top', u'idnsrecord'],
+ 'dn': unicode(dnsres1_dn),
+ 'idnsname': [dnsres1],
+ 'arecord': [u'10.10.0.1'],
+ 'cnamerecord': [u'foo-1.example.com.'],
+ 'kxrecord': [u'1 foo-1'],
+ 'txtrecord': [u'foo bar'],
+ },
+ },
+ ),
+
+ dict(
desc='Delete record %r in zone %r' % (dnsres1, dnszone1),
command=('dnsrecord_del', [dnszone1, dnsres1], {'del_all': True }),
expected={