From 717ce8b3b50c7a92cc269836a88c3015d1786120 Mon Sep 17 00:00:00 2001 From: Mark Reynolds Date: Fri, 31 Jan 2020 16:36:28 -0500 Subject: [PATCH] Issue 50873 - Fix issues with healthcheck tool Description: - Wrong error code reported with result for backend check - Disk Space Monitor check crashes because it is missing "import copy" - On a non-LDAPI instance "dsctl healthcheck" does not prompt for bind dn, only for password. relates: https://pagure.io/389-ds-base/issue/50873 Reviewed by: firstyear(Thanks!) --- src/lib389/lib389/cli_base/__init__.py | 16 ++++++++++------ src/lib389/lib389/lint.py | 2 +- src/lib389/lib389/monitor.py | 1 + 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/lib389/lib389/cli_base/__init__.py b/src/lib389/lib389/cli_base/__init__.py index e2e6c902a..7dd45b373 100644 --- a/src/lib389/lib389/cli_base/__init__.py +++ b/src/lib389/lib389/cli_base/__init__.py @@ -129,14 +129,18 @@ def connect_instance(dsrc_inst, verbose, args): # No password or we chose to prompt dsargs[SER_ROOT_PW] = getpass("Enter password for {} on {}: ".format(dsrc_inst['binddn'], dsrc_inst['uri'])) elif not ds.can_autobind(): - # No LDAPI, prompt for password + # No LDAPI, prompt for password, and bind DN if necessary + if dsrc_inst['binddn'] is None: + dn = "" + while dn == "": + dn = input("Enter Bind DN: ") + dsrc_inst['binddn'] = dn dsargs[SER_ROOT_PW] = getpass("Enter password for {} on {}: ".format(dsrc_inst['binddn'], dsrc_inst['uri'])) - if 'binddn' in dsrc_inst: - # Allocate is an awful interface that we should stop using, but for now - # just directly map the dsrc_inst args in (remember, dsrc_inst DOES - # overlay cli args into the map ...) - dsargs[SER_ROOT_DN] = dsrc_inst['binddn'] + # Allocate is an awful interface that we should stop using, but for now + # just directly map the dsrc_inst args in (remember, dsrc_inst DOES + # overlay cli args into the map ...) + dsargs[SER_ROOT_DN] = dsrc_inst['binddn'] ds = DirSrv(verbose=verbose) ds.allocate(dsargs) diff --git a/src/lib389/lib389/lint.py b/src/lib389/lib389/lint.py index 736dffa14..68b729674 100644 --- a/src/lib389/lib389/lint.py +++ b/src/lib389/lib389/lint.py @@ -47,7 +47,7 @@ DSBLE0002 = { } DSBLE0003 = { - 'dsle': 'DSBLE0002', + 'dsle': 'DSBLE0003', 'severity': 'LOW', 'items' : [], 'detail' : """The backend database has not been initialized yet""", diff --git a/src/lib389/lib389/monitor.py b/src/lib389/lib389/monitor.py index 290cad5e2..d6413de98 100644 --- a/src/lib389/lib389/monitor.py +++ b/src/lib389/lib389/monitor.py @@ -6,6 +6,7 @@ # See LICENSE for details. # --- END COPYRIGHT BLOCK --- +import copy from lib389._constants import * from lib389._mapped_object import DSLdapObject from lib389.utils import (ds_is_older) -- 2.21.1