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>
This commit is contained in:
Martin Basti 2014-09-04 15:48:16 +02:00 committed by Petr Viktorin
parent 5aead1ff6f
commit 9e8aed8e53
2 changed files with 10 additions and 3 deletions

View File

@ -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

View File

@ -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': []},
},