URL: https://github.com/freeipa/freeipa/pull/456 Author: tomaskrizek Title: #456: bindinstance: fix named.conf parsing regexs Action: opened
PR body: """ Since named.conf API for bind-dyndb-ldap was updated, our parsing regexes have to change. https://fedorahosted.org/freeipa/ticket/6565 """ To pull the PR as Git branch: git remote add ghfreeipa https://github.com/freeipa/freeipa git fetch ghfreeipa pull/456/head:pr456 git checkout pr456
From 8773bd45d8ca4d70dc49b5a6aabb3d601d43a973 Mon Sep 17 00:00:00 2001 From: Tomas Krizek <tkri...@redhat.com> Date: Fri, 10 Feb 2017 11:30:40 +0100 Subject: [PATCH 1/2] PEP8: fix line length for regexs in bindinstance --- ipaserver/install/bindinstance.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ipaserver/install/bindinstance.py b/ipaserver/install/bindinstance.py index c9097c2..cccab87 100644 --- a/ipaserver/install/bindinstance.py +++ b/ipaserver/install/bindinstance.py @@ -68,12 +68,15 @@ named_conf_section_ipa_start_re = re.compile('\s*dynamic-db\s+"ipa"\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<indent>\s*)arg\s+"(?P<name>\S+)\s(?P<value>[^"]+)";') -named_conf_arg_options_re = re.compile(r'(?P<indent>\s*)(?P<name>\S+)\s+"(?P<value>[^"]+)"\s*;') +named_conf_arg_ipa_re = re.compile( + r'(?P<indent>\s*)arg\s+"(?P<name>\S+)\s(?P<value>[^"]+)";') +named_conf_arg_options_re = re.compile( + r'(?P<indent>\s*)(?P<name>\S+)\s+"(?P<value>[^"]+)"\s*;') named_conf_arg_ipa_template = "%(indent)sarg \"%(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(r'(?P<indent>\s*)(?P<name>\S+)\s+(?P<value>[^"]+)\s*;') +named_conf_arg_options_re_nonstr = re.compile( + r'(?P<indent>\s*)(?P<name>\S+)\s+(?P<value>[^"]+)\s*;') named_conf_arg_options_template_nonstr = "%(indent)s%(name)s %(value)s;\n" # include directive named_conf_include_re = re.compile(r'\s*include\s+"(?P<path>)"\s*;') From c99321436f39c2c0a31fdfae83bb52f43d627a7a Mon Sep 17 00:00:00 2001 From: Tomas Krizek <tkri...@redhat.com> Date: Fri, 10 Feb 2017 11:16:56 +0100 Subject: [PATCH 2/2] 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 --- ipaserver/install/bindinstance.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) 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 @@ 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<indent>\s*)arg\s+"(?P<name>\S+)\s(?P<value>[^"]+)";') + r'(?P<indent>\s*)(?P<name>\S+)\s"(?P<value>[^"]+)";') named_conf_arg_options_re = re.compile( r'(?P<indent>\s*)(?P<name>\S+)\s+"(?P<value>[^"]+)"\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
-- Manage your subscription for the Freeipa-devel mailing list: https://www.redhat.com/mailman/listinfo/freeipa-devel Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code