Added option --no-reverse to add-host

When adding a host with specific IP address, the operation would fail in
case IPA doesn't own the reverse DNS. This new option overrides the
check for reverse DNS zone and falls back to different IP address
existence check.

https://fedorahosted.org/freeipa/ticket/417
This commit is contained in:
Jan Zeleny 2010-12-14 19:02:18 +01:00 committed by Rob Crittenden
parent 409e4062f4
commit a1a8e7c138

View File

@ -260,6 +260,9 @@ class host_add(LDAPCreate):
Flag('force',
doc=_('force host name even if not in DNS'),
),
Flag('no_reverse',
doc=_('skip reverse DNS detection'),
),
Str('ipaddr?', validate_ipaddr,
doc=_('Add the host to DNS with this IP address'),
),
@ -277,6 +280,8 @@ class host_add(LDAPCreate):
break
if not match:
raise errors.NotFound(reason=_('DNS zone %(zone)s not found' % dict(zone=domain)))
if not options.get('no_reverse',False):
# we prefer lookup of the IP through the reverse zone
revzone, revname = get_reverse_zone(options['ipaddr'])
# Verify that our reverse zone exists
match = False
@ -292,6 +297,10 @@ class host_add(LDAPCreate):
raise errors.DuplicateEntry(message=u'This IP address is already assigned.')
except errors.NotFound:
pass
else:
result = api.Command['dnsrecord_find'](domain, arecord=options['ipaddr'])
if result['count'] > 0:
raise errors.DuplicateEntry(message=u'This IP address is already assigned.')
if not options.get('force', False) and not 'ipaddr' in options:
util.validate_host_dns(self.log, keys[-1])
if 'locality' in entry_attrs: