ipa-client-install: Update how comments are added by ipachangeconf

Due to how 'openldap-client' parses its configuration files this patch
changes how comments are added, moving them to the line above instead
of appending to the same line.

IPA doesn't want to break existing configuration, if a value already
exists it adds a comment to the modified setting and a note about that
on the line above.

New settings will be added without any note.

Issue: https://pagure.io/freeipa/issue/5202

Signed-off-by: Armando Neto <abiagion@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
This commit is contained in:
Armando Neto
2018-07-03 11:00:57 -03:00
committed by Christian Heimes
parent 417f748682
commit 53c5496647
3 changed files with 61 additions and 4 deletions

View File

@@ -560,13 +560,14 @@ def configure_openldap_conf(fstore, cli_basedn, cli_server):
{
'name': 'comment',
'type': 'comment',
'value': ' In case any of them were set, a comment with '
'trailing note'
'value': ' In case any of them were set, a comment has been '
'inserted and'
},
{
'name': 'comment',
'type': 'comment',
'value': ' "# modified by IPA" note has been inserted.'
'value': ' "# CONF_NAME modified by IPA" added to the line '
'above.'
},
{
'name': 'comment',

View File

@@ -349,11 +349,17 @@ class IPAChangeConf(object):
opts.append(no)
continue
if no['action'] == 'addifnotset':
opts.append({
'name': 'comment',
'type': 'comment',
'value': self._dump_line(
' ', no['name'], ' modified by IPA'
),
})
opts.append({'name': 'comment', 'type': 'comment',
'value': self._dump_line(no['name'],
self.dassign,
no['value'],
u' # modified by IPA'
)})
opts.append(o)
continue