[SSSD] [PATCH] CONFDB: Assume config file version 2 if missing
Lukas Slebodnik
lslebodn at redhat.com
Mon Jul 27 14:05:03 UTC 2015
On (27/07/15 15:58), Michal Židek wrote:
>On 07/24/2015 09:51 PM, Lukas Slebodnik wrote:
>>On (07/07/15 19:45), Michal Židek wrote:
>>>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?= <mzidek at redhat.com>
>>>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(-)
>>>
>>I think you can also remove config_file_version from
>>sssd.conf in integration test. Or at least comment it out.
>>So it will be proven that your patch works.
>>
>>LS
>
>Ok, I added patch that removes the option from
>sssd.conf in integration tests.
>
>Michal
>
>--
>Senior Principal Intern
>From af960ad090a06017ce3880abaee9c07bbfbd8111 Mon Sep 17 00:00:00 2001
>From: =?UTF-8?q?Michal=20=C5=BDidek?= <mzidek at redhat.com>
>Date: Tue, 7 Jul 2015 15:15:32 +0200
>Subject: [PATCH 1/2] 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 36df6ae..d2d7ebf 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
>
>From 52fb274e36c104a4b7d2df932d81a7ae07c008fb Mon Sep 17 00:00:00 2001
>From: =?UTF-8?q?Michal=20=C5=BDidek?= <mzidek at redhat.com>
>Date: Mon, 27 Jul 2015 14:22:08 +0200
>Subject: [PATCH 2/2] tests: Remove config_file_version from sssd.conf in CI
>
>Default config_file_version was changed to 2 so
>the explicitly setting the value is no longer necessary.
>This change also serves as a test to see that the
>new default works.
>
>Ticket:
>https://fedorahosted.org/sssd/ticket/2688
>---
I prefer if so small change in test is part of "feature patch"
So you do not forget to backport it.
LS
More information about the sssd-devel
mailing list