summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2014-02-27 12:08:03 +0100
committerJakub Hrozek <jhrozek@redhat.com>2014-03-02 21:45:16 +0100
commit17f08cbd0f909181536b93d6c12c7cd69995f09e (patch)
tree2543e30d20c32c8e41da18a16ae4a88776840faf
parent61804568ce5ede3b1a699cda17c033dd6c23f0e3 (diff)
downloadsssd-17f08cbd0f909181536b93d6c12c7cd69995f09e.tar.gz
sssd-17f08cbd0f909181536b93d6c12c7cd69995f09e.tar.xz
sssd-17f08cbd0f909181536b93d6c12c7cd69995f09e.zip
config API: read only specific files from schemaplugindir
Currently the config API read any file in the schema plugin dir, typically /usr/share/sssd/sssd.api.d. If there are any unexpected files, like e.g. editor copies or backups, the python code might break because it cannot parse the files. With this patch only files matching the pattern '^sssd-.*\.conf$' are read from this directory. Additionally this patch contains a file which will break the config API self test if it is not filtered out correctly. Reviewed-by: Stephen Gallagher <sgallagh@redhat.com>
-rw-r--r--Makefile.am3
-rw-r--r--src/config/SSSDConfig/__init__.py.in4
-rw-r--r--src/config/etc/sssd.api.d/crash_test_dummy1
3 files changed, 6 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am
index 31ac8130f..275c899cc 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -274,7 +274,8 @@ dist_noinst_DATA = \
src/config/testconfigs/sssd-noversion.conf \
src/config/testconfigs/sssd-badversion.conf \
src/config/testconfigs/sssd-invalid.conf \
- src/config/testconfigs/sssd-invalid-badbool.conf
+ src/config/testconfigs/sssd-invalid-badbool.conf \
+ src/config/etc/sssd.api.d/crash_test_dummy
###############################
# Global compilation settings #
diff --git a/src/config/SSSDConfig/__init__.py.in b/src/config/SSSDConfig/__init__.py.in
index 8563a91e7..5659f9aec 100644
--- a/src/config/SSSDConfig/__init__.py.in
+++ b/src/config/SSSDConfig/__init__.py.in
@@ -7,6 +7,7 @@ Created on Sep 18, 2009
import os
import gettext
import exceptions
+import re
from ipachangeconf import SSSDChangeConf
# Exceptions
@@ -399,7 +400,8 @@ class SSSDConfigSchema(SSSDChangeConf):
self.readfp(fd)
fd.close()
# Read in the provider files
- for file in os.listdir(schemaplugindir):
+ for file in filter(lambda f: re.search('^sssd-.*\.conf$', f),
+ os.listdir(schemaplugindir)):
fd = open(schemaplugindir+ "/" + file)
self.readfp(fd)
fd.close()
diff --git a/src/config/etc/sssd.api.d/crash_test_dummy b/src/config/etc/sssd.api.d/crash_test_dummy
new file mode 100644
index 000000000..02e447e80
--- /dev/null
+++ b/src/config/etc/sssd.api.d/crash_test_dummy
@@ -0,0 +1 @@
+Please do not delete this file, it is part of the config API self-test.