mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
DNS: autofill admin email
Admins email (SOA RNAME) is autofilled with value 'hostmaster'. Bind will automaticaly append zone part. Part of ticket: https://fedorahosted.org/freeipa/ticket/4149 Reviewed-By: Petr Spacek <pspacek@redhat.com>
This commit is contained in:
committed by
Petr Viktorin
parent
7e24e241ba
commit
239adf9de4
6
API.txt
6
API.txt
@@ -1155,7 +1155,7 @@ option: Int('idnssoaminimum', attribute=True, autofill=True, cli_name='minimum',
|
||||
option: DNSNameParam('idnssoamname', attribute=True, cli_name='name_server', default=None, multivalue=False, required=False)
|
||||
option: Int('idnssoarefresh', attribute=True, autofill=True, cli_name='refresh', default=3600, maxvalue=2147483647, minvalue=0, multivalue=False, required=True)
|
||||
option: Int('idnssoaretry', attribute=True, autofill=True, cli_name='retry', default=900, maxvalue=2147483647, minvalue=0, multivalue=False, required=True)
|
||||
option: DNSNameParam('idnssoarname', attribute=True, cli_name='admin_email', multivalue=False, only_absolute=True, required=True)
|
||||
option: DNSNameParam('idnssoarname', attribute=True, autofill=True, cli_name='admin_email', default=<DNS name hostmaster>, multivalue=False, required=True)
|
||||
option: Int('idnssoaserial', attribute=True, autofill=True, cli_name='serial', maxvalue=4294967295L, minvalue=1, multivalue=False, required=True)
|
||||
option: Str('idnsupdatepolicy', attribute=True, autofill=True, cli_name='update_policy', multivalue=False, required=False)
|
||||
option: Str('ip_address?')
|
||||
@@ -1216,7 +1216,7 @@ option: Int('idnssoaminimum', attribute=True, autofill=False, cli_name='minimum'
|
||||
option: DNSNameParam('idnssoamname', attribute=True, autofill=False, cli_name='name_server', default=None, multivalue=False, query=True, required=False)
|
||||
option: Int('idnssoarefresh', attribute=True, autofill=False, cli_name='refresh', default=3600, maxvalue=2147483647, minvalue=0, multivalue=False, query=True, required=False)
|
||||
option: Int('idnssoaretry', attribute=True, autofill=False, cli_name='retry', default=900, maxvalue=2147483647, minvalue=0, multivalue=False, query=True, required=False)
|
||||
option: DNSNameParam('idnssoarname', attribute=True, autofill=False, cli_name='admin_email', multivalue=False, only_absolute=True, query=True, required=False)
|
||||
option: DNSNameParam('idnssoarname', attribute=True, autofill=False, cli_name='admin_email', default=<DNS name hostmaster>, multivalue=False, query=True, required=False)
|
||||
option: Int('idnssoaserial', attribute=True, autofill=False, cli_name='serial', maxvalue=4294967295L, minvalue=1, multivalue=False, query=True, required=False)
|
||||
option: Str('idnsupdatepolicy', attribute=True, autofill=False, cli_name='update_policy', multivalue=False, query=True, required=False)
|
||||
option: Bool('idnszoneactive', attribute=True, autofill=False, cli_name='zone_active', multivalue=False, query=True, required=False)
|
||||
@@ -1252,7 +1252,7 @@ option: Int('idnssoaminimum', attribute=True, autofill=False, cli_name='minimum'
|
||||
option: DNSNameParam('idnssoamname', attribute=True, autofill=False, cli_name='name_server', default=None, multivalue=False, required=False)
|
||||
option: Int('idnssoarefresh', attribute=True, autofill=False, cli_name='refresh', default=3600, maxvalue=2147483647, minvalue=0, multivalue=False, required=False)
|
||||
option: Int('idnssoaretry', attribute=True, autofill=False, cli_name='retry', default=900, maxvalue=2147483647, minvalue=0, multivalue=False, required=False)
|
||||
option: DNSNameParam('idnssoarname', attribute=True, autofill=False, cli_name='admin_email', multivalue=False, only_absolute=True, required=False)
|
||||
option: DNSNameParam('idnssoarname', attribute=True, autofill=False, cli_name='admin_email', default=<DNS name hostmaster>, multivalue=False, required=False)
|
||||
option: Int('idnssoaserial', attribute=True, autofill=False, cli_name='serial', maxvalue=4294967295L, minvalue=1, multivalue=False, required=False)
|
||||
option: Str('idnsupdatepolicy', attribute=True, autofill=False, cli_name='update_policy', multivalue=False, required=False)
|
||||
option: Str('name_from_ip', attribute=False, autofill=False, cli_name='name_from_ip', multivalue=False, required=False)
|
||||
|
||||
4
VERSION
4
VERSION
@@ -89,5 +89,5 @@ IPA_DATA_VERSION=20100614120000
|
||||
# #
|
||||
########################################################
|
||||
IPA_API_VERSION_MAJOR=2
|
||||
IPA_API_VERSION_MINOR=103
|
||||
# Last change: mbasti - make --name-server option optional
|
||||
IPA_API_VERSION_MINOR=104
|
||||
# Last change: mbasti - autofill --admin-email in DNS zone
|
||||
|
||||
@@ -39,7 +39,7 @@ from ipalib.plugable import Registry
|
||||
from ipalib.plugins.baseldap import *
|
||||
from ipalib import _, ngettext
|
||||
from ipalib import messages
|
||||
from ipalib.util import (validate_zonemgr, normalize_zonemgr,
|
||||
from ipalib.util import (normalize_zonemgr,
|
||||
get_dns_forward_zone_update_policy,
|
||||
get_dns_reverse_zone_update_policy,
|
||||
get_reverse_zone_default, REVERSE_DNS_ZONES,
|
||||
@@ -314,8 +314,8 @@ _output_permissions = (
|
||||
|
||||
def _rname_validator(ugettext, zonemgr):
|
||||
try:
|
||||
validate_zonemgr(zonemgr)
|
||||
except (ValueError, dns.exception.SyntaxError), e:
|
||||
DNSName(zonemgr) # test only if it is valid domain name
|
||||
except (ValueError, dns.exception.SyntaxError) as e:
|
||||
return unicode(e)
|
||||
return None
|
||||
|
||||
@@ -2091,13 +2091,12 @@ class dnszone(DNSZoneBase):
|
||||
),
|
||||
DNSNameParam('idnssoarname',
|
||||
_rname_validator,
|
||||
only_absolute=True,
|
||||
cli_name='admin_email',
|
||||
label=_('Administrator e-mail address'),
|
||||
doc=_('Administrator e-mail address'),
|
||||
default_from=lambda idnsname:
|
||||
DNSName(('hostmaster')).derelativize(idnsname),
|
||||
default=DNSName(u'hostmaster'),
|
||||
normalizer=normalize_zonemgr,
|
||||
autofill=True,
|
||||
),
|
||||
Int('idnssoaserial',
|
||||
cli_name='serial',
|
||||
|
||||
@@ -219,9 +219,6 @@ def normalize_zonemgr(zonemgr):
|
||||
name = name.replace('.', '\\.')
|
||||
zonemgr = u''.join((name, u'.', domain))
|
||||
|
||||
if not zonemgr.endswith('.'):
|
||||
zonemgr = zonemgr + u'.'
|
||||
|
||||
return zonemgr
|
||||
|
||||
def normalize_zone(zone):
|
||||
@@ -273,18 +270,12 @@ def validate_domain_name(domain_name, allow_underscore=False, allow_slash=False)
|
||||
|
||||
def validate_zonemgr(zonemgr):
|
||||
assert isinstance(zonemgr, DNSName)
|
||||
assert zonemgr.is_absolute()
|
||||
""" See RFC 1033, 1035 """
|
||||
if any('@' in label for label in zonemgr.labels):
|
||||
raise ValueError(_('too many \'@\' characters'))
|
||||
if len(zonemgr.labels) < 3:
|
||||
raise ValueError(_('missing address domain'))
|
||||
if not zonemgr.labels[0]:
|
||||
raise ValueError(_('missing mail account'))
|
||||
|
||||
|
||||
def validate_zonemgr_str(zonemgr):
|
||||
zonemgr = normalize_zonemgr(zonemgr)
|
||||
zonemgr = DNSName(zonemgr).make_absolute()
|
||||
return validate_zonemgr(zonemgr)
|
||||
|
||||
def validate_hostname(hostname, check_fqdn=True, allow_underscore=False, allow_slash=False):
|
||||
|
||||
Reference in New Issue
Block a user