summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Basti <mbasti@redhat.com>2014-09-04 15:48:16 +0200
committerPetr Viktorin <pviktori@dhcp-31-13.brq.redhat.com>2014-09-05 10:34:11 +0200
commit62a255949377d4a6b3cc197462223b5b0495d18d (patch)
treecc94d00f53a029ad0526ec13ab89a2bcf18010c9
parentfd26560a164e757970584009d54f81c678a7056c (diff)
downloadfreeipa-62a255949377d4a6b3cc197462223b5b0495d18d.tar.gz
freeipa-62a255949377d4a6b3cc197462223b5b0495d18d.tar.xz
freeipa-62a255949377d4a6b3cc197462223b5b0495d18d.zip
Fix dnsrecord-mod raise error if last record attr is removed
Removing last record attribute causes output type validation error Reviewed-By: Jan Cholasta <jcholast@redhat.com>
-rw-r--r--ipalib/plugins/dns.py7
-rw-r--r--ipatests/test_xmlrpc/test_dns_plugin.py6
2 files changed, 10 insertions, 3 deletions
diff --git a/ipalib/plugins/dns.py b/ipalib/plugins/dns.py
index fdcccb0b7..dae57e6c3 100644
--- a/ipalib/plugins/dns.py
+++ b/ipalib/plugins/dns.py
@@ -3374,6 +3374,13 @@ class dnsrecord_mod(LDAPUpdate):
if del_all:
result = self.obj.methods.delentry(*keys,
version=options['version'])
+
+ # we need to modify delete result to match mod output type
+ # only one value is expected, not a list
+ if client_has_capability(options['version'], 'primary_key_types'):
+ assert len(result['value']) == 1
+ result['value'] = result['value'][0]
+
# indicate that entry was deleted
context.dnsrecord_entry_mods[(keys[0], keys[1])] = None
diff --git a/ipatests/test_xmlrpc/test_dns_plugin.py b/ipatests/test_xmlrpc/test_dns_plugin.py
index 50b4d2ec7..1cfbbdb9e 100644
--- a/ipatests/test_xmlrpc/test_dns_plugin.py
+++ b/ipatests/test_xmlrpc/test_dns_plugin.py
@@ -1378,10 +1378,10 @@ class test_dns(Declarative):
dict(
- desc='Delete record %r in zone %r' % (tlsa, zone1),
- command=('dnsrecord_del', [zone1, tlsa], {'del_all': True}),
+ desc='Remove record using dnsrecord-mod %r in zone %r' % (tlsa, zone1),
+ command=('dnsrecord_mod', [zone1, tlsa], {'tlsarecord': ''}),
expected={
- 'value': [tlsa_dnsname],
+ 'value': tlsa_dnsname,
'summary': u'Deleted record "%s"' % tlsa,
'result': {'failed': []},
},