From 2f4442fff52090bad95a9b1f4f078e4d9acc8069 Mon Sep 17 00:00:00 2001 From: Tomas Krizek Date: Feb 10 2017 11:46:03 +0000 Subject: bindinstance: fix named.conf parsing regexs Since named.conf API for bind-dyndb-ldap was updated, our parsing regexes have to change. https://fedorahosted.org/freeipa/ticket/6565 Reviewed-By: Martin Basti --- diff --git a/ipaserver/install/bindinstance.py b/ipaserver/install/bindinstance.py index cccab87..b1024aa 100644 --- a/ipaserver/install/bindinstance.py +++ b/ipaserver/install/bindinstance.py @@ -65,14 +65,14 @@ if six.PY3: NAMED_CONF = paths.NAMED_CONF RESOLV_CONF = paths.RESOLV_CONF -named_conf_section_ipa_start_re = re.compile('\s*dynamic-db\s+"ipa"\s+{') +named_conf_section_ipa_start_re = re.compile('\s*dyndb\s+"ipa"\s+"[^"]+"\s+{') named_conf_section_options_start_re = re.compile('\s*options\s+{') named_conf_section_end_re = re.compile('};') named_conf_arg_ipa_re = re.compile( - r'(?P\s*)arg\s+"(?P\S+)\s(?P[^"]+)";') + r'(?P\s*)(?P\S+)\s"(?P[^"]+)";') named_conf_arg_options_re = re.compile( r'(?P\s*)(?P\S+)\s+"(?P[^"]+)"\s*;') -named_conf_arg_ipa_template = "%(indent)sarg \"%(name)s %(value)s\";\n" +named_conf_arg_ipa_template = "%(indent)s%(name)s \"%(value)s\";\n" named_conf_arg_options_template = "%(indent)s%(name)s \"%(value)s\";\n" # non string args for options section named_conf_arg_options_re_nonstr = re.compile( @@ -91,13 +91,12 @@ def create_reverse(): def named_conf_exists(): try: - named_fd = open(NAMED_CONF, 'r') + with open(NAMED_CONF, 'r') as named_fd: + lines = named_fd.readlines() except IOError: return False - lines = named_fd.readlines() - named_fd.close() for line in lines: - if line.startswith('dynamic-db "ipa"'): + if named_conf_section_ipa_start_re.match(line): return True return False