diff options
Diffstat (limited to 'ipaserver/install/dsinstance.py')
-rw-r--r-- | ipaserver/install/dsinstance.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/ipaserver/install/dsinstance.py b/ipaserver/install/dsinstance.py index f29737fc1..26cd2461a 100644 --- a/ipaserver/install/dsinstance.py +++ b/ipaserver/install/dsinstance.py @@ -27,6 +27,7 @@ import re import time import tempfile import stat +import fnmatch import ldap @@ -180,6 +181,16 @@ def get_domain_level(api=api): return int(entry.single_value['ipaDomainLevel']) +def get_all_external_schema_files(root): + """Get all schema files""" + f = [] + for path, subdirs, files in os.walk(root): + for name in files: + if fnmatch.fnmatch(name, "*.ldif"): + f.append(os.path.join(path, name)) + return f + + INF_TEMPLATE = """ [General] FullMachineName= $FQDN @@ -656,7 +667,9 @@ class DsInstance(service.Service): conn.unbind() def apply_updates(self): - data_upgrade = upgradeinstance.IPAUpgrade(self.realm) + schema_files = get_all_external_schema_files(paths.EXTERNAL_SCHEMA_DIR) + data_upgrade = upgradeinstance.IPAUpgrade(self.realm, + schema_files=schema_files) try: data_upgrade.create_instance() except Exception as e: |