Hi! See the attached patch.
Ticket: https://fedorahosted.org/sssd/ticket/2688 CI passed: http://sssd-ci.duckdns.org/logs/job/18/71/summary.html Thanks, Michal -- Senior Principal Intern
>From c67f8df99df4f1aafa41d57a84c8d1c19fb5d610 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C5=BDidek?= <[email protected]> Date: Tue, 7 Jul 2015 15:15:32 +0200 Subject: [PATCH] CONFDB: Assume config file version 2 if missing Default to config file version 2 if the version is not specified explicitly. Ticket: https://fedorahosted.org/sssd/ticket/2688 --- src/confdb/confdb.h | 1 + src/confdb/confdb_setup.c | 48 ++++++++++++++-------------- src/config/SSSDConfig/sssd_upgrade_config.py | 3 +- 3 files changed, 27 insertions(+), 25 deletions(-) diff --git a/src/confdb/confdb.h b/src/confdb/confdb.h index b2ec2e0..80456e3 100644 --- a/src/confdb/confdb.h +++ b/src/confdb/confdb.h @@ -38,6 +38,7 @@ * @{ */ +#define CONFDB_DEFAULT_CFG_FILE_VER 2 #define CONFDB_FILE "config.ldb" #define CONFDB_DEFAULT_CONFIG_FILE SSSD_CONF_DIR"/sssd.conf" #define SSSD_MIN_ID 1 diff --git a/src/confdb/confdb_setup.c b/src/confdb/confdb_setup.c index 93a1a1b..360e3a8 100644 --- a/src/confdb/confdb_setup.c +++ b/src/confdb/confdb_setup.c @@ -224,30 +224,30 @@ int confdb_init_db(const char *config_file, struct confdb_ctx *cdb) ret = sss_ini_check_config_obj(init_data); if (ret != EOK) { - /* No known version. Assumed to be version 1 */ - DEBUG(SSSDBG_FATAL_FAILURE, - "Config file is an old version. " - "Please run configuration upgrade script.\n"); - ret = EINVAL; - goto done; - } - - version = sss_ini_get_int_config_value(init_data, 1, -1, &ret); - if (ret != EOK) { - DEBUG(SSSDBG_FATAL_FAILURE, - "Config file version could not be determined\n"); - goto done; - } else if (version < CONFDB_VERSION_INT) { - DEBUG(SSSDBG_FATAL_FAILURE, - "Config file is an old version. " - "Please run configuration upgrade script.\n"); - ret = EINVAL; - goto done; - } else if (version > CONFDB_VERSION_INT) { - DEBUG(SSSDBG_FATAL_FAILURE, - "Config file version is newer than confdb\n"); - ret = EINVAL; - goto done; + /* No known version. Use default. */ + DEBUG(SSSDBG_CONF_SETTINGS, + "Value of config_file_version option not found. " + "Assumed to be version %d.\n", CONFDB_DEFAULT_CFG_FILE_VER); + } else { + version = sss_ini_get_int_config_value(init_data, + CONFDB_DEFAULT_CFG_FILE_VER, + -1, &ret); + if (ret != EOK) { + DEBUG(SSSDBG_FATAL_FAILURE, + "Config file version could not be determined\n"); + goto done; + } else if (version < CONFDB_VERSION_INT) { + DEBUG(SSSDBG_FATAL_FAILURE, + "Config file is an old version. " + "Please run configuration upgrade script.\n"); + ret = EINVAL; + goto done; + } else if (version > CONFDB_VERSION_INT) { + DEBUG(SSSDBG_FATAL_FAILURE, + "Config file version is newer than confdb\n"); + ret = EINVAL; + goto done; + } } /* Set up a transaction to replace the configuration */ diff --git a/src/config/SSSDConfig/sssd_upgrade_config.py b/src/config/SSSDConfig/sssd_upgrade_config.py index 282d6c4..767d06d 100644 --- a/src/config/SSSDConfig/sssd_upgrade_config.py +++ b/src/config/SSSDConfig/sssd_upgrade_config.py @@ -47,7 +47,8 @@ class SSSDConfigFile(SSSDChangeConf): def get_version(self): ver = self.get_option_index('sssd', 'config_file_version')[1] if not ver: - return 1 + # config_file_version not found -> default to version 2 + return 2 try: return int(ver['value']) except ValueError: -- 2.1.0
_______________________________________________ sssd-devel mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/sssd-devel
