#49785 Ticket 49783 - UI - add server configuration backend
Closed by spichugi. Opened by mreynolds.
mreynolds/389-ds-base ticket49783  into  master

Download 49785.patch

Description: This patch pulls in all the cn=config values and poplues the UI.
it also allows you to save values to the server.

         Also cockpit and ony pull in stenerr messages when things fail,
         so I had to undue a recent change to redirect strderr to stdout.

https://pagure.io/389-ds-base/issue/49783

Reviewed by: ?

rebased onto a42aa7ccecf8ee7943c5978442f4d6684bb342e5

rebased onto 0b716d9d9474b642ac407e19f90531455cd2fb39

Hey Mark, I'm having issues trying this change. I noticed that by default instance is created with nsslapd-ldapifilepath: /var/run/ldapi, but in Cockpit you talk to the server using path /var/run/slapd-INSTANCE.socket.

Also, if I change the path to socket to an expected value, I'm getting:

failed: {'desc': 'Inappropriate authentication', 'info': 'SASL EXTERNAL bind requires an SSL connection'}

Do I need a special setup before trying this?

Hey Mark, I'm having issues trying this change. I noticed that by default instance is created with nsslapd-ldapifilepath: /var/run/ldapi, but in Cockpit you talk to the server using path /var/run/slapd-INSTANCE.socket.

This is a bug in the installer...

Also, if I change the path to socket to an expected value, I'm getting:
failed: {'desc': 'Inappropriate authentication', 'info': 'SASL EXTERNAL bind requires an SSL connection'}

Related, I think is because we do not set nsslapd-ldapiautobind to on in the installer either.

I'll fix that in this PR.

rebased onto 8917cb35e79c2fd93f1fde7922f4688d24db7923

I fixed the installer. Now instances by default are fully configured for ldapi/autobind(for root dn)

rebased onto f568e910876a687c8a7bcb60be466270283d69db

rebased onto ad760d7384e7758f9c1e3b6f1c70da9f3d7b6b88

Somehow this doesn't work for me:
In JS console:

failed: {'desc': "Can't contact LDAP server", 'errno': 111, 'info': 'Connection refused'}

In the error log I see that it still listens on /var/run/ldapi:

[28/Jun/2018:21:32:52.130145807 +0000] - INFO - slapd_daemon - Listening on /var/run/ldapi for LDAPI requests

But I also see that the other socket is created.

[root@server ds]# ll /var/run/slapd-test.socket 
srw-rw-rw-. 1 root root 0 Jun 28 21:27 /var/run/slapd-test.socket

I'm creating instance using WebUI, if that matters...

rebased onto 1631bfbdbde72bef9252c623c379e971568955de

Somehow this doesn't work for me:
In JS console:
failed: {'desc': "Can't contact LDAP server", 'errno': 111, 'info': 'Connection refused'}

In the error log I see that it still listens on /var/run/ldapi:
[28/Jun/2018:21:32:52.130145807 +0000] - INFO - slapd_daemon - Listening on /var/run/ldapi for LDAPI requests

I reproduced the problem, but its not a bug. Its the environment. Its pulling in the wrong python-lib389 package (PYTHONPATH). So its something with your test environment. I did make a change in ds.js where you can specify your custom python path etc. So you could build the rpms and install everything from scratch, or set variables at the top of src/cockpit/389-console/js/ds.js and it should work.

You're right! I had lib389 installed from the repo without changes in PR and system lib389 installed from rpms generated from this PR. Now I got this working: values are fetched from the server and I can change them.

One last minor thing: we have /var/run/dirsrv where we store .stats and .pid for each instance. I think we create ldapi sockets there as well. The rest LGTM.

One last minor thing: we have /var/run/dirsrv where we store .stats and .pid for each instance. I think we create ldapi sockets there as well.

The docs use this example:

/var/run/slapd-example.socket

This is the same format I used in this fix. I did a little poking around online and this seems to be the normal convention, but I don't think its a requirement. I'd prefer to stay consistent with the docs

As I said, it's a minor thing. It would be nice to consolidate all dirsrv temporary files in one place. But that's just my OCD talking :)

                                  As I said, it's a minor thing. It would be nice to consolidate all dirsrv temporary files in one place. But that's just my OCD talking :)

I agree it would be nice, but I don't want to stray from the docs. Anyway thanks for the review I get this merged shortly, then I will try rebasing my other branches :-o

rebased onto eafaf473aa48f16b789375564aa4ef0027ca74f8

Pull-Request has been merged by mreynolds

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This pull request has been cloned to Github as issue and is available here:
- https://github.com/389ds/389-ds-base/issues/2844

If you want to continue to work on the PR, please navigate to the github issue,
download the patch from the attachments and file a new pull request.

Thank you for understanding. We apologize for all inconvenience.

Pull-Request has been closed by spichugi

Metadata