URL: https://github.com/freeipa/freeipa/pull/2257 Author: flo-renaud Title: #2257: [Backport][ipa-4-7] Re-open the ldif file to prevent error message Action: opened
PR body: """ This PR was opened automatically because PR #2222 was pushed to master and backport to ipa-4-7 is required. """ To pull the PR as Git branch: git remote add ghfreeipa https://github.com/freeipa/freeipa git fetch ghfreeipa pull/2257/head:pr2257 git checkout pr2257
From 3e4ec3d369a62f33e2bce20e583ecc0290782710 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tibor=20Dudl=C3=A1k?= <tdud...@redhat.com> Date: Thu, 2 Aug 2018 18:05:51 +0200 Subject: [PATCH 1/2] Re-open the ldif file to prevent error message There was an issue with ipa-server-upgrade and it was showing an error while upgrading: DN... does not exists or haven't been updated, caused by not moving pointer to file begining when re-reading. Resolves: https://pagure.io/freeipa/issue/7644 --- ipaserver/install/upgradeinstance.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/ipaserver/install/upgradeinstance.py b/ipaserver/install/upgradeinstance.py index 19a06a0a84..cb83d7bb18 100644 --- a/ipaserver/install/upgradeinstance.py +++ b/ipaserver/install/upgradeinstance.py @@ -237,17 +237,22 @@ def __disable_listeners(self): def __disable_schema_compat(self): ldif_outfile = "%s.modified.out" % self.filename + + with open(self.filename, "r") as in_file: + parser = GetEntryFromLDIF(in_file, entries_dn=[COMPAT_DN]) + parser.parse() + + try: + compat_entry = parser.get_results()[COMPAT_DN] + except KeyError: + return + + if not compat_entry.get('nsslapd-pluginEnabled'): + return + with open(ldif_outfile, "w") as out_file: with open(self.filename, "r") as in_file: - parser = GetEntryFromLDIF(in_file, entries_dn=[COMPAT_DN]) - parser.parse() - try: - compat_entry = parser.get_results()[COMPAT_DN] - except KeyError: - return parser = installutils.ModifyLDIF(in_file, out_file) - if not compat_entry.get('nsslapd-pluginEnabled'): - return parser.remove_value(COMPAT_DN, "nsslapd-pluginEnabled") parser.remove_value(COMPAT_DN, "nsslapd-pluginenabled") parser.add_value(COMPAT_DN, "nsslapd-pluginEnabled", From f99af13dd6aec22444e41d8844a54884355ecd63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tibor=20Dudl=C3=A1k?= <tdud...@redhat.com> Date: Thu, 9 Aug 2018 10:43:26 +0200 Subject: [PATCH 2/2] Add assert to check output of upgrade Ckeck the output of ipa-server-upgrade script for error. Related to: https://pagure.io/freeipa/issue/7644 --- ipatests/test_integration/test_upgrade.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ipatests/test_integration/test_upgrade.py b/ipatests/test_integration/test_upgrade.py index 3688fe036f..cbf5f39a43 100644 --- a/ipatests/test_integration/test_upgrade.py +++ b/ipatests/test_integration/test_upgrade.py @@ -18,4 +18,6 @@ def install(cls, mh): def test_invoke_upgrader(self): cmd = self.master.run_command(['ipa-server-upgrade'], raiseonerr=False) + assert ("DN: cn=Schema Compatibility,cn=plugins,cn=config does not \ + exists or haven't been updated" not in cmd.stdout_text) assert cmd.returncode == 0
_______________________________________________ FreeIPA-devel mailing list -- freeipa-devel@lists.fedorahosted.org To unsubscribe send an email to freeipa-devel-le...@lists.fedorahosted.org Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/freeipa-devel@lists.fedorahosted.org/message/J56LXJWFKB5AJQWXBKBA3NUWQWBTOGEA/